第一篇:ROS的多系統的移植(包括Ubuntu、ROS安裝)--Kinetic

第一步:安裝UBUNTU16.04 LTS

因爲ROS最適配的版本是ubuntu的16.04版本,所以最好安裝次版本的系統(18.04部分不兼容,不推薦更新),虛擬機或者U盤裝雙系統都行(獨立系統的話流暢很多),以下是安裝的參考鏈接:

虛擬機:VM虛擬機安裝Ubuntu16.04
U盤安裝:用一個空U盤做一個系統安裝包
注意:U盤安裝的話做完啓動盤後要在開機時按給定按鍵(F2或F11什麼的,我是F2)進入BIOS並把USB HDD+的啓動優先級提到第一(這樣開機的時候就能直接用U盤啓動)。其他跟着教程做就行了。

第二步:啓動Ubuntu,初始配置好並更換國內軟件源

啓動Ubuntu系統後,第一件事是先設置好root的密碼(以後會用的上)
. sudo passwd root
以後有一些權限設置,包的安裝可能需要root權限,提前準備好

之後就是更換軟件源,我這邊用的是目前的清華源,若過時不能用得需從官網上進行替換

sudo gedit /etc/apt/sources.list

打開裏面放源的文件後,把裏面的所有內容清空刪除並貼上此內容

# 默認註釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消註釋
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

# 預發佈軟件源,不建議啓用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

貼完保存一次退出,退出後在執行source代碼刷新一次

source /etc/apt/sources.list

更新一波軟件源,再進行接下來的ROS安裝環境配置~

#更新源
sudo apt-get update 
#更新軟件
sudo apt-get upgrade 

第三步:ROS的安裝

這個主要參照ROSWiki裏面的內容,我這邊算是這裏的簡化版
ROSWiki:http://wiki.ros.org/cn
這個前提是你得先從Ubuntu裏的軟件和更新把第一頁基本全勾選了,像這樣(那個鏈接就別改了,只勾選就行)
在這裏插入圖片描述
之後參照以下代碼來安裝ROS系統

#首先設置你的電腦可以從 packages.ros.org 接收軟件.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
#添加ROS的鏡像源,也是清華的
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
#添加Keys
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
#接下來就是安裝了(有三種可以選擇,按照需求選擇性安裝,需要等待一定的時間)
	#桌面完整版: (推薦) : 包含ROS、rqt、rviz、機器人通用庫、2D/3D 模擬器、導航以及2D/3D感知
	sudo apt-get install ros-kinetic-desktop-full
	
	#桌面版安裝: 包含ROS、rqt、rviz以及通用機器人函數庫。
	sudo apt-get install ros-kinetic-desktop
	
	#基礎版安裝: (簡版) 包含ROS核心軟件包、構建工具以及通信相關的程序庫,無GUI工具。
	sudo apt-get install ros-kinetic-ros-base
#安裝完後初始化 rosdep,rosdep的作用是能安裝相關的依賴
sudo rosdep init
rosdep update
#環境配置
#如果每次打開一個新的終端時ROS環境變量都能夠自動配置好(即添加到bash會話中),那將會方便很多:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
#構建工廠依賴
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

這樣ROS基本就安裝完畢了,

第四步:建立catkin_ws工作區,移植src代碼包

一般ros的移植主要是移植它工作區裏面的src文件夾,裏面放有能實現各種各樣功能的packages,ROS移植的主要目的就是將src裏的文件移植進去並編譯成功。
首先創建工作區並編譯一遍。

mkdir -p ~/catkin_ws/src
cd catkin_ws
catkin_make

之後把你要放的src文件除了CMakeFile.list全部覆蓋進去,再給工作區權限

chmod 777 -R catkin_ws
cd catkin_ws
rosdep install --form-paths src -i -y  #這個是自動安裝依賴的,但我用這個老出BUG,圖個樂就算了
catkin_make -j1  #單線程編程,雖然很慢但是好像會少出點BUG

之後在此文件夾裏面瘋狂的catkin_make,因爲它會持續報錯,我們要一個個的解決問題,其中最重要的是按照依賴,例子我這邊暫時沒截圖,每次報錯都會提示原因,大部分是缺少相關的依賴包,要用以下指令TAB補全一個個找來安裝

sudo apt-get install ros-kinetic-XX  #後續加上你要的包的部分名字,打了一部分就用TAB補全,按兩下TAB能顯示全部

以下是我這邊的小車需要用到的依賴包,可以參考一下

sudo apt-get update
ver=$(rosversion -d)
sudo apt-get install -y libusb-dev libspnav-dev  libbluetooth-dev libcwiid-dev
sudo apt-get install -y git vim
sudo pip install pybluez
sudo apt-get install -y libv4l-dev 
sudo apt-get install -y build-essential
sudo apt-get install -y chrony
sudo apt-get install -y libbullet-dev 
sudo apt-get install -y libudev-dev
sudo apt-get install -y libusb-dev
sudo apt-get install -y mini-httpd
sudo apt-get install -y ros-$ver\-roslint
sudo apt-get install -y ros-$ver\-rosserial
sudo apt-get install -y ros-$ver\-gmapping
sudo apt-get install -y ros-$ver\-navigation
sudo apt-get install -y ros-$ver\-map-server
sudo apt-get install -y ros-$ver\-rgbd-launch
sudo apt-get install -y ros-$ver\-costmap-2d
sudo apt-get install -y ros-$ver\-camera-info-manager
sudo apt-get install -y ros-$ver\-image-transport
sudo apt-get install -y ros-$ver\-teleop-twist-keyboard 
sudo apt-get install -y ros-$ver\-robot-upstart
sudo apt-get install -y ros-$ver\-slam-karto
sudo apt-get install -y ros-$ver\-geographic-msgs 
sudo apt-get install -y ros-$ver\-rosbridge-suite
sudo apt-get install -y ros-$ver\-robot-pose-publisher
sudo apt-get install -y ros-$ver\-tf2-web-republisher
sudo apt-get install -y ros-$ver\-web-video-server


echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

sudo usermod -aG dialout $USER

一直make到底,能到100%就說明移植成功,可以用了。

注意事項

1.有時候顯示的錯誤可以通過先把裏面的包移開編譯一次,再移回來(有時候會出現編譯順序導致的錯誤)
2.後續可能需要額外的包或者添加規則文件,這些根據自己需求安裝(有的直接提供sh腳本文件一鍵安裝)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章