前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ROS2 发展历程和开发环境安装

ROS2 发展历程和开发环境安装

原创
作者头像
首飞
修改于 2022-05-08 14:37:19
修改于 2022-05-08 14:37:19
7000
举报
文章被收录于专栏:ROS2ROS2

ROS2养成计划(一)发展历程和开发环境安装

ROS发展历程介绍

2006 年,无比好奇的一群人走在一起,组建了一个机器人研究实验室:柳树车库(Willow Garage)

2010年5月26日,人类历史上第一个机器人毕业典礼在硅谷这条蜿蜒的柳树街68号的小路旁,临时搭建的一座帐篷中举办。

四年思考的三个问题:

第一:为什么人类需要机器人?

斯科特·哈森的答案是:机器人可以帮助我们提高生产和工作效率。机器人已经在工厂里证明可以大幅度的提供工业的生产效率,在日常生活中,人类也需要机器人提高工作效率和生活质量。而且需要大量的机器人。

第二:为什么我们至今还没有好的机器人?

斯科特·哈森答案是:过去的经验告诉我们,造一个机器人非常困难,资本对机器人方向的关注和投入也很少。投资很少是因为市场很小,市场很小是因为机器人能做的事情很有限。没有市场,就没有投资,没有投资就没有人造机器人,没有人造机器人,就没有机器人。所以我们先从造机器人开始。

第三:如何实现人类拥有机器人的梦想?

斯科特·哈森答案是:我们正在做这件事,但是我们自己无法实现这个梦想,我们通过构建一个社群,让工程师,研究人员,工业企业参与进来,联合起来,一起来做 。希望有生之年能实现这个梦想,一个人人拥有机器人的梦想。

ROS是PR2项目其中的软件部分,车库采用同时与斯坦福大学人工智能实验室吴恩达教授合作的形式,将STAIR项目中的系统软件Switchyard为基础,构建ROS,并采用开源软件方式,邀请世界上(其实一开始主要是美国)感兴趣的人能参与进来。

ROS的含义

与个人电脑的操作系统发挥的作用类似。

为了更有效的管理计算机硬件,并提高计算机程序的开发效率,就出现了计算机操作系统。

为了更有效的管理机器人的硬件,并提高机器人应用程序的开发效率,就出现了机器人操作系统。

ROS最早的原型是在美国斯坦福大学人工智能实验室开发的,后来硅谷这家叫“柳树车库”的机器人公司与斯坦福大学合作,将ROS应用到公司开展的一个个人机器人PR2项目中。

摩根·奎格利(吴恩达的博士生)发现将机械臂操控、导航、视觉等各种功能集成在一个机器人上非常不容易,因此那时他就考虑并采用了“分布式”的方式,来连接不同的模块。这一概念被成功应用到后来的ROS中。

2007年,摩根·奎格利和吴恩达将STAIR的成果发表在IEEE 国际机器人与自动化会议上,文章的题目是《STAIR:Hardware and Software Architecture》,软件系统的名称是Switchyard。这个Switchyard就是ROS前身

2009年摩根·奎格利、吴恩达和柳树车库机器人公司的工程师们,在当年的IEEE国际机器人与自动化会议上发表了《ROS: An Open-Source Robot Operating System》,正式向外界介绍ROS。 正如文章中说强调的: ROS is not an operating system in the traditional sense of process management and scheduling; rather, it provides a structured communications layer above the host operating systems of a heterogenous compute cluster. (译文:ROS不是传统意义上的操作系统,不是用于进程管理和调度,而是构建在其它操作系统之上的一种结构化的通讯层。)

2012年,摩根·奎格利终于博士毕业了,他选择作为首席架构师,与布莱恩·格基(Brian Gerkey,CEO)、罗伯特·弗里德曼(Roberta Friedman, CFO)、凯特·考尼(Nate Koenig, CTO)一起创建了“开源机器人基金会 (OpenSource Robot Foundation,OSRF)”。

在“开源机器人基金会”的推动下,ROS先后发布了Groovy,Hydro,Indigoo,Jade,Kinetic Kame,Logger head,Melodic Morenia等版本。 除了负责ROS的开发和维护,“开源机器人基金会”同时推动机器人仿真平台Gazebo的开发。

随着ROS社群不断的壮大,在2012年5月,“开源机器人基金会”组织了第一届ROS开发者大会(简称ROSCon)。

从2016年起陆续有来自中国的团队做简短的分享,比如来自深圳的蓝胖子机器人、来自山东济南的汤尼机器人。

