小鱼:移动机器人建图导航仿真做完了,如何移植到真实机器人上?

您所在的位置:网站首页 灯笼鱼实物图片真实 小鱼:移动机器人建图导航仿真做完了,如何移植到真实机器人上?

小鱼:移动机器人建图导航仿真做完了,如何移植到真实机器人上?

2024-06-15 18:50| 来源: 网络整理| 查看: 265

大家好,我是小鱼。最近来问小鱼问题的同学越来越多了,实在是回答不过来,大家尽量先在我们的鱼群里将问题完整的描述出来,和群友们互相交流问题。

今天说一个很多同学遇到的,也是一位鱼粉问了小鱼很久的问题,所以来说一说,已经完成建图和导航的仿真,接着如何在真实机器人上做建图和导航。

一、搞清楚数据流图

在开始动手在真实机器人上做导航之前,我们要搞清楚整个建图导航的数据流图,也就是建图和导航功能包的输入和输出。

1.1 首先是建图

建图算法有很多种,这里小鱼拿比较常见的gmapping功能包来说。 整体数据流图如下图。

/cmd_vel底盘控制 输出 输出 输入 输入 输入 输出 输入 输出 输出 键盘控制节点 Gazebo 雷达扫描数据Scan 里程计odom odom坐标系下机器人的位置tf gampping base_link->odom和base_link->scan map栅格地图等数据 map坐标系和odomtf

我们观察一下图中gazebo的作用,输入cmd_vel用于控输gazebo中的小车,输出里程计odom、雷达数据scan和小车link之间的关系。

1.2 导航功能包

导航我们一般使用amcl进行定位,move_base进行规划避障。 我们看一下整个导航导航的数据流图,如果我们将整体分为导航和gazebo两个部分。

输出 输出 输出 /cmd_vel 输入 输入 输入 输出 输入 Gazebo 雷达扫描数据Scan 里程计odom 导航定位算法 机器人link之间关系 地图

跟上面的建图时有所不同,我们不需要键盘控制机器人了,而且我们需要建好的地图(通过map_server)作为输入给到导航定位模块。

二、将gazebo替换成你的真实机器人 2.1 真实机器人的建图

假如我们是在真实机器人上进行的建图,就要把gazebo去掉,把gazebo的原本的输出让真实机器人来输出,对gazbeo的输出cmd_vel也变成对真实机器人的输入。 真实机器人建图数据流程图如下:

/cmd_vel底盘控制 输出 输出 输入 输入 输入 输出 输入 输出 输出 键盘控制节点 真实机器人上 雷达扫描数据Scan 里程计odom odom坐标系下机器人的位置tf gampping urdf文件 base_link->odom和base_link->scan map栅格地图等数据 map坐标系和odomtf

这个流程看起来就很清晰了,将gazebo换成真实的机器人就行,等下我们再说说一般真实机器人是如何接收cmd_vel控制信息的,又是如何发布odom和scan话题的。

2.2 真实机器人的导航

这个和刚刚的建图如法炮制,直接上图

输出 输出 输入 输入 输入 输入 输出 输出 /cmd_vel 真实机器人 雷达扫描数据Scan 里程计odom 导航定位算法 机器人link之间关系 地图文件 urdf

总结一下可以发现,只要把现在仿真的机器人gazebo干掉,将urdf的link关系改成真实机器人的link关系。然后将真实机器人的数据发布出来,再订阅一个话题cmd_vel话题给真实机器人即可。

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

这一点做过嵌入式和上位机的同学很清楚(小鱼高中时玩过一段时间单片机,后面大学也搞了下rtos之类的),但是做软件的同学可能就不知道怎么做了,小鱼这里多说两句。

从上面的流程图可以看出来,我们需要真实机器人提供的是里程计信息和雷达信息。

3.1 里程计获取与控制指令的发布

里程计信息获取一般是如下结构。

PWM等 编码器 里程计 输出 控制指令cmd_vel 嵌入式板子stm32等 电机驱动板 电机 base_control节点 里程计odom

这个方法其实也有很多,比如走can、串口都是可以。如果你是买的底盘,厂家会提供好通信的接口和线,都是可以直接用的。

我们一般会在ROS端编写一个base_control节点,这个节点具备和嵌入式通信的能力。

3.2雷达信息

雷达信息直接使用厂家的雷达驱动即可拿到对应话题数据。

输出 雷达 雷达驱动节点 雷达扫描数据Scan 四、总结

今天小鱼算是把整个结构图都画了出来,导航部分没有展开来说,大家可以使用rqt_graph查看计算图。 如果还有不明白的地方,欢迎关注公众号《鱼香ROS》加入鱼群一起交流。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3