ROS2机器人笔记20-08-18

时间:2022-07-23
本文章向大家介绍ROS2机器人笔记20-08-18,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

仿真的小贴纸

如何用图形化界面而非代码在仿真环境中配置机器人模型?模型通常为刚体,弹性物体或者柔性物体仿真十分消耗资源!

建立urdf模型的最简单方法是在专用的CAD软件中建立模型,然后将其导入。使用如下教程即可:

如果不采用这种方式,使用xacro构建urdf,SDF如何???(URDF不支持封闭运动链,而SDF支持???)

在Gazebo中建立世界并不是那么困难。只需打开Gazebo,然后导入模型并将其放置在所需的位置,然后生成.world文件。

一般而言,只能使用传感器插件,而无法自定义虚拟传感器!仿真传感器和真实传感器的差异性也会体现在算法参数上。

紫外线消毒机器人

COVID-19大流行引起了人们对紫外线消毒的新兴趣。自1960年代以来,医院一直使用UV-C光,尤其是254nm范围内的UV-C对病人出院后的房间进行消毒。UV-C已显示出对多种病原体有效的功效。中和不同病原体所需的辐照度差异很大,细菌,尤其是像C.diff之类的“超级细菌”,需要最多的能量和时间。幸运的是,像流感和SARS-CoV-2这样的单链病毒所需的功率相对较小(减少2个对数,即杀灭率达到99%时约为6mJ /cm²)。

为了有效地消毒室内空间,例如酒店房间,仓库和学校,必须在空间中四处移动光源。这对于有效性和效率是必要的:避免阴影,并且因为光的强度随距离呈二次方降低。然而,由于UV-C光对人体有害,所以不可能有人将光源推动或携带穿过空间。这就是产生让机器人执行此任务的想法。

DDS

ROS1和ROS2之间的最大区别之一是基于插件的体系结构替换了单个中间件(roscore)。这使ROS2可以使用各种中间件(RMW)实现。目前,所有这些RMW实现都基于DDS。可以在ROS2设计文档中阅读所有有关详细信息 。

随着时间的流逝,支持RMW实现发生了变化,并引入了新的方案。当前是默认值FastRTPS(重命名为FastDDS,在Foxy发布之后)。最新的选项是CycloneDDS使用 Eclipse Cyclone DDS。Cyclone DDS最近获得了很多好评 。

RMW实现 由于ROS2仍处于积极开发中,因此在RMW实现之间进行选择仍然是一个挑战。FastDDS服务发现有一些问题。CycloneDDS才不到两年的历史,仍处于非常活跃的开发中,并且没有完整的功能,但具有很高的性能。 幸运的是,通过简单地设置RMW_IMPLEMENTATION环境变量,在RMW实现之间进行切换非常容易。 在实现之间切换时,请确保服务停止: ros2 daemon stop 调试问题 尽管FastDDS几乎是开箱即用的,但整个服务问题都困扰着设置/获取参数将RMW_IMPLEMENTATION设置为 rmw_cyclonedds_cpp。注意到服务发现并没有更好。然后我注意到在机器人上设置了RMW_IMPLEMTATION-拼写错误。现在一切都应该一切正常! 错误 在机器人上,发现效果很好,服务也很出色-但是笔记本电脑看不到一半或更多的节点。重新启动启动文件导致经常丢失不同的节点! 开始调试并发现了ddsperf工具。如果在MacOSX上使用ROS2,则需要阅读有关如何安装ddsperf的问题。 多个网络接口 配置指南指出,网络适配器的选择更喜欢非链接本地接口,但是显然在检测到以这种方式配置以太网接口时,某些事情使它陷入了困境。 解决方法是NetworkInterfaceAddress在 CYCLONEDDS_URI环境变量中设置一个: export CYCLONEDDS_URI='<CycloneDDS><Domain><General><NetworkInterfaceAddress>wlp2s0</NetworkInterfaceAddress></General></Domain></CycloneDDS>' 如果容易出现拼写错误,并且想要确保实际上正在运行预期的RMW接口,建议使用以下命令: ros2 doctor --report | grep middleware 几秒钟后,应该看到: middleware name    : rmw_cyclonedds_cpp 实际上在bashrc中设置了一个别名,以便which_rmw运行该命令。确定使用Cyclone DDS作为新的默认值后,还将RMW_IMPLEMENTATION和CYCLONEDDS_URI 设置添加到了机器人的bashrc中。 在解决配置问题后,CycloneDDS似乎是尝试过的少数RMW实现中最稳定的。实际上还没有对性能进行过正面测试。

在MacOSX上的ROS2

Blender FreeCAD Gazebo SDF URDF

双四元数

ros-$ROSDISTRO-dual-quaternions-ros



~~