123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- #!/bin/bash
- TOOL_VER="V1.2"
- green="\e[32;1m"
- red="\e[31m"
- blue="\e[34m"
- normal="\e[0m"
- SELECT_OK="false"
- INDIGO_VER="ubuntu14.04_x64_indigo"
- KINETIC_VER="ubuntu16.04_x64_kinetic"
- echo -e "${green}***************************************************************** ${normal}\n"
- echo -e "${green}********** Welcome To Use Auto Install ROS Tool (${TOOL_VER}) ********** ${normal}\n"
- echo -e "${green}********** www.corvin.cn ********** ${normal}\n"
- echo -e "${green}***************************************************************** ${normal}\n"
- echo -e "${green}\n0x00: Install prerequired softwares${normal}"
- sudo apt-get install -y vim git
- while [ $? -ne 0 ]
- do
- echo -e "${red}Can't install git pkg, wait 10 seconds will retry...${normal}"
- sleep 10
- sudo apt-get install -y vim git build-essential
- done
- echo -e "${green}\n0x01: The ROS stable version list below:${normal}"
- echo -e "${green}1: ${INDIGO_VER}${normal}"
- echo -e "${green}2: ${KINETIC_VER}${normal}"
- function setNetworkTimeProtocol()
- {
- sudo apt-get install -y chrony ntpdate
- sudo ntpdate -q cn.ntp.org.cn
- }
- function updateUbuntu1604SourceList()
- {
- SOURCE_FILE=/etc/apt/sources.list
- BACKUP_FILE=/etc/apt/sources.list.backup
- echo -e "${green} Now backup sources list file:${SOURCE_FILE}->${BACKUP_FILE}${normal}"
- sudo cp ${SOURCE_FILE} ${BACKUP_FILE}
- sudo rm -f ${SOURCE_FILE}
- sudo sh -c "echo #deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted > ${SOURCE_FILE}"
- sudo sh -c "echo deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties >> ${SOURCE_FILE}"
- sudo sh -c "echo deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted >> ${SOURCE_FILE}"
- sudo sh -c "echo deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties >> ${SOURCE_FILE}"
- sudo sh -c "echo deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted >> ${SOURCE_FILE}"
- sudo sh -c "echo deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties >> ${SOURCE_FILE}"
- sudo sh -c "echo deb http://mirrors.aliyun.com/ubuntu/ xenial universe >> ${SOURCE_FILE}"
- sudo sh -c "echo deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe >> ${SOURCE_FILE}"
- sudo sh -c "echo deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse >> ${SOURCE_FILE}"
- sudo sh -c "echo deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse >> ${SOURCE_FILE}"
- sudo sh -c "echo deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse >> ${SOURCE_FILE}"
- sudo sh -c "echo deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties >>${SOURCE_FILE}"
- sudo sh -c "echo deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted >> ${SOURCE_FILE}"
- sudo sh -c "echo deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties >> ${SOURCE_FILE}"
- sudo sh -c "echo deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe >>${SOURCE_FILE}"
- sudo sh -c "echo deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse >> ${SOURCE_FILE}"
- }
- function downloadROSKey()
- {
- echo -e "${green}[Download the ROS keys and update ros source list]${normal}"
- sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
- roskey=`apt-key list | grep "ROS Builder"`
- if [ -z "$roskey" ]; then
- sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
- fi
- while [ $? -ne 0 ]
- do
- echo -e "${red}Download ROS keys occured error, wait 10 seconds retry...${normal}"
- sleep 10
- sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
- done
- sudo apt-get update
- }
- function installKinetic()
- {
- echo -e "${green} Now will auto install ${KINETIC_VER} ...${normal}"
- setNetworkTimeProtocol
- updateUbuntu1604SourceList
- downloadROSKey
- sudo apt-get install -y ros-kinetic-desktop-full
- while [ $? -ne 0 ]
- do
- echo -e "${red}Install ros-kinetic-desktop-full occured unkonwn error, wait 10 seconds will retry...${normal}"
- sleep 10
- sudo apt-get install -y ros-kinetic-desktop-full
- done
-
- sudo rosdep init
- while [ $? -ne 0 ]
- do
- echo -e "${red}<sudo rosde init> command can't invoke successfully, wait 10 secondes will retry ...${normal}"
- sleep 10
- sudo rosdep init
- done
- rosdep update
- while [ $? -ne 0 ]
- do
- echo -e "${red}rosdep update occured unkonwn error, wait 10 seconds will retry ...${normal}"
- sleep 10
- rosdep update
- done
- echo "#config ros system env" >> ~/.bashrc
- echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
- source ~/.bashrc
- sudo apt-get install -y python-rosinstall python-rosinstall-generator python-wstool
- sudo apt-get autoremove -y
-
- sudo usermod -aG dialout $USER
-
- sudo apt-get install -y ros-kinetic-robot-pose-ekf ros-kinetic-move-base ros-kinetic-slam-gmapping
- sudo apt-get install -y ros-kinetic-dwa-local-planner ros-kinetic-imu-tools ros-kinetic-map-server
- sudo apt-get install -y ros-kinetic-amcl ros-kinetic-rqt* ros-kinetic-rgbd-launch
- echo -e "${green}Congratulation ! Auto install ${KINETIC_VER} has completed successfully !${normal}"
- return 0;
- }
- function installIndigo()
- {
- echo -e "${green} Now will install ${INDIGO_VER} ...${normal}"
- setNetworkTimeProtocol
- downloadROSKey
- sudo apt-get install -y ros-indigo-desktop-full
- while [ $? -ne 0 ]
- do
- echo -e "${red}Install ros-indigo-desktop-full occured unkonwn error, wait 10 secondes will retry...${normal}"
- sleep 10
- sudo apt-get install -y ros-indigo-desktop-full
- done
-
- sudo rosdep init
- while [ $? -ne 0 ]
- do
- echo -e "${red}<sudo rosde init> command can't invoke successfully, wait 10 secondes will retry ...${normal}"
- sleep 10
- sudo rosdep init
- done
- rosdep update
- while [ $? -ne 0 ]
- do
- echo -e "${red}rosdep update occured unkonwn error, wait 10 seconds will retry ...${normal}"
- sleep 10
- rosdep update
- done
- echo "#config ros system env" >> ~/.bashrc
- echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
- source ~/.bashrc
- sudo apt-get install -y python-rosinstall python-rosinstall-generator python-wstool
- sudo apt-get autoremove -y
-
- sudo usermod -aG dialout $USER
-
- sudo apt-get install -y ros-indigo-robot-pose-ekf ros-indigo-move-base ros-indigo-slam-gmapping
- sudo apt-get install -y ros-indigo-dwa-local-planner ros-indigo-imu-tools ros-indigo-map-server
- sudo apt-get install -y ros-indigo-amcl ros-indigo-rqt*
- echo -e "${green}Congratulation ! Auto install ${INDIGO_VER} has completed successfully !${normal}"
- return 0;
- }
- while [ $SELECT_OK == "false" ]
- do
- read -p "Please select want to install ros version: " index
- case $index in
- 1)installIndigo
- SELECT_OK="true";;
- 2)installKinetic
- SELECT_OK="true";;
- *) echo -e "${red}Selected index error! ${normal}";;
- esac
- done
- echo -e "${green}>>>>> Now Will Reboot To Make ROS Environment Enable... <<<${normal}"
- read -p "Input (y/Y/yes) to reboot :" flag
- case $flag in
- y);&
- Y);&
- yes)
- sleep 3
- sudo reboot
- ;;
- esac
- exit 0
|