我是靠谱客的博主 悲凉钢笔,最近开发中收集的这篇文章主要介绍四轮 控制算法 麦轮_基于ROS的麦克纳姆轮移动机器人关键技术总结&闲谈,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 硬件组成和软件框架

1.1 硬件结构

运动底座采用四个麦克纳姆轮的全向结构,两个SICK激光雷达分别安装在机器人对角的位置(图1中的机器人左下黄色那一部分是其中一个,另外一个在后面没拍到),一台2U服务器(图1好像看不到,反正这种抽拉式的服务器比较方便安装在车体上),两块12v50AH的电池,一个逆变器,一块STM32主控制板,四个驱动器,四个直流有刷电机。(机械臂是UR5目前还在整合工作阶段,暂不纳入这篇文章的介绍部分)

吐槽一下搞机器人是真的难,软硬兼备才算合格。这里不去具体说驱动器、电机选型、机械结构的设计这些问题,注意一下驱动器功率,电机扭矩,机器人整个负载是多少估计一下(避免发生电机带不动整个机器人的这种情况)。图1 实物图图2 solidworks三维图(对角两个圆柱体是sicks300激光雷达,偷懒没去认真按照实际雷达建模,不好意思)

1.2 ROS下软件架构

进入实验室后,受到师兄前辈的影响还是挺大的,他们的观点就是要做好一个事情,先把大的框架想清楚,罗列清楚需要什么东西,达到什么目的等等(甲方思维,需求出发)。有了这个框架,实施的时候按照“缺什么,补什么;少什么,添什么;没有条件,创造条件”的原则落实就可以了。框架的设计不用一步到位,细节都是慢慢做的时候去补充。我明确要做2D激光SLAM,就要知道ROS底下哪些模块是我需要的,这些模块实现了什么功能。ROS的一大特点就是它的低耦合性,简单地说就是你可以拿别的东西替代其中一些模块。比如说图3中前后两个激光点云数据是两个SICK分别提供的,但是如果不是用两个SICK激光雷达而是用Hokuyo等其他雷达怎么办?或者只有一个激光雷达?那仅需要把图3中的前后激光融合节点换成你的雷达点云节点就可以,我们的目的是需要雷达的点云数据,不管是一个雷达还是两个雷达,你只要把雷达的数据提供给建图和定位的节点就行。

ROS具有开源的优势,提供很多Package给我使用,没有时间去了解每个包的具体算法可以直接现在roswiki和github下看它具体实现实现什么工作,它的输入输出分别是什么。比如查看slam_gmapping包,会发现它实现的是一个建图工作,它的输入是激光点云数据和里程计信息,输出是栅格地图,按照这个思路完成软件架构。图3 ROS下软件框架图

2 实现的一些细节

1、直流有刷电机的底层驱动:底层运动控制是用STM32板控制的,其与驱动器通信实现间接控制电机。具体45°的麦轮正逆解算法的资料网上也很丰富。

2、ROS与STM32的通信:图3中/chassisdriver是本方案实现ROS与STM32通信的节点,其主要实现底层驱动下发及底层数据的接收(里程计数据),具体就是/move_base的速度消息,也就是/cmd_vel数据通过这个节点传输给STM32板,最终实现麦轮的运动控制;电机的编码器数据通过驱动器反馈给STM32板,最终也是通过这个节点输入给ROS上位机的,也就是/odom数据。这一部分网上参考也有一些,结合自己使用的32板有的通信协议去写,特别注意波特率一致否则数据是会出问题的。

3、自制的机器人在ROS下URDF建模:利用solidworks下有一个叫“sw_urdf_exporter”的插件建模,添加各部分关键的旋转轴以及坐标中心。注意在雷达部分对两个雷达坐标的分别命名,与启动雷达节点中的坐标要对应上,这也体现了ROS中TF的重要性,每一个坐标变换都要注意,base_link的坐标位置等等(这都会对你的避障导航路径产生影响)。试想一下 如果你前后雷达的坐标系搞反了还能建出正确的地图吗?

3 闲谈

做激光SLAM到现在,翻看一些国内外的论文会发现有很多问题在心里懵懵懂懂的,贝叶斯滤波?卡尔曼滤波?扩展卡尔曼滤波?波束模型?似然域模型?马尔可夫定位?占据栅格定位?蒙特卡洛定位?这里推荐一本书可以参考《概率机器人》你会发现这些问题的答案都在这本书里,当然能啃起来还是有点费劲,里面各种假设反正就是有点秃然,头很冷。不过激光SLAM似乎也到了瓶颈了,大家更多的好像都奔赴到视觉SLAM当中,这几年相机的低成本优势促使视觉SLAM的快速发展,不管你做视觉还是激光,其中有些东西是互通的,共勉之。

4 结束的广告

以上是本人目前硕士期间的项目经历中提炼出来的一些关键技术总结,如有不足,还请多多包含。这里给自己实验室打打广告,本人就读广州华南理工大学机械与汽车工程学院,实验室零几年开始做AGV的开发,目前已成功开发磁导式的AGV已投入商用,其中包括主控制器、驱动器、磁导传感器PCB、上位机调度程序的开发。另外,还在做图像处理,机器人移动抓取搬运等相关研究,实验室硬件器材齐全,欢迎各位有兴趣的同学可以私聊我加入到实验室一起学习一起进步!

最后

以上就是悲凉钢笔为你收集整理的四轮 控制算法 麦轮_基于ROS的麦克纳姆轮移动机器人关键技术总结&闲谈的全部内容,希望文章能够帮你解决四轮 控制算法 麦轮_基于ROS的麦克纳姆轮移动机器人关键技术总结&闲谈所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部