机器人齿轮传动课程大赛电机的转速和差速

  摘要:在四轮差速机器人自主运行的过程中,为了更好的完成任务要求,需要加入一个实时的检测,当机器人遇到障碍物时根据需要对路径进行调整,以避开障碍物,所以这就需要加入局部路径规划的算法。Time-Elastic-Band(TEB)算法所规划的局部路径在规避障碍物时不能完全符合机器人的运动状态,因此需对原算法进行优化,并基于ROS平台对优化后的算法进行仿真测试,最终得到符合机器人实际运动状态的局部路径。

  关键词:四轮差速机器人;局部路径规划;优化TEB算法;ROS

}

玩是孩子的天性,对于“玩”孩子总是表现出浓厚的兴趣。兴趣是一切学习的最初动力,有了兴趣,孩子就能主动地、愉快地去学、去问、去探索。“玩”与“学”有机结合,将“玩”有机注入“学”中,对于综合实践活动尤其重要!本产品由孩子自己“边造边玩”培养孩子的创客精神,让孩子们在玩中学,学中创作! 

机器人综合了多门学科知识,主要由包括数学、物理、化学、结构、建筑、地理、生物、能源、信息技术等在内的多项技能。学习机器人可以培养孩子的各种能力,包括动手、想象、创造、观察、分析、判断、归纳、理解、决策、组织、实验、计划性、条理性等。如果孩子正为这些纷繁的学科感到束手无策时,机器人技术也能让他们换个角度掌握这些知识。最重要的一点,机器人技术要比传统的基本学科的内容要丰富,而且可以将各种学科有机的结合起来。

本产品设计巧妙形态独特,以进口奥松木板为原材料,由激光切割而成。结构上充分利用鲁班的智慧,实现少用螺丝,为用户简化装配过程。 安装完成,装上电池这个“配重块”之后,充分利用了不倒翁的平衡原理,通过强劲有力的电机来改变重心,实现风火轮的运动。切割的大轮毂把轮式的敏捷的机动性表现的淋漓尽致,并且运动机制新颖有趣,呈现的运动形态也诙谐、逗趣。孩子在自行组装来复活风火轮机器人的过程中,对机械、电子等原理有更深入认识和学习,本产品可通过DFRobot出品的GOBLE手机APP实现控制。

1、 本品适用于8岁及以上年龄儿童和青少年,6岁以下儿童请在家长陪同下完成

2、 电池接线需再三确认,请勿接反,否则会烧坏控制板

3、 当前APP只支持iOS客户端,Android客户端正在开发中!

支持手机APP控制(iOS)

传输距离:空旷地带30m以内

驱动方式:两轮差速驱动

小车行驶速度:1m/s

}

这里我主要画一下重要的知识点(以黑体描述):

 本教程将具体涉及如下问题:

    系列(1):move_base发出的控制指令是什么?该如何转化为移动机器人左右轮的速度。

    系列(2):移动机器人的左右轮的编码器信息如何转化为ROS的/odom;

    关于机器人导航与定位的系统架构,这里按照自己的理解以及开发经验给出三个层次。

  最底层:机器人本身的电机驱动部分,该部分通过串口接收电脑端输出的左右轮期望速度对左右轮分别进行PID控速。同时,定时采样电机码盘值并转化为左右轮速度值通过串口上传给电脑当然PID控速这一部分也可以放到电脑ROS端,这样的话,电脑串口输出的是直接的PWM值而不是之前的期望速度了

   中间通信层电脑端和底层电机的控制通信以及将传感器信息发布给ROS的通信。这一层主要通过串口(ROS已经集成了pyserial 用python操作这个模块进行串口控制)收集左右轮速度值,用航迹推演法将左右轮速度转化为机器人的x轴方向速度和机器人的旋转速度,然后发布/odom主题,好让ROS的相应package收到这个消息,进行机器人位置的估计。同时,这一部分还要关注ROS相应部分发出的机器人控制指令,转化为左右轮的期望速度,再通过串口传给DSP。这一层是自己写程序完成。

   决策层:就是与导航有关的了,建立地图和定位,然后用move_base根据你发布的传感器信息做出路径规划以及机器人的速度和转向控制。这一部分为ROS相应的package已经完成,我们只需要调用即可。

   在这个系列里,我们只关注如何用 move_base package 做出的控制对机器人进行实际控制。文章接下来的部分将按照从上到下的顺序,一个问题接一个问题的来介绍如何使用move_base控制实际机器人。

这里贴出我定义的消息的内容:

上面程序发布的/car_speed topic就包含了车子的linear.x和angular.z,运行这个节点以后,我们可以使用rostopic指令来监控这个主题发布的频率:

看主题发布的频率是否和期待的一致。

现在已经将左右轮速度转化为x轴速度和旋转速度了,下面贴出我改进的官网教程代码,教大家如何发布Odom信息和odom与base_link之间的tf转换关系。官网教程里的vx,vy,vth为常数,我们这里先订阅自己上段程序发布的car_speed主题,也就是订阅机器人实时的前进速度x和旋转速度。把官网程序由常数改为机器人实际速度就行了。下面程序为C++写的,在beginner_tutorials/src文件夹下创建空白文档,命名为your_filename.cpp,把下列代码复制进去:

  这段程序首先订阅car_speed这个主题,一旦收到机器人的x轴速度和转向速度,就调用callback去发布消息,让move_base可以订阅到。

最后还要为了使得你的C++程序能够运行,在CMakeLists.txt中最后或者相应位置,还要添加上如下指令:

完成这些以后,编译一下你的catkin_ws工作空间,在新终端中输入如下指令:

现在,有了这两个节点程序,dsp到move_base和move_base到dsp这条路通了,只要建立地图,发布坐标转换就可以用了。在下一篇文章中,我们将介绍几个与导航有关的 tf 坐标转换,再在一个空白地图上使用move_base进行导航。

你在文件系统里搜索diff_controller这个文件,打开它就可看到相应的转换程序,楼主和他们的其实相差无几。

}

我要回帖

更多关于 机器人齿轮传动课程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信