Turtlebot4 神龟4号-前世今生的八卦
2022-07-04

开始之前想问一下大家,ROS前面的9个点是啥意思?

Turtlebot4-JT第三版_00.png

Turtlebot4是2022年5月新推出的一款基于ROS2.0的机器人平台。小编搜集了一些资料整理成ppt,并在这里和大家做一个Turtlebot4神龟4号“应用方案的探讨”(OS:前世今生的八卦)

Turtlebot4-JT第三版_01.png

说到Turtlebot就不得不提ROS,说到ROS就不得不聊一下PR2这款机器人(如上右图所示)

Turtlebot4-JT第三版_02.png

在2007年,斯坦福大学的一帮同学(有志青年)诞生了一个想法,“我们有没有可能做一款个人服务机器人,帮我们洗衣做饭收拾房间总之一切我们不想做的事情(小编也曾有过这样的幻想),甚至无聊的时候还可以陪我们聊天玩耍……最后他们做出来了,就是刚刚说到的PR2机器人。

你可以看到上图,PR2机器人已经可以完成叠毛巾,打台球,煎鸡蛋,帮助人剪头发(右下图)等一系列复杂的应用功能。以叠毛巾为例,这在当时是轰动机器人圈的重要研究(因为第一次有机器人可以完成柔性物体的处理,虽然效率低,叠5条毛巾需要耗时100分钟,但是在学术层面却推动机器人向前走了一大步)。

他们知道完成这一切非常不容易,机械、电路、软件都要涉及,而且横跨很多个专业,光靠自己肯定做不到,那么联合所有人一起干呢?比如涉及一套标准的机器人操作系统。PR2这款机器人中的软件框架就是ROS的原型,所以ROS因这款个人服务机器人而生,很快也从中独立出来,成为一款可以让更多机器人在其上编程的机器人操作系统。

Turtlebot4-JT第三版_03.png

Turtlebot4-JT第三版_04.png

ROS标记中使用的9个点是来自龟背壳。在2010年,ROS1.0发布。为了普及ROS,柳树车库公司在2010年推出了Turtlebot,它是ROS官方指定的机器人标准平台。我们打开ROS,就会出现一个小乌龟,而乌龟图标甚至成为ROS的象征。

Turtlebot这个名字,正是ROS官方的一个印记。

Turtlebot4-JT第三版_05.png

Turtlebot4-JT第三版_06.png

我们来看这张图,大家有没有发现一个现象:Turtlebot4的外形和2代,1代比较类似。

Turtlebot4-JT第三版_07.png

【回归Turtlebotxi系列

底座集成性能强2017年Turtlebot3发布后,很多用户给到我们反馈,说“你寄给我的是散件,我让学生拼出来至少两个半小时,有时候学生不小心把OPENCR的电源线接反了,板子就烧了,有没有可能以后直接给我集成好的底座”,于是,Turtlebot4回归Turtlebot系列,底座集成性能更强。

【解决电池供电问题】用户还提到说每年寒暑假,机器人没有充电,再用的时候就坏了。有点类似我们汽车的电瓶,2个月以上不闻不问不管,电池过放,就容易坏。而电池属于耗材,坏了只能重新买。于是Turtlebot4标配一个智能充电桩(2个版本都标配充电桩)解决了电池供电问题。

【传感器升级】还有用户说,Turtlebot3上的相机性能太差了,好多时候需要额外配置英特尔的D435或者ZED2,这个时候算力不够还需要再额外配一个TX2,太麻烦了。有没有可能直接提升相机性能。在Turtlebot4上,我们使用了OPENCV公司推出的OAK相机,产品非常能打(等会PPT有相机功能对比表)

【交互性能增强】在使用Turtlebot3的时候,我们不清楚电池状态/WIFI状态/通信状态/电机状态等,这些都需要我们接上显示器才能了解。新一代Turtlebot4标配版配置UI交互面板

【架高】Turtlebot4标配版做了高层支架设计

【基于ROS2.0系统】

