【ROS】ROS安装教程

目录

    • 一、ROS版本介绍
    • 二、注意
    • 三、安装教程
      • 3.1 安装平台
      • 3.2 安装过程
    • 四、测试


一、ROS版本介绍

ROS分为ROS1和ROS2,我们使用的是ROS1

ROS1存在测试版和长期支持版,长期支持版支持5年
长期支持版:

2014年 —— 长期支持版,支持到2019年
2015年 —— 测试版
2016年 —— 长期支持版,支持到2021年 Kinetic版本,官方已不推荐安装该版本
2017年 —— 测试版
2018年 —— 长期支持版,支持到2023年 Melodic版本,常用,建议在Ubuntu 18.04上安装
2019年 —— 未发布
2020年 —— 长期支持版,支持到2025年 Noetic版本,建议在Ubuntu 20.04上安装

【ROS】ROS安装教程_第1张图片


二、注意

ROS和操作系统存在高度绑定的关系,Kinetic版本只能装在Ubuntu16.04、Melodic版本只能装在18.04、Noetic版本只能装在20.04,因为这些ROS版本用到的是系统默认的环境 —— 用到了Python环境,所以我第一次安装ROS时,由于系统的python环境被我改过,导致安装失败。
很多教程在前期学习python时,都用anaconda,主要是为了隔离开,防止污染了系统的python环境。
Melodic版本使用python2,Noetic版本才用python3


三、安装教程

这里仅记录我的操作过程,我是按照ROS官网的教程来的,不过失败了,事后分析可能是少了一步,在下面会提到。
ROS官方安装教程


3.1 安装平台

安装硬件平台:Jetson Nano —— ARM架构
Nano系统:JetPack 4.3【系统没有任何修改,安装完系统立刻装ROS】


3.2 安装过程

1、勾选四个Ubuntu软件仓库,教程可以看这里

【ROS】ROS安装教程_第2张图片

设置完点击右下角关闭选项,会弹出界面选项框,选择重新加载。【重新加载可能会没有完成,那些错误我花了一定的时间解决,但是最终都没有消除,但是并不是说有错误就不能往下执行,直接忽略它们即可】


2、设置sources.list
在命令行输入:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

这个应该是清华大学的镜像。


3、设置密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

4、安装
首先,确保你的 Debian 包索引是最新的:

sudo apt update

之后下载桌面完整版(ros-版本-desktop-full),这里我的是melodic版本

sudo apt install ros-melodic-desktop-full

【也有基础版,可以到官方教程看对应的命令】


5、安装一个包【官方教程没有装这个包】

sudo apt install python-rosdep

就是因为没有安装这个包,导致下一步初始化报错,系统说没有rosdep这个命令。

但需要注意的是,“python-rosdep"是用于Melodic版本的,Noetic版的ROS好像需要使用"python3-rosdep”,Noetic的我不太确定,下面是我个人的猜想:

前面我们提到,官方推荐Melodic版本的ROS安装在Ubuntu 18.04系统上,而Noetic版本的ROS安装在Ubuntu 20.04的系统上。
我之前Nano的系统是JetPack 4.4,它属于Ubuntu 18.04,因此我很自然也选择的是Melodic版本,同时JetPack 4.4默认使用的是python 2.7,可能也是这个原因,我们需要安装的是"python-rosdep",而不是"python3-rosdep"。
我存在的问题是:我的Nano系统之前被我修改过,下载了各种版本的python,有很多个python3,同时我还修改了默认设置,因此虽然我在第六步初始化失败之后也回头来安装了"python-rosdep",但再次执行第6步时还是报错了,不过系统不再说不认识"rosdep"这个命令了,而是报错了。

我猜测的原因:Melodic需要的是python2的"python-rosdep",而我系统此时的默认版本已经是python3了,因此出现错误。可能需要先将默认的python版本改回来。同时看网上的资料说,使用Noetic版本的ROS需要执行的是"python3-rosdep"这行命令,这个我没试验过,不确定是不是因为Ubuntu 20.04的默认python版本为python3。

我的解决方法:由于试了很多种操作之后都没有解决,因此我直接重新下载了Nano系统,版本是JetPack 4.3,它也是18.04,重新走了一遍安装流程,结果一切都正常了。


6、初始化 rosdep
在你使用 ROS 之前,需要初始化 rosdep。rosdep 让你能够轻松地安装被想要编译的源代码,或被某些 ROS 核心组件需要的系统依赖。

sudo rosdep init
rosdep update

7、设置环境

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

8、不知道这一步要不要,不过我执行了

官方教程的说法:" 如果你不只安装了一个 ROS 发行版, ~/.bashrc 只能使用你需要的 ROS 版本的 setup.bash 。

如果你只想设置当前 bash 会话的 ROS 环境变量,只需要输入:"

source /opt/ros/melodic/setup.bash

9、安装依赖项

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

四、测试

通过命令启动 ROS Master

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

启动命令后,会有以下日志打印

... logging to /home/xq/.ros/log/60c9f200-32b5-11ea-9658-482ae35bedc8/roslaunch-xq-pc-31609.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://xq-pc:41099/
ros_comm version 1.14.3


SUMMARY
========

PARAMETERS
 * /rosdistro: melodic
 * /rosversion: 1.14.3

NODES

auto-starting new master
process[master]: started with pid [31620]
ROS_MASTER_URI=http://xq-pc:11311/

setting /run_id to 60c9f200-32b5-11ea-9658-482ae35bedc8
process[rosout-1]: started with pid [31631]
started core service [/rosout]

【ROS】ROS安装教程_第3张图片

你可能感兴趣的:(ROS,自动驾驶,ubuntu,linux)