2013年到2014年初,是车库机器人研发的最后一个阶段。外界传闻很多,车库内部很多人心绪不定,对于PR2的未来背地里也是议论纷纷。车库的房东斯科特·哈森,决定停止继续投入资金, PR2的研究也停下来。车库的各路人马,正式从“机器人研究的阵地”退下来,吹响“机器人商业化”的号角。经过8年努力,“柳树车库系”终于全力冲进了机器人市场。

从“柳树车库”直接衍生出的公司正在改变着世界。一些前期的公司包括:

hiDOF:机器人与自动化软件咨询公司,2013被Google收购。

IPI(Industrial Perception Inc.):利用视觉辅助工业机械臂搬运货物,2013被Google收购。

OpenCV:一家非盈利机构,开发开源视觉和机器学习算法。

PCL:一家非盈利机构,开发点云处理算法。

OPF(Open Perception Foundation):一家非盈利机构,致力于2D/3D 数据的处理。

OSRF(Open Source Robotics Foundation):一家非盈利机构,致力于机器人开源软件的研究、教育、产品开发。

Open Robotics:由OSRF创立的一家盈利机构,致力于机器人开源软件的对外服务、软件开发、机器人开发咨询服务。

Redwood Robotics:低成本协作机械臂,2013年被Google收购.

Suitable Technologies:远程遥控机器人beam。

Unbounded Robotics:开发低成本移动机器人平台。

Fetch Robotics:由Unbounded Robotics团队重新打造的一款面向仓储物流的移动机器人平台。

硅谷似乎不缺这样的故事。

【IT文化杂谈】硅谷,仙童与“八叛徒”的故事

ROS的版本迭代

https://www.ros.org/blog/getting-started/#

ROS1版本

ROS2的版本

ROS2相关网站

ROS官网

https://www.ros.org/

ROS 2 Galactic Geochelone介绍网站

https://docs.ros.org/en/galactic/Releases/Release-Galactic-Geochelone.html

ROS问答社区

https://answers.ros.org/questions/

各个ROS版本的文档

http://docs.ros.org/

ROS Index (这里可以搜索ROS包的相关信息)

https://index.ros.org/

ROS Discourse(ros开发者讨论聚集地)

https://discourse.ros.org/

ROS开发者大会(演讲材料及视频)

https://roscon.ros.org/world/2021/

ROS2设计思路博客

https://design.ros2.org/

ROS技术讲座

https://vimeo.com/osrfoundation/videos

OpenRoboticsOrg 的twitter

https://twitter.com/openroboticsorg

Robot Operating System (ROS) 的twitter

https://twitter.com/rosorg

开发环境搭建

运行小乌龟

https://docs.ros.org/en/galactic/Tutorials/Turtlesim/Introducing-Turtlesim.html

分别在两个窗口运行下面的命令

代码语言:shell
AI代码解释
复制
source ~/.bashrc
ros2 run turtlesim turtlesim_node
代码语言:shell
AI代码解释
复制
ros2 run turtlesim turtle_teleop_key

仿真SLAM和导航的演示

源码安装turtlebot3

[ROS2]源码安装turtlebot3用于调试(简易版)

添加TURTLEBOT3_MODEL等环境变量

代码语言:shell
AI代码解释
复制
echo "source ~/turtlebot3_ws/install/setup.bash" >> ~/.bashrc
echo 'export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/turtlebot3_ws/src/turtlebot3/turtlebot3_simulations/turtlebot3_gazebo/models' >> ~/.bashrc
echo 'export TURTLEBOT3_MODEL=burger' >> ~/.bashrc
source ~/.bashrc

导航

启动导航软件

代码语言:text
AI代码解释
复制
ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True 

启动仿真环境

代码语言:text
AI代码解释
复制
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

先在rviz上点击2D Pose Estimate按钮,然后在地图上(机器人大概所在位置)点击按住移动鼠标调整方向。这个操作是为了初始化机器人位置。再点击Rviz菜单栏上的2D Goal Pose按钮,然后在地图上点击按住移动鼠标设置目标点及其方向。

SLAM建图

启动仿真环境

代码语言:Shell
AI代码解释
复制
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

启动建图程序

代码语言:text
AI代码解释
复制
ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True

启动手动控制程序

代码语言:shell
AI代码解释
复制
ros2 run turtlebot3_teleop teleop_keyboard

地图保存

代码语言:shell
AI代码解释
复制
ros2 run nav2_map_server map_saver_cli -f ~/map

遇到的问题:

  1. 运行ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True 报错
代码语言:shell
AI代码解释
复制
error while loading shared libraries: libspqr.so.2.0.2

解决办法(不太优雅但可行):