Turtlebot4-JT第三版_08.png

Turtlebot4硬件整体架构拿人举例

【感知层】它的传感器类似我们的眼睛,耳朵……

规划层】主控制器和从控制器(树莓派4B)类似我们的大脑和心脏……

【控制层】那么它的底座类似我们的脚……


Turtlebot4-JT第三版_09.png

Turtlebot4-JT第三版_10.png

标红的部分就是Turtlebot4两款机器人的区别

主要是四点:

1、相机型号不同,标配版是OAK-D-PRO,Lite版用的是OAK-D-Lite

2、标配版配置UI板

3、标配版有架高层

4、标配版有蓝牙手柄

Turtlebot4-JT第三版_11.png

Turtlebot4-JT第三版_12.png

Turtlebot4-JT第三版_13.png

关于相机,感兴趣的各位亲可以在知乎:“OAK中国”获取更多信息

https://blog.csdn.net/oakchina/article/details/123901027#comments_21460719

Turtlebot4-JT第三版_14.png


Turtlebot4-JT第三版_15.png

Turtlebot4-JT第三版_16.pngTurtlebot4-JT第三版_17.png

Turtlebot4-JT第三版_18.pngTurtlebot4-JT第三版_19.pngTurtlebot4-JT第三版_20.pngTurtlebot4-JT第三版_21.pngTurtlebot4-JT第三版_22.png


ROS最早的设计目标就是开发这样一款PR2家庭服务机器人,这款机器人绝大部分时间都是独立工作,为了让他具备充足的能力:

1、它搭载了工作站级别的计算平台和各种先进的通信设备,不用担忧算力不够,有足够的实力支持各种复杂的实时运算和处理;
2、由于是单兵作战,通信绝大部分都自己内部完成,那就可以用有线连接,保证了良好的网络连接,没有丢数据或者黑客入侵的风险;
3、这台机器人最终虽然小批量生产,但是由于高昂的成本和售价,也只能用于学术研究。


Turtlebot4-JT第三版_23.png




  1. 【多机器人系统】:未来机器人一定不会是独立的个体,机器人和机器人之间也需要通信和协作,ROS2为多机器人系统的应用提供了标准方法和通信机制。
  2. 【跨平台】:机器人应用场景不同,使用的控制平台也会有很大差异,比如自动驾驶汽车中的算力性能肯定比AMR机器人强很多,为了让所有机器人都可以运行ROS2,ROS2可以跨平台运行于Linux、Windows、MacOS、RTOS,甚至是没有任何系统的微控制器(MCU)上,这样我们就不用纠结自己的控制器能不能用ROS了。
  3. 【实时性】:机器人运动控制和很多行为策略要求机器人具备实时性,比如机器人要可靠得在100ms内发现前方的行人,或者稳定的在1ms周期内完成运动学、动力学的解算,ROS2为类似这样的实时性需求提供了基本保障。
  4. 【网络连接】:无论在怎样的网络环境下,ROS2都可以尽量保障机器人大量数据的完整性和安全性,比如在wifi信号不好的时候数据也要尽力发送过去,在有黑客入侵风险的场景下要对数据进行加密解密。
  5. 【产品化】:,大量机器人已经走向我们的生活,未来还会越来越多,ROS2不仅可以用于机器人研发阶段,还可以直接搭载在产品中,走向消费市场,这对ROS2的稳定性、强壮性也提除了巨大挑战。
  6. 【项目管理】:机器人开发是一个复杂的系统工程,设计、开发、调试、测试、部署等全流程的项目管理工具和机制,也会在ROS2中体现,更方便我们去开发一款机器人。


要满足这些需求,ROS2的设计和开发工作并不简单,相对手机这样标准化的产品,Android系统也可以尽量做到标准化,但是机器人千差万别,如何能够适合尽量多的机器人,这可能远比开发一个手机系统或者电脑系统更加复杂。
ROS开发者面对的选择有两个,第一个是在ROS1的架构之上,进行修改和优化,类似一个盖好的房子,我们把它打成毛坯房,重新装修翻新一下,但肯定会受制于原本建筑的格局,长远来看并不是最佳选择,他们最终选择了第二种方案,那就是推倒重来

