ROS2Go与Ubuntu+ROS+Gazebo等版本对应关系

目前,发行的ROS2Go主要有1.0和2.0,3.0已经开始测试研发中。

  Ubuntu ROS 1.0 ROS 2.0 Gazebo
ROS2Go 1.0 16.04 LTS Kinetic LTS Ardent 7.+
ROS2Go 2.0 18.04 LTS Melodic LTS Dashing LTS 9.+
ROS2Go 3.0 20.04 LTS Noetic LTS Foxy LTS 11.+

目前,系统驱动和仿真软件Gazebo11,已经测试完成,等待ROS1.0和ROS2.0新版发布即可开启预装和测试。

课程全部基于新版开发,旧版所有课程全部停止维护。

ROS2Go与Ubuntu+ROS+Gazebo等版本对应关系
PC 1
ROS2Go与Ubuntu+ROS+Gazebo等版本对应关系
PC 2

然后,为了使用中文,安装了汉语言支持:

ROS2Go与Ubuntu+ROS+Gazebo等版本对应关系
PC 3

镜像通常即插即用,无需配置,启动界面如下:

ROS2Go与Ubuntu+ROS+Gazebo等版本对应关系
Microsoft
ROS2Go与Ubuntu+ROS+Gazebo等版本对应关系
Lenovo

 重要工具Navigation2和MoveIt2:

在工业开源应用中使用MoveIt2

  • 来自ROS工业公司

被称为MoveIt的ROS运动规划框架已经成功地应用于许多工业和研究领域,在这些领域中,需要复杂的无碰撞机器人运动来完成操作任务。最近几个月来,MoveIt在移植到ROS2中花费了大量的精力,因此,新的MoveIt2框架已经提供了许多在其前身中可用的核心特性和功能。虽然一些非常有用的设置工具仍在进行中(主要是MoveIt设置助手),但我能够将MoveIt2集成到协作机器人打磨应用(CRS)中,以便规划轨迹,然后在Gazebo模拟UR10机器人手臂上执行。

我的ROS2设置包括按照github中的描述从源码中建立MoveIt2仓库,然后在现有的CRS应用程序工作区之上叠加colcon工作区。我还建立并运行了一个简单的演示,它一开始就能正常工作,对我了解如何将MoveIt2集成到我自己的应用程序中非常有帮助。

C++集成非常直接,只需要使用两个新的类,MoveItCpp和PlanningComponent。在这个架构中,MoveItCpp用于加载机器人模型,从ROS2参数中配置规划管道,并初始化默认值;然后是PlanningComponent类,它与规划组相关联,用于设置运动规划请求,并调用低级规划器。此外,PlanningComponent类有一个类似于MoveIt中熟悉的MoveGroupInterface类的接口;但是这里的一个大的变化是,PlanningComponent类中的方法不仅仅是对moving_group节点提供的各种服务和动作的封装,而是直接对各种运动计划功能进行函数调用。我认为这是一个值得欢迎的改变,因为这种架构将允许在飞行中创建MoveIt2规划配置,可以适应应用中可能出现的各种规划情况。

另一方面,启动/yaml集成并不像许多ROS2的概念那样干净,对我来说还是比较新的概念。为了正确配置MoveIt2,需要将URDF文件以及驻留在多个yaml文件中的一些参数加载到MoveIt2应用程序中。幸运的是,大多数由MoveIt设置助手从原始MoveIt中生成的yaml文件只需稍作修改就可以使用,所以我在ROS1中运行设置助手并生成了所需的配置文件。此外,用python组装ROS2启动文件的能力在这里真的派上了用场,因为它允许我从YAML文件中实例化一个python字典,并将其元素作为参数传递给我的ROS2应用程序。除了学习MoveIt2之外,通过这个练习,我还看到了如何在不同的应用程序中重用同一个yaml文件来初始化参数,我认为这是ROS2中没有的功能。

我对MoveIt2的总体印象是非常积极的,我觉得架构上的变化对现有的MoveIt开发者来说并没有任何的破坏性,而且它还会带来新的有趣的框架使用方式;我很期待其他非常有用的MoveIt组件的移植。集成MoveIt2的项目分支可以在这里找到,下面是我在这里做的一个规划的短片。在这个应用中,机器人需要将摄像头移动到三个扫描位置,因此MoveIt2被用来规划到这些位置的无碰撞运动。


 

上一篇:Logisim 打不开的解决方案(Windows10)


下一篇:ELK入门