代码语言:text
AI代码解释
复制
cd /usr/lib/x86_64-linux-gnu/
sudo cp libspqr.so.2.0.9 libspqr.so.2.0.2
sudo rm libspqr.so
sudo rm libspqr.so.2
sudo ln -s libspqr.so.2.0.2 libspqr.so
sudo ln -s libspqr.so.2.0.2 libspqr.so.2

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器人操作系统二(ROS2)- 仿真 Simulation
ROS2的相关课程第一次开设的时间是在2017年的“智能机器人技术综合实训课程说明”(2017-2018-1学期)。当时以一个专题的形式进行简要介绍,2018年扩展了安装、基础、导航等内容(2018-2019-1学期)。The ROS2 course was first held in 2017, "Instructions for Integrated Robotics Training Courses" (2017-2018-1 semester). At that time, a brief introduction was made in the form of a topic. In 2018, the installation, foundation, navigation and other contents were expanded (2018-2019-1 semester).
zhangrelay
2019/08/29
1K0
机器人操作系统二(ROS2)- 仿真 Simulation
[ROS2 基础] Navigation2 导航系统介绍
注意:下面的解释说明是以Navigation2 v1.0.12来进行的。其对应的ROS2版本为Galactic。
首飞
2022/06/19
1.8K0
[ROS2 基础] Navigation2 导航系统介绍
ROS2机器人实验报告提示05➡寻路⬅Nav2
对比ros2 launch nav2_bringup tb3_simulation_launch.py和ros2 launch sam_bot_description display.launch.py。
zhangrelay
2021/12/02
7920
ROS2机器人实验报告提示05➡寻路⬅Nav2
在Windows系统安装ROS机器人操作系统(2020年10月25日更新)
重要网址:https://microsoft.github.io/Win-RoS-Landing-Page/
zhangrelay
2021/03/03
2.9K0
机器人编程趣味实践16-同步定位与地图构建(SLAM)
在 Gazebo 模拟器中进行 SLAM 时,可以在虚拟世界中选择或创建各种环境和机器人模型。SLAM 模拟与实际 TurtleBot3 的 SLAM 非常相似。
zhangrelay
2021/12/02
4760
机器人编程趣味实践16-同步定位与地图构建(SLAM)
webots和ros2笔记07-建国(turtlebot3)
在前篇王者https://zhangrelay.blog.csdn.net/article/details/112772586章节中,使用turtlebot进行导航任务。
zhangrelay
2021/03/03
4370
ROS2机器人案例学习linorobot2机器人模型
ROS2之G/F版本支持较多的机器人为turtlebot3和即将发布的turtlebot4:
zhangrelay
2022/05/10
7810
ROS2机器人案例学习linorobot2机器人模型
ROS2极简总结-SLAM
效果引用(github.com/rsasaki0109/li_slam_ros2)
zhangrelay
2021/12/02
1.1K0
ROS2极简总结-SLAM
ROS2Swarm群机器人案例(Dashing+Foxy)
REFERENCES [1] H. Hamann, Swarm Robotics: A Formal Approach. Cham: Springer International Publishing, 2018. [2] I. A. D. Nesnas, R. Simmons, D. Gaines, C. Kunz, A. Diaz-Calderon, T. Estlin, R. Madison, J. Guineau, M. McHenry, I.-H. Shu, and D. Apfelbaum, “CLARAty: Challenges and steps toward reusable robotic software,” International Journal of Advanced Robotic Systems, vol. 3, no. 1, p. 5, 2006. [3] C. Pinciroli and G. Beltrame, “Buzz: a programming language for robot swarms,” IEEE Software, vol. 33, no. 4, pp. 97–100, 2016. [4] M. Quigley, J. Faust, T. Foote, and J. Leibs, “ROS: an open-source Robot Operating System,” in ICRA workshop on open source software, vol. 3, no. 3.2. Kobe, Japan, 2009, p. 5. [5] M. Dorigo, G. Theraulaz, and V. Trianni, “Swarm robotics: Past, present, and future [point of view],” Proceedings of the IEEE, vol. 109, no. 7, pp. 1152–1165, 2021. [6] Y. Maruyama, S. Kato, and T. Azumi, “Exploring the performance of ROS2,” in 2016 International Conference on Embedded Software (EMSOFT), 2016, pp. 1–10. [7] A. Barcis, M. Barci ´ s, and C. Bettstetter, “Robots that Sync and Swarm: ´ A proof of concept in ROS 2,” in 2019 International Symposium on Multi-Robot and Multi-Agent Systems (MRS), 2019, pp. 98–104. [8] A. Barcis and C. Bettstetter, “Sandsbots: Robots that sync and swarm,” ´ IEEE Access, vol. 8, pp. 218 752–218 764, 2020. [9] A. Testa, A. Camisa, and G. Notarstefano, “ChoiRbot: A ROS 2 toolbox for cooperative robotics,” IEEE Robotics and Automation Letters, vol. 6, no. 2, pp. 2714–2720, 2021. [10] J. P. Queralta, Y. Xianjia, L. Qingqing, and T. Westerlund, “Towards large-scale scalable MAV swarms with ROS2 and UWB-based situated communication.” [11] T. De Wolf and T. Holvoet, “Design patterns for decentralised coordination in self-organising emergent systems,” in Proceedings of the 4th International Conference on Engineering Self-Organising Systems, ser. ESOA’06. Berlin, Heidelberg: Springer-Verlag, 2006, p. 28–49. [12] J. L. Fernandez-Marquez, G. Di Marzo Serugendo, S. Montagn
zhangrelay
2022/05/10
9250
ROS2Swarm群机器人案例(Dashing+Foxy)
机器人编程趣味实践14-机器人三维仿真(Gazebo+TurtleBot3)
TurtleBot3支持仿真开发环境,可以在仿真中用虚拟机器人编程开发。 有两种开发环境可以做到这一点,一种是使用带有 3D 可视化工具 RViz 的假节点,另一种是使用 3D 机器人模拟器 Gazebo。
zhangrelay
2021/12/02
8620
机器人编程趣味实践14-机器人三维仿真(Gazebo+TurtleBot3)
如何高效率系统地学习机器人操作系统ROS1.0和ROS2.0(2018年10月更新)
如何高效率系统地学习机器人操作系统ROS1.0和ROS2.0,博文都是具有时效性的,这主要面向2018年想要学习机器人操作系统的初学者。现在有关机器人操作系统ROS的学习与教程分享,越来越多,有时让人无所适从。
zhangrelay
2019/01/23
1.5K0
ROS2机器人编程简述humble-第四章-BASIC DETECTOR .3
由于缺¥,所有设备都非常老旧,都是其他实验室淘汰或者拼凑出来的设备。机器人控制笔记本是2010年版本。
zhangrelay
2023/02/26
7560
ROS2机器人编程简述humble-第四章-BASIC DETECTOR .3
[ROS2基础]参数和动作
https://gitee.com/shoufei/ros2_galactic_turorials.git
首飞
2022/05/22
8370
[ROS2基础]参数和动作
[ROS2基础]launch 文件和多节点进程
launch文件可以同时配置和启动多个ros节点。ROS2中的launch文件可以用Python、xml、yaml来写。
首飞
2022/05/29
2.3K0
[ROS2基础]launch 文件和多节点进程
使用ROS2机器人操作系统进行多机器人编程技术实践(Multi-Robot Programming Via ROS2 )
使用机器人操作系统ROS2和机器人中间件框架系统RMF进行多机器人系统集成,高层规划及其应用等。
zhangrelay
2020/08/20
3.1K0
使用ROS2机器人操作系统进行多机器人编程技术实践(Multi-Robot Programming Via ROS2 )
Ignition Robotics和ROS2 Foxy简明使用说明(ros_ign)
Ignition Robotics基于开发库和云服务等丰富全面的工具箱,提供了一种全新的仿真方式,进一步简化仿真。高度逼真的传感器可在接近真实的环境中快速迭代更新机器人物理设计。在安全上可测试控制策略,并在持续的集成化侧重中利用仿真的诸多优势。
zhangrelay
2020/07/16
2.3K0
Ignition Robotics和ROS2 Foxy简明使用说明(ros_ign)
ROS机器人编程新书推荐
一本新的ROS书籍:“ROS机器人编程,由TurtleBot3开发人员编写”。 现在,这本书已经出版了英文和中文版本。 你可以下载这本书的pdf。
zhangrelay
2022/04/29
1.3K0
ROS机器人编程新书推荐
ROS2 humble安装-chatgpt版本
确保具有支持 . 如果处于最小环境(例如 docker 容器)中,则区域设置可能是最小值,例如 。 使用以下设置进行测试。但是,如果您使用的是其他 UTF-8 支持的区域设置,则应该没问题。UTF-8POSIX
zhangrelay
2023/02/26
1.8K0
ROS2 humble安装-chatgpt版本
下载TurtleBot4源码来学习
turtlebot是开源的低成本移动机器人平台,希望以低成本的方式帮助更多的开发者学习实践机器人技术。
首飞
2022/06/12
5960
下载TurtleBot4源码来学习
机器人编程趣味实践17-混乱的记忆-
Cartographer 是一个系统,可提供跨多个平台和传感器配置的 2D 和 3D 实时同步定位和地图构建 (SLAM)。 该项目提供 Cartographer 的 ROS 集成。
zhangrelay
2021/12/02
5970
机器人编程趣味实践17-混乱的记忆-
推荐阅读
相关推荐
机器人操作系统二(ROS2)- 仿真 Simulation
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档