所以ROS2是一个全新的机器人操作系统,在借鉴ROS1成功经验的基础上,对系统架构和软件代码全部进行了重新设计和实现。与ROS1相比,体现在以下几点:


Turtlebot4-JT第三版_24.png

  • 系统架构进行了颠覆性的变化,ROS1中所有节点都需要在节点管理器ROS Master的管理下进行工作,一旦Master出现问题,系统就面临宕机的风险,ROS2实现了真正的分布式,不再有Master这个角色,借助一种全新的通信框架DDS,为所有节点的通信提供可靠保障。
  • 软件API进行了重新设计,ROS1原有的接口已经无法满足需求,ROS2结合C++最新标准和Python3语言特性,设计了更具通用性的API,虽然导致原有ROS1的代码无法直接在ROS2中运行,但是尽量保留了类似的使用方法,同时提供了大量移植的说明。
  • 编译系统进行了升级,ROS1中使用的rosbuild和catkin问题诸多,尤其是针对代码较多的大项目以及Python编写的项目,编译、链接经常会出错,ROS2对这些问题也进行了优化,重新优化后的编译系统叫做ament和colcon,大家在后续的课程中就会体验到新版编译器的使用方法。

Turtlebot4-JT第三版_25.png

在这张图中,左侧是ROS1,右侧是ROS2,大家注意看两者最明显的变化,那就是Master


  • 在ROS1中,应用层里Master这个节点管理器的角色至关重要,所有节点都得听它指挥,类似是一个公司的CEO,有且只有一个,如果这个CEO突然消失,公司肯定会成一团乱麻。ROS2把这个最不稳定的角色请走了,节点可以通过另外一套discovery——自发现机制,找到彼此,从而建立稳定的通信连接。


  • 中间层是ROS封装好的标准通信接口,我们写程序的时候,会频繁和这些通信接口打交道,比如发布一个图像的数据,接收一个雷达的信息,客户端库会再调用底层复杂的驱动和通信协议,让我们的开发变得更加简单明了。

  • 在ROS1中,ROS通信依赖底层的TCP和UDP协议,而在ROS2中,通信协议更换成了更加复杂但也更加完善的DDS系统

  • 如果是在进程内需要进行大量数据的通信,ROS1和ROS2都提供了基于共享内存的通信方法,只不过名字不太一样而已。


  • 最下边是系统层,也就是可以将ROS安装在哪些操作系统上,ROS1主要安装在Linux上,ROS2的可选项就很多了,Linux、windows、MacOS、RTOS都可以。

  • Turtlebot4-LYS0712_28.png

Turtlebot4-JT第三版_26.png

Turtlebot4-JT第三版_27.png

Turtlebot4-JT第三版_28.png

Turtlebot4-JT第三版_29.png

Turtlebot4-JT第三版_30.png

Turtlebot4-JT第三版_31.png

Turtlebot4-JT第三版_32.png

Turtlebot4-JT第三版_33.png

Turtlebot4-JT第三版_34.png

Turtlebot4-JT第三版_35.png

Turtlebot4-LYS0712_39.png

Turtlebot4-LYS0712_40.png

Turtlebot4-JT第三版_36.png

Turtlebot4-JT第三版_37.png

Turtlebot4-JT第三版_38.png

Turtlebot4-JT第三版_39.png

点击图片“提问时间”获得Turtlebot4最新报价

Donghu Robot Laboratory, 2nd Floor, Baogu Innovation and Entrepreneurship Center,Wuhan City,Hubei Province,China
Tel:027-87522899,027-87522877

合作与咨询

渠道商务合作:18062020215

售前技术咨询:13807184032

售后服务热线:18062020228

网站备案号:鄂ICP备17004685号-1 | 技术支持 | 联系我们 | 服务条款与隐私权 | 网站地图