
ROS1与ROS2的安装教程
刚刚结束了为期一周的ROS的暑期培训,本来安装ROS应该是一件非常困难的事情,不过在各位群友的碰壁和讨论下,总结出了不少经验,本人在安装ros时还比较顺利,故写一篇教程来记录一下自己的安装教程,希望对各位有所帮助。一、准备工作1.ros1对应ubuntu版本:2.ros2对应ubuntu版本:ROSFoxyUbuntu20.04ROSDashingUbuntu18.04ROSCryst...
目录
1.官方安装ROS的说明:http://wiki.ros.org/Installation/Ubuntu?distro=melodic
刚刚结束了为期一周的ROS的暑期培训,本来安装ROS应该是一件非常困难的事情,不过在各位群友的碰壁和讨论下,总结出了不少经验,本人在安装ros时还比较顺利,故写一篇教程来记录一下自己的安装教程,希望对各位有所帮助。
一、准备工作
1.ros1对应ubuntu版本:
2.ros2对应ubuntu版本:
ROS Foxy Ubuntu20.04
ROS Dashing Ubuntu18.04
ROS Crystal Ubuntu16.04
这里选择较为稳定,生命周期较长,且功能比较完备的ROS Melodic和ROS2 Foxy进行讲解
Ubuntu20.04下载地址:https://ubuntu.com/download/desktop/thank-you?version=20.04.2.0&architecture=amd64
Ubuntu18.04下载地址:https://releases.ubuntu.com/18.04.5/ubuntu-18.04.5-desktop-amd64.iso
3.Ubuntu的安装
下载镜像之后,可以选择三种方式,虚拟机,双系统,u盘启动。
这里建议没有装双系统经验的读者不要轻易尝试双系统,因为可能会对原本的win系统造成不可逆转的错误;如果电脑性能较为优异推荐使用Vmare虚拟机进行自动安装,所有选项都填默认,加载镜像后联网等待其自动安装完成即可;最优方案是使用u盘进行开机启动盘的操作因为这样一方面即使由于误操作导致系统损坏与不至于导致电脑本身的系统出现不必要的错误,另一方面也能充分调用电脑性能,方便后期调用gazebo仿真软件等较为吃性能的软件。
二、ROS1的安装
相比于ros2,ros1的安装过程较为复杂尤其是最后一步的ros更新,由于网络问题,大部分人在刚接触ros时都不知道该如何解决这种错误,本文将给出解答。
1.官方安装ROS的说明:http://wiki.ros.org/Installation/Ubuntu?distro=melodic
2.ros melodic的安装步骤:
(1)安装ros源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
(2)设置key
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
注:若没有这一步,则执行sudo apt-get update时会弹出一堆错误,这是个GPG错误,表示下列签名无法验证,我们需要获取系统中的这个公钥,从信息中获取密钥号。
在错误的末尾会弹出公钥,若上面的密钥失效,则自行进行替换即可。
(3) 更新
sudo apt-get update
(4)安装
sudo apt-get install ros-melodic-desktop-full
#这是安装ros本体
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
#这是安装一些比较常用的功能包
这里直接安装桌面的完全版,并且含有ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception 和 rosinstall,这些常用的ros工具,当然,在github上下载的功能包进行catkin_make编译的时候如果报错没有什么库,可以根据提示进行安装即可进行编译。
(5)ROSdep初始化
按照官方的教程,直接执行以下代码就可以
sudo rosdep init
rosdep update
但是由于网络原因,大部分小伙伴在执行sudo rosdep init时都会报错无法访问链接,因为rosdepc使用的是国内的源,rosdep初始化失败是因为其使用的是github,国内无法访问。
这里只要更换为小鱼dalao制作的国内镜像rosdepc,即可解决该问题。
sudo apt-get install python3-pip
#安装pip3
sudo pip install rosdepc
#安装rosdepc
sudo rosdepc init
#rosdep初始化
rosdepc update
#更新ros源
该depc的库由小鱼dalao负责,这里也欢迎各位读者关注他的微信公众号:鱼香ROS
(6)环境配置
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
(7)安装完成,尝试运行
在终端执行:roscore
若出现以下信息则表示安装成功
... logging to /home/pi/.ros/log/96bf3f3c-fca3-11eb-ad36-000c29aa8d4a/roslaunch-ubuntu-2076.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://ubuntu:43097/
ros_comm version 1.14.11
SUMMARY
========
PARAMETERS
* /rosdistro: melodic
* /rosversion: 1.14.11
NODES
auto-starting new master
process[master]: started with pid [2087]
ROS_MASTER_URI=http://ubuntu:11311/
setting /run_id to 96bf3f3c-fca3-11eb-ad36-000c29aa8d4a
process[rosout-1]: started with pid [2098]
started core service [/rosout]
(8)运行小海龟程序
打开两个终端,分别输入以下指令
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
就可以打开小海龟的运行界面
在运行rosrun turtlesim turtle_teleop_key的终端上用上下左右键就可以控制小海龟的移动了,如图
需要注意的是,在github上下载的功能包编译之后如果执行roslaunch无法启动,则需要在项目的文件夹中执行一次
source devel/setup.bash
即可使用roslaunch来启动相应的功能包。
至此,ROS melodic的安装过程就结束了。
二、ROS2的安装
1.ROS Foxy的安装
(1)设置语言环境
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
#该步为将ubuntu系统的默认字符编码换位utf-8格式
(2)添加ros2的密钥
sudo apt update && sudo apt install curl gnupg2 lsb-release
curl http://repo.ros2.org/repos.key | sudo apt-key add -
(3)将ros2的源码库添加到系统的源列表里
sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'
(4)更新list
sudo apt update
(5)安装ros2的本体
sudo apt install ros-foxy-desktop
(6)安装argcomplete
sudo apt install python3-argcomplete
(7)配置环境变量
echo "source /opt/ros/dashing/setup.bash" >> ~/.bashrc
(8)安装完成,尝试运行
这里以ros2基于dds通讯的典型例子talker和listener为例,二者基于discover机制相互发现后建立topic并传输message
首先执行
ros2 run demo_nodes_cpp talker
执行效果如下
再执行
ros2 run demo_nodes_cpp listener
如图所示,基于discover机制,两个Node已经连接起来了
(9)运行小海龟程序
同样的我们也可以在ros2中运行小海龟的程序
在两个终端中分别执行
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
(10)安装额外的功能包
sudo apt update
sudo apt install ros-foxy-rmw-opensplice-cpp
sudo apt install ros-foxy-rmw-connext-cpp
至此,ros1和ros2就都已经安装,并可以使用了。
新人第一次写教程还望各位多多指教。
更多推荐
所有评论(0)