在机器人中执行完的仿真怎么移植到真实机器人上?

最近在鱼香ROS上看了一篇文章,在自己的号上记录一下用以保存。

一、搞清楚数据流图

1.1建图
以常见的功能包来说,一般都可以在运行的时候生成对应的话题输入与输出,cmd_vel用于控制gazebo中的小车,输出里程计odom、雷达数据scan和小车link之间的关系给mapping用于建图。
1.2导航
导航一般用amcl进行定位,move_base进行规划避障。跟上述建图时有所不同,我们不需要键盘控制机器人了,而且我们需要建好的地图(通过map_server)作为输入给导航定位模块。
导航模块会输出对机器人的控制指令话题cmd_vel来控制机器人运动,gazebo首到该话题数据后,将其作用到机器人上,完成运动。

二、将gazebo替换成真实的机器人

2.1真实的机器人建图
去掉gazebo,把gazebo原本的输出让真实机器人来输出,对gazebo的输入cmd_vel也变成对真实机器人的输入。
2.2真实机器人的导航
在机器人中执行完的仿真怎么移植到真实机器人上?_第1张图片把仿真机器人的gazebo去掉,将urdf的link关系改成真实机器人的link关系,然后将真实机器人的数据发布出来,再订阅一个话题cmd_vel话题给真实的机器人即可。

连接真实机器人和建图导航定位程序

从上面流程图可以看出,我们需要真实机器人提供的是里程计信息和雷达信息。
3.1里程计获取与控制指令的发布
在机器人中执行完的仿真怎么移植到真实机器人上?_第2张图片一般在ROS端编写一个base_control节点,这个节点具备和嵌入式通信的能力。
3.2雷达信息
一般直接使用厂家的雷达驱动,即可拿到对应话题数据。
3.3tf信息
一般将urdf修改成与真实机器人想同的模型,使其link形状和位姿关系具备和真实机器人相同的参数。雷达和机器人的坐标关系就可以从urdf中获取

**tips:**在ROS中一般使用rqt_graph查看计算图。

你可能感兴趣的:(自动驾驶,人工智能,机器学习)