【ROS】ROS安装教程


一、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和操作系统存在高度绑定的关系,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软件仓库,教程可以看这里

在这里插入图片描述

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


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]

在这里插入图片描述

<think>好的,我现在需要帮助用户查找在树莓派上安装ROS教程或指南。首先,用户提到了几个引用,其中引用[1]和[2]是关于ROS2的安装,引用[3]和[4]是关于ROS Melodic的安装。这表明用户可能对ROS的不同版本(ROS1和ROS2)有需求,但并没有明确说明需要哪个版本。因此,我需要先区分ROS1和ROS2的安装步骤,并明确用户的需求。 接下来,我需要检查用户提供的引用内容。引用[1]提到安装ROS2的步骤,包括选择适合的发行版如Foxy或Galactic,并确保树莓派的操作系统是Ubuntu Server 20.04 LTS for ARM64。引用[2]同样涉及ROS2的一键安装和手动安装方法。而引用[3]和[4]则针对ROS Melodic(ROS1的一个版本)的安装,并提到了解决常见错误的方法,比如sudo rosdep init和rosdep update的问题。 考虑到树莓派的不同型号和操作系统兼容性,需要指出ROS1和ROS2的主要区别,以及各自适用的场景。例如,ROS1主要支持Ubuntu 18.04和更早版本,而ROS2支持更新的系统如Ubuntu 20.04。因此,用户需要根据自己的树莓派型号和操作系统选择合适的ROS版本。 在回答中,应该分步骤指导用户选择版本、准备系统环境,然后提供安装方法。对于ROS2,可以推荐使用一键安装脚本简化流程;对于ROS1 Melodic,则需要手动安装并注意依赖问题。同时,必须包含引用来源,确保信息的可靠性。 另外,用户可能遇到的常见问题,如依赖安装失败或网络问题导致的rosdep更新失败,需要提供解决方法,如更换软件源或手动配置。这些内容在引用[4]中有所提及,可以引用相关步骤。 最后,生成相关问题,帮助用户进一步探索,例如如何验证安装是否成功,如何配置开发环境,或者如何迁移ROS1项目到ROS2等。这些问题能够引导用户深入学习和解决问题。</think>在树莓派上安装ROS的流程需根据ROS版本(ROS1或ROS2)选择合适的安装方式。以下是分步骤指南: ### 一、选择ROS版本 1. **ROS1(如Melodic)**:适用于Ubuntu 18.04及以下系统,依赖Python 2.7[^3][^4]。 2. **ROS2(如Foxy/Galactic)**:支持Ubuntu 20.04及以上系统,基于Python 3,适合新项目开发[^1][^2]。 ### 二、系统准备 - **树莓派操作系统**:推荐Ubuntu Server 20.04 LTS(ARM64)用于ROS2;Raspbian Buster用于ROS1。 - **网络配置**:确保稳定的网络连接,避免依赖下载失败。 ### 三、安装ROS1(以Melodic为例) 1. **配置仓库**: ```bash sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 ``` 2. **安装依赖**: ```bash sudo apt update && sudo apt install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential sudo rosdep init # 若失败,参考引用[4]的解决方法 rosdep update ``` 3. **编译安装**: ```bash mkdir -p ~/ros_catkin_ws && cd ~/ros_catkin_ws rosinstall_generator desktop --rosdistro melodic --deps --tar > melodic-desktop.rosinstall wstool init src melodic-desktop.rosinstall rosdep install --from-paths src --ignore-src --rosdistro melodic -y ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release ``` ### 四、安装ROS2(以Foxy为例) 1. **一键安装(推荐)**: ```bash wget https://raw.githubusercontent.com/ros2/ros2/master/ros2.repos mkdir -p ~/ros2_foxy/src && cd ~/ros2_foxy vcs import src < ros2.repos sudo apt update && sudo apt install -y python3-colcon-common-extensions colcon build --symlink-install echo "source ~/ros2_foxy/install/local_setup.bash" >> ~/.bashrc ``` ### 五、验证安装 - **ROS1**:运行`roscore`,若启动核心服务则成功。 - **ROS2**:执行`ros2 run demo_nodes_cpp talker`,测试消息发布功能[^1]。 ### 常见问题解决 - **rosdep初始化失败**:手动下载`rosdistro`仓库并配置路径[^4]。 - **依赖冲突**:使用`aptitude`工具解决依赖关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值