ROS(一)安装
文档维护:Arvin
网页部署:Arvin
▶
写在前面:本文旨在记录学习ROS过程中的一些重要知识概念和遇到的错误问题。主要参考赵虚左老师的ROS课程(第一个参考链接),由于赵老师用的noetic版本,而我用的是melodic版本,细节上可能会有所差异。
简介
ROS全称Robot Operating System(机器人操作系统)。
- ROS是适用于机器人的开源元操作系统
- ROS集成了大量的工具,库,协议,提供类似OS所提供的功能,简化对机器人的控制
- 还提供了用于在多台计算机上获取,构建,编写和运行代码的工具和库,ROS在某些方面类似于“机器人框架”
- ROS设计者将ROS表述为“ROS = Plumbing + Tools + Capabilities + Ecosystem”,即ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体
经过长时间的迭代与发展,ROS有许多版本,大版本有ROS1和ROS2之分。与ROS1相比,主要的更改如下(框架层面):
- 系统架构进行了颠覆性的变化,ROS1中所有节点都需要在节点管理器ROS Master的管理下进行工作,一旦Master出现问题,系统就面临宕机的风险,ROS2实现了真正的分布式,不再有Master这个角色,借助一种全新的通信框架DDS,为所有节点的通信提供可靠保障。
- 软件API进行了重新设计,ROS1原有的接口已经无法满足需求,ROS2结合C++最新标准和Python3语言特性,设计了更具通用性的API,虽然导致原有ROS1的代码无法直接在ROS2中运行,但是尽量保留了类似的使用方法,同时提供了大量移植的说明。
- 编译系统进行了升级,ROS1中使用的rosbuild和catkin问题诸多,尤其是针对代码较多的大项目以及Python编写的项目,编译、链接经常会出错,ROS2对这些问题也进行了优化,重新优化后的编译系统叫做ament和colcon,大家在后续的课程中就会体验到新版编译器的使用方法。
另外ROS1和ROS2内也都包含多个对应版本,并且支持的操作系统也不相同。
Ubuntu | ROS1 | Release date | End of Life |
---|---|---|---|
16.04 LTS | Kinetic Kame(Not Recommended) | 2016.05 | 2021.04 |
18.04 LTS | Melodic Morenia | 2018.05 | 2023.05 |
20.04 LTS | Noetic Ninjemys(Recommended) | 2020.0 | 2025.05 |
Ubuntu | ROS2 | Release date | End of Life |
---|---|---|---|
20.04 LTS | Foxy Fitzroy | 2020.05 | 2023.05 |
20.04 LTS 22.04 LTS |
Humble Hawksbill(Recommended) | 2022.05 | 2027.05 |
22.04 LTS | Iron Irwini(Recommended) | 2023.0 | 2024.09 |
以上只是部分版本。下面以melodic为例,在Ubuntu18.04上进行安装。
安装
安装源
官方默认安装源:
1 | sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' |
或来自国内中科大的安装源
1 | sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list' |
或来自国内清华的安装源
1 | 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' |
设置Key
1 | sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 |
安装
首先需要更新 apt(以前是 apt-get, 官方建议使用 apt 而非 apt-get),apt 是用于从互联网仓库搜索、安装、升级、卸载软件或操作系统的工具。
1 | sudo apt update |
等待…
然后,再安装所需类型的 ROS:ROS 多个类型:Desktop-Full、Desktop、ROS-Base。这里介绍较为常用的Desktop-Full(官方推荐)安装: ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
1 | sudo apt install ros-melodic-desktop-full |
等待…
环境设置
配置环境变量,方便在任意 终端中使用 ROS。
1 | echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc |
安装构建依赖
首先安装构建依赖的相关工具
1 | sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential |
然后安装rosdep(可以安装系统依赖)
1 | sudo apt install python-rosdep |
初始化rosdep
1 | sudo rosdep init |
测试
ROS 内置了一些小程序,可以通过运行这些小程序以检测 ROS 环境是否可以正常运行
- 首先启动三个命令行(ctrl + alt + T)
- 命令行1键入:roscore
- 命令行2键入:rosrun turtlesim turtlesim_node(此时会弹出图形化界面)
- 命令行3键入:rosrun turtlesim turtle_teleop_key(在3中可以通过上下左右控制2中乌龟的运动)
至此说明安装成功!
报错
sudo rosdep init报错
描述:
1 | ERROR: cannot download default sources list from: |
原因:
境外资源被屏蔽
解决:
使用科学上网,但是依然报错,后来发现在浏览器中可以打开此网址,所以有可能是命令行没走代理的缘故。所以设置命令行走代理。
1 | 1.安装 |
启动roscore时报错
描述:
启动roscore时,报如下错误:
1 | IOError: [Errno 13] Permission denied: '/home/arvin/.ros/roscore-11311.pid' |
原因:
这个问题是由于该路径下ros文件权限造成的。
解决:
1 | sudo chmod 777 -R ~/.ros/ |
参考资料: