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

实现PVNet时踩的坑 记录一下在跑通pvnet时踩的各种坑 pvnet 代码地址:https://github.com/zju3dv/pvnet pvnet-rendering 代码地址:https://github.com/zju3dv/pvnet-rendering 1.执行 python lib/utils/data_utils.py: 报错1: Traceback (most recent call last): File "lib/utils/data_utils.py", line 18, in <mo 阅读详情

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

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

source ~/.bashrc
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

仿真SLAM和导航的演示

源码安装turtlebot3

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

添加TURTLEBOT3_MODEL等环境变量

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

导航

启动导航软件

ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True 

启动仿真环境

ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

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

SLAM建图

启动仿真环境

ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

启动建图程序

ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True

启动手动控制程序

ros2 run turtlebot3_teleop teleop_keyboard

地图保存

ros2 run nav2_map_server map_saver_cli -f ~/map

遇到的问题:

  1. 运行ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True 报错
error while loading shared libraries: libspqr.so.2.0.2

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

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

可参考的学习资料:

鱼香ROS:拥有一键安装ROS1 ROS2的神器

https://fishros.com/#/fish_home

官方教程:最官方

https://docs.ros.org/en/galactic/index.html

新一代机器人操作系统ROS 2技术文档:这个教材不简单,写的比官方教材还细致。感谢大佬。

https://www.zhihu.com/column/c_1348897856313581568

古月居ros2教程:一个字 “稳”

https://www.guyuehome.com/Blog/index/category/14/p/2

Automatic Addison : 一个不错的博客

https://automaticaddison.com/

ROS史话

https://www.guyuehome.com/Blog/index/category/13/p/2

关注公众号《首飞》回复“机器人”获取精心推荐的C/C++,Python,Docker,Qt,ROS1/2等机器人行业常用技术资料。

ROS2:从初识到深入,探索机器人操作系统的进化之路 最近开始接触到基于DDS的这个系统,是在稚晖君的机器人项目中了解和认识到。于是便开始自己买书学习起来,感觉挺有意思的,但是只是单纯的看书籍,总会显得枯燥无味,于是自己又开始在网上找了一些视频教程结合书籍一起来看,便让我对ROS系统有了更深的认识和理解。 阅读详情

相关推荐

ROS2二十一讲学习——ROS2安装+开发环境配置

ROS2二十一讲中使用到的Linux发行版就是ubuntu系统。Ubuntu诞生于2004年10月份,每六个月发布一个新版本,用户可以一直免费升级使用,我们常用的浏览器、文件编辑器、通讯软件等一应俱全。在选择版本的时候,大家可以关注一下紧随其后的编号,比如Ubuntu22.04。22代表2022年,04表示2022年的4月份发布,除了04还可能会出现的是10,就是10月份发布,所以从数字编号上就可以看出各个版本发布的顺序。

overwizard的博客 6325

ROS2系列知识【1】:Ubuntu20.4上ROS2- Rolling版安装

本篇的主要意义在于:你参考官方文 档,然而还是出现莫名奇妙的问题,你要注意密切注意是否版本不兼容,在ROS中,版本互不兼容是常态!如上文的focal和bionic。建议常用lsb_release -a看看。

gongdiwudu的专栏 1万+

ROS-机器人开发环境一键安装

第三:选择 【2】:不更换继续安装,执行后见下图。第五:选择[1]: noetic(ROS1)桌面版。ros安装成功,打开新终端,执行roscore命令。

zhangzx36的博客 2万+

SLAM14讲CH9后端1编译错误

我在编译的过程中,出现了以下的错误。

m0_49885363的博客 638

安装ROS2 humble 和 cartographer

ROS2 humble及cartographer安装

NOA_GG的博客 5446

ROS2从入门到精通0-2:ROS2简介、对比ROS1与详细安装流程_ros ros2

本专栏旨在通过对ROS2的系统学习,掌握ROS2底层基本分布式原理,并具有机器人建模和应用ROS2进行实际项目的开发和调试的工程能力。《ROS2从入门到精通》**ROS(Robot Operating System)**是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象底层设备控制常用函数的实现进程间消息传递包管理用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数ROS 的主要目标是为机器人研究和开发提供代码复用的支持。简单来说就是避免重复造轮子。

2401_83977357的博客 1783

ROS1/2机器人操作系统发行版本(Distributions)和编译系统(Build Systems)

所有书都不可能是一本完备的 ROS 参考手册。几乎可以肯定,要真正动手使用 ROS 将要了解更多的细节。幸运的是,网上有关 ROS1 和 ROS2 的信息十分丰富。 补充:最为重要的是ROS开发联盟维护的官方维基文档。 发行版本(Distributions): ROS的主要版本称为发行版,其版本号以顺序字母作为版本名的首字母来命名(这种方式与其他大型工程的版本命名方式类似,如Ubuntu、Android)。 ROS 1.0:(Noetic) 目前,共提供Indigo、Kinetic和Melodi

zhangrelay的专栏 3044

ROS2发展历程与Python编程实战指南

摘要:ROS2作为新一代机器人操作系统,通过DDS通信架构实现去中心化设计,解决了ROS1的单点故障和实时性等问题。本文详细介绍了ROS2的发展历程、Python开发环境配置、面向对象编程实践以及节点开发深度技巧。重点内容包括:基于Python的异步编程模型、类型注解强化、OOP封装模式、通信机制解析、参数动态管理等工程化实践。同时提供了SLAM导航机器人项目实战案例,涵盖系统架构、核心代码实现及性能优化方案展望ROS2与Python融合开发的未来趋势,强调异步化整合和AI模型部署优化将成为发展方向。

bother3000的博客 1080

ROS2理论与实践——第一章ROS概述与环境搭建(1)

ROS2理论与实践第一章(1)

一个热爱生活的人的博客 743

VSCode配置ROS2开发环境

如题,是给VSCode配置ROS2开发环境的文章:) 注意是ROS2!!!这个很重要!!! (被ROS教程摧残了的老咸鱼的呐喊)

m0_52332336的博客 4075

ubuntu22.04+ROS2推荐匹配的gazebo版本

可以看到ros2推荐使用版本是humble-----匹配的是Ubuntu22.04LTS。可以看到ros2推荐使用版本是humble-----匹配的是Ubuntu22.04LTS。-------匹配gazebo Harmonic。-------匹配gazebo Harmonic。

3907

ROS2从入门到精通0-2:ROS2简介、对比ROS1与详细安装流程

ROS是一个适用于机器人的开源的元操作系统。本文作为ROS2入门的第一节,主要介绍为什么引入机器人操作系统,ROS的发展历程,为什么在ROS1的基础上要进一步引入ROS2,并给出详细的ROS2安装测试流程

FRIGIDWINTER的博客 2万+

GIS国土工具实战:从地类分析到坐标转换,一站式解决项目难题

本文详细介绍了GIS国土工具在国土整治项目中的高效应用,涵盖地类分析、坐标转换、影像加载等核心功能。通过实战案例展示如何利用该工具快速处理shp与txt文件转换、智能比对三调二调数据,以及优化影像加载策略,显著提升项目效率。特别适合需要处理复杂国土数据的专业人员使用。

weixin_28732953的博客 335
上一篇: [ROS2]源码安装turtlebot3用于调试(简易版)
下一篇: [ROS2] LifecycleNode 命令行工具
首飞爱玩机器人
博客等级 码龄14年 6990粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

首飞爱玩机器人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值