ROS=Plumbing+Tools+Capabilities+Ecosystem
ROS设计目标
代码复用
:ROS的目标不是成为具有最多功能的框架,ROS的主要目标是支持机器人技术研发中的代码 重用。
分布式
:ROS是进程(也称为Nodes)的分布式框架,ROS中的进程可分布于不同主机,不同主机协同工 作,从而分散计算压力 。
松耦合
:ROS中功能模块封装于独立的功能包或元功能包,便于分享,功能包内的模块以节点为单位运 行,以ROS标准的IO作为接口,开发者不需要关注模块内部实现,只要了解接口规则就能实现复用,实现 了模块间点对点的松耦合连接 。
精简
:ROS被设计为尽可能精简,以便为ROS编写的代码可以与其他机器人软件框架一起使用。ROS易 于与其他机器人软件框架集成: ROS已与OpenRAVE, Orocos和Player集成。
语言独立性
:包括Java, C++, Python等。为了支持更多应用开发和移植,ROS设计为一种语言弱相关 的框架结构,使用简洁,中立的定义语言描述模块间的消息接口,在编译中再产生所使用语言的目标文 件,为消息交互提供支持,同时允许消息接口的嵌套使用 。
易于测试
:ROS具有称为rostest的内置单元/集成测试框架,可轻松安装和拆卸测试工具。
大型应用
: ROS适用于大型运行时系统和大型开发流程。
丰富的组件化工具包
:可采用组件化方式集成工具和软件到系统中作为一个组件直接使用。如RVIZ (3D可视化工具),开发者根据ROS定义的接口在其中显示机器人模型等,组件还包括仿真环 境和消息查看工具等 。
免费且开源
:开发者众多,功能包多
系统要求
系统:ubuntu 20.04
本人原本使用的是ubuntu22,但似乎新版本不稳定,在vm上经常宕机
ROS1 版本:ROS Noetic
Noetic(2020发布)支持python 3
Noetic之前支持python 2
配置步骤
首先在软件和更新
处,勾选下面
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'
2. 设置ROS软件Key
如果还没安装curl的话,执行下面语句
sudo apt install curl
安装curl命令,如果你的ubuntu安装很慢,那你可能需要在ubuntu软件与更新中设置国内镜像,选择阿里、腾讯或者中科大其中一个作为你的镜像。
继续输入:
curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
3. 更新软件包
sudo apt-get update
4. 安装完整版ROS Noetic软件
sudo apt-get install ros-noetic-desktop-full
5. 配置ROS环境
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
6. 安装构建依赖
sudo apt-get install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
7.1 安装rosdep(7.1与7.2任选其一)
sudo apt install python3-rosdep
初始化rosdep
sudo rosdep init
rosdep update
但是7.1方法在rosdep初始化时,多半会抛出异常
原因是境外资源被屏蔽了
解决方法
- 进入资源路径中,找到
cd /usr/lib/python3/dist-packages/
find . -type f | xargs grep "raw.githubusercontent"
第一个文件:
sudo gedit ./rosdistro/__init__.py
将下面的红色框框替换成gitee.com/zhao-xuzuo/rosdistro/raw/master
替换第二个文件:
sudo gedit ./rosdep2/gbpdistro_support.py
注意下图要保留https://
第三个文件:
sudo gedit ./rosdep2/sources_list.py
第四个文件:
sudo gedit ./rosdep2/rep3.py
完成上述步骤后,就可以运行下面命令了
sudo rosdep init
rosdep update
7. 2 安装rosdepc(7.1与7.2任选其一)
这是国内大佬做的rosdep镜像,可以绕开连接不上服务器的困难过程。
sudo apt install python3-pip
在安装了pip之后,需要对其进行换源,使用国内源能够更快下载文件
mkdir ~/.pip
cd ~/.pip
touch pip.conf
sudo gedit ~/.pip/pip.conf
在弹出的文件中写入
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn
安装rosdepc
sudo pip install rosdepc
sudo rosdepc init
rosdepc update
8. 尝试运行海龟
apt install python3-roslaunch
启动roscore
roscore
rosrun turtlesim turtlesim_node
测试ROS
- 首先启动三个命令行(
ctrl + alt + T
) - 命令行1键入:
roscore
- 命令行2键入:
rosrun turtlesim turtlesim_node
(此时会弹出图形化界面) - 命令行3键入:
rosrun turtlesim turtle_teleop_key
(在3中可以通过上下左右控制2中乌龟的运动) 最终结果如下所示:
控制海龟时,光标需要聚焦在第4步的窗口上
历史版本的安装
原因:由于nertic较之前版本变动较大,且部分功能包未更新,在后期实践阶段可能会遇到重要功能包未更新的情况,需要ros降级。
ros系统:melodic
Ubuntu 18.04
旧版本的环境配置与上文noetic的配置前5个步骤(包括第5个)大致一样,第4,5步稍微不同,这里从第4步进行讲解。
4. 安装完整版ROS melodic 软件
sudo apt install ros-melodic-desktop-full
5. 配置ROS环境
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
6. 安装构建依赖
sudo apt-get install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
7.初始化rosdep
sudo rosdep init
rosdep update
sudo rosdep init 可能会抛出异常
原因与noetic的7.1一样,境外资源被屏蔽了
解决方法:
- 将错误提示的域名进行查询:
- 记住中国香港这个ip :
151.101.76.133
- 修改/etc/hosts 文件,命令:
sudo gedit /etc/hosts
添加内容,即查询到的ip(本目录第2个步骤)与域名
151.101.76.133 raw.githubusercontent.com
- 重新执行下面命令
sudo rosdep init
rosdep update
若在rosdep update抛出异常,基本是网络原因导致的,建议使用手机热点多尝试几次即可。
卸载ROS
sudo apt-get remove ros-noetic-*
参考资料
https://www.bilibili.com/video/BV1Ci4y1L7ZZ/?spm_id_from=333.337.search-card.all.click&vd_source=b914a8de9ea8b12ba5cb6d8edd1b346c文章来源:https://www.toymoban.com/news/detail-420955.html
https://blog.csdn.net/liaolizhou/article/details/123615925文章来源地址https://www.toymoban.com/news/detail-420955.html
到了这里,关于【ROS机器人入门】1.1 ROS概念及环境配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!