First commit
This commit is contained in:
commit
a42f5e79c3
|
@ -0,0 +1,237 @@
|
|||
################################################################################
|
||||
# _____ ______ _____ ______ _____ #
|
||||
# / ___| | ___ \ |_ _| | ___ \ |_ _| #
|
||||
# \ \__ | |_/ / | | | |_/ / | | #
|
||||
# \___ \ | __/ | | | _ | | | #
|
||||
# ____/ / | | _| |_ | | \ \ _| |_ #
|
||||
# \____/ \_| \___/ \_| \_| \___/ #
|
||||
# #
|
||||
######################## Installer ########################
|
||||
# Maintainer: webmaster@spirirobotics.com
|
||||
# Last Modified:
|
||||
# Copyright: Spiri Holdings, Inc.
|
||||
# License:
|
||||
# Prerequisites:
|
||||
# - TX2 is flashed with current Spiri kernel
|
||||
# - TX2 is installed with JetPack packages CUDA, cuDNN, TensorRT, TensorFlow
|
||||
# _ TX2 is on a network connected to Internet
|
||||
|
||||
# This function updates the terminal title.
|
||||
PS1=$
|
||||
PROMPT_COMMAND=
|
||||
setTitle() {
|
||||
echo -en "\033]0;$1\a"
|
||||
}
|
||||
|
||||
# Initial Setup
|
||||
setTitle "Initial Setup"
|
||||
|
||||
cd
|
||||
sudo apt update
|
||||
sudo apt install -y bash-completion command-not-found g++ git htop locate nano screen
|
||||
sudo apt install -y ntp
|
||||
git config --global credential.helper store
|
||||
sudo usermod -a -G dialout $USER
|
||||
sudo usermod -a -G video $USER
|
||||
sudo usermod -a -G tty $USER
|
||||
sudo chmod 666 /dev/ttyTHS2
|
||||
|
||||
# Gstreamer
|
||||
setTitle "Installing Gstreamer"
|
||||
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
|
||||
|
||||
# Libraries
|
||||
setTitle "Installing Libraries"
|
||||
cd
|
||||
sudo apt install -y --only-upgrade g++-7 cpp-7 gcc-7
|
||||
sudo apt install -y build-essential cmake cmake-curses-gui ffmpeg gfortran \
|
||||
liblapack-dev liblapacke-dev libatlas-base-dev libavcodec-dev \
|
||||
libavdevice-dev libavformat-dev libavutil-dev libdc1394-22-dev libglew-dev \
|
||||
libgtk-3-dev libjpeg8-dev libjpeg-turbo8-dev libopenblas-dev \
|
||||
libopenexr-dev libswscale-dev libtiff5-dev libpng-dev libv4l-dev \
|
||||
libx264-dev libxine2-dev libxml2-dev libxslt1-dev libxvidcore-dev \
|
||||
libfreetype6-dev make qt5-default libdc1394-22 v4l-utils libtbb-dev \
|
||||
libprotobuf-dev protobuf-compiler libgoogle-glog-dev libgflags-dev \
|
||||
libgphoto2-dev libhdf5-dev doxygen yasm checkinstall unzip libjpeg-dev \
|
||||
libpng-dev libtiff-dev libavresample-dev x264 libfaac-dev libmp3lame-dev \
|
||||
libtheora-dev libvorbis-dev libopencore-amrnb-dev libopencore-amrwb-dev
|
||||
|
||||
# Python
|
||||
setTitle "Installing Pythons"
|
||||
# Python 2.7
|
||||
sudo apt install -y python-dev python-numpy python-pip python-py \
|
||||
python-pytest python-tk
|
||||
# Python 3.6
|
||||
sudo apt install -y python3-dev python3-numpy python3-pip python3-py \
|
||||
python3-pytest python3-tk
|
||||
sudo -H pip install future matplotlib
|
||||
sudo apt install -y python-wxgtk3.0 python3-cairocffi
|
||||
|
||||
# Eigen
|
||||
setTitle "Installing Eigen"
|
||||
cd
|
||||
sudo apt install -y libeigen3-dev
|
||||
|
||||
setTitle "Building OpenCV with CUDA"
|
||||
cd ~/Downloads/
|
||||
git clone https://git.spirirobotics.com/Spiri/cuda-Tx2.git
|
||||
cd cuda-Tx2/
|
||||
sudo ./install.sh
|
||||
cd /usr/include/linux
|
||||
sudo ln -s -f ../libv4l1-videodev.h videodev.h
|
||||
cd
|
||||
|
||||
sudo apt update
|
||||
sudo apt install -y build-essential cmake gfortran libavutil-dev libeigen3-dev \
|
||||
libatlas-base-dev libavcodec-dev libavformat-dev libavresample-dev \
|
||||
libcanberra-gtk3-module libgtk2.0-dev libdc1394-22-dev libglew-dev libgtk-3-dev \
|
||||
libjpeg-dev libjpeg8-dev libjpeg-turbo8-dev liblapack-dev liblapacke-dev \
|
||||
libopenblas-dev libpng-dev libpostproc-dev libswscale-dev libtbb-dev libtbb2 \
|
||||
libtesseract-dev libtiff-dev libv4l-dev libxine2-dev libxvidcore-dev libx264-dev \
|
||||
pkg-config qtbase5-dev qv4l2 v4l-utils v4l2ucp zlib1g-dev
|
||||
|
||||
cd ~/Downloads/
|
||||
git clone https://git.spirirobotics.com/Spiri/OpenCV3.4_TX2_Prebuilt.git
|
||||
cd OpenCV3.4_TX2_Prebuilt
|
||||
sudo ./install.sh
|
||||
|
||||
#=======================================================
|
||||
|
||||
# Install ROS Melodic
|
||||
setTitle "Installing ROS Melodic"
|
||||
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
|
||||
sudo apt install -y curl # if you haven't already installed curl
|
||||
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
|
||||
sudo apt update
|
||||
sudo apt install -y ros-melodic-desktop-full
|
||||
source /opt/ros/melodic/setup.bash
|
||||
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
|
||||
|
||||
# Install ROS packages that require OpenCV
|
||||
sudo apt install -y libgtk2.0-dev
|
||||
mkdir -p ~/catkin-ws/src
|
||||
sudo -H pip install empy
|
||||
sudo -H pip3 install empy
|
||||
sudo -H pip install rospkg
|
||||
sudo -H pip3 install rospkg
|
||||
sudo apt install -y python-catkin-tools # Must for catkin build
|
||||
sudo apt install -y python3-pyqt5
|
||||
#export PKG_CONFIG_PATH=/usr/lib/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
|
||||
|
||||
#==========================================================
|
||||
|
||||
# Set up Spiri catkin workspace and install camera launch files
|
||||
setTitle "Creating Spiri catkin workspace and installing launch files"
|
||||
sudo apt-get -y install v4l-utils
|
||||
cd ~/catkin-ws/src
|
||||
|
||||
#catkin_init_workspace
|
||||
git clone https://git.spirirobotics.com/Spiri/jetson_csi_cam.git
|
||||
cd jetson_csi_cam
|
||||
git checkout gscam_nodelet # checkout nodulet branch
|
||||
sudo ./camera_override.sh # copies the ISP file
|
||||
cd ..
|
||||
sudo apt install -y gstreamer1.0-tools libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev
|
||||
sudo apt install -y ros-melodic-gscam
|
||||
sudo apt install -y ros-melodic-mavros ros-melodic-mavros-extras
|
||||
git clone https://git.spirirobotics.com/Spiri/gpu_stereo_image_proc.git
|
||||
git clone https://git.spirirobotics.com/Spiri/apriltag.git
|
||||
git clone https://git.spirirobotics.com/Spiri/apriltag_ros.git
|
||||
git clone https://git.spirirobotics.com/Spiri/ros_rtsp.git
|
||||
sudo apt install -y libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libgstrtspserver-1.0-dev
|
||||
git clone https://git.spirirobotics.com/Spiri/mavros_fly.git
|
||||
|
||||
|
||||
setTitle "Building Catkin workspace"
|
||||
cd ~/catkin-ws
|
||||
catkin config --extend /opt/ros/melodic
|
||||
catkin build apriltag
|
||||
catkin build apriltag_ros
|
||||
catkin build
|
||||
|
||||
echo "source ~/catkin-ws/devel/setup.bash" >> ~/.bashrc
|
||||
|
||||
# TODO Set up VNC
|
||||
|
||||
# Get requirements for mavros
|
||||
setTitle "Setting up geographic libraries"
|
||||
cd
|
||||
sudo geographiclib-get-geoids egm96-5
|
||||
sudo geographiclib-get-geoids egm2008-2_5
|
||||
sudo geographiclib-get-gravity egm2008
|
||||
sudo geographiclib-get-magnetic emm2017
|
||||
|
||||
# Ensure prerequisites are still installed (when/where/how are these being removed?)
|
||||
sudo apt install -y libglew-dev
|
||||
sudo apt install -y ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libavdevice-dev
|
||||
|
||||
# Background services
|
||||
setTitle "Setting up Background Services"
|
||||
cd Downloads/
|
||||
git clone https://git.spirirobotics.com/safy/spiri-services.git
|
||||
cd spiri-services
|
||||
#sudo ./install.sh
|
||||
|
||||
#git clone https://git.spirirobotics.com/Spiri/spiri-services.git
|
||||
#sudo cp -r ~/Downloads/spiri-services/sbin/. /usr/sbin/
|
||||
#cd /usr/sbin/
|
||||
#sudo chmod +x apriltaglaunch
|
||||
#sudo chmod +x camlaunch
|
||||
#sudo chmod +x roslaunch
|
||||
#sudo chmod +x ros_radio_listener
|
||||
|
||||
#sudo cp -r ~/Downloads/spiri-services/service/. /etc/systemd/system/
|
||||
#mkdir -p /etc/ros/
|
||||
#sudo cp ~/Downloads/spiri-services/env.sh /etc/ros/
|
||||
#cd /etc/ros/
|
||||
#sudo chmod +x env.sh
|
||||
#sudo systemctl enable --now roslaunch
|
||||
#sudo systemctl enable --now ros_radio_listener
|
||||
#sudo systemctl enable --now roscore
|
||||
#sudo systemctl enable --now apriltag
|
||||
#sudo systemctl enable --now camlaunch
|
||||
|
||||
cd sbin
|
||||
sudo cp * /usr/sbin/
|
||||
cd ..
|
||||
cd service
|
||||
sudo cp * /etc/systemd/system/
|
||||
cd ..
|
||||
|
||||
mkdir -p /etc/ros/
|
||||
cp env.sh /etc/ros/
|
||||
cd /etc/ros/
|
||||
sudo chmod +x env.sh
|
||||
|
||||
cd /usr/sbin/
|
||||
sudo chmod +x mavroslaunch
|
||||
sudo chmod +x ros_radio_listener
|
||||
sudo chmod +x apriltaglaunch
|
||||
sudo chmod +x camlaunch
|
||||
sudo chmod +x gpudisplaunch
|
||||
|
||||
sudo systemctl enable --now mavroslaunch
|
||||
sudo systemctl enable --now ros_radio_listener
|
||||
sudo systemctl enable --now roscore
|
||||
sudo systemctl enable --now apriltag
|
||||
sudo systemctl enable --now camlaunch
|
||||
sudo systemctl enable --now gpudisplaunch
|
||||
|
||||
setTitle "installing mavros"
|
||||
cd ~/Downloads
|
||||
git clone https://git.spirirobotics.com/Spiri/mavros.git
|
||||
roscd mavros/launch
|
||||
sudo cp ~/Downloads/mavros/mavros/launch/* .
|
||||
|
||||
# Disable Auto Updates
|
||||
#sudo sed 's/APT::Periodic::Update-Package-Lists "1";/APT::Periodic::Update-Package-Lists "0";/1' /etc/apt/apt.conf.d/10periodic
|
||||
|
||||
# Perform Cleanup Operation(s)
|
||||
setTitle "Performing Cleanup"
|
||||
sudo apt-get -y autoremove
|
||||
|
||||
# Installation Complete
|
||||
setTitle "Installation Complete"
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue