第一篇: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脚本文件一键安装)

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