Hexapod 六足机器人程序是如何组成的

对机器人自身运动能力的把握是進行合理运动规划和控制的前提.针对面向崎岖地形应用的六足机器人程序的运动能力进行分析.首先介绍了六足机器人程序平台及其系统設计;然后,分别对六足机器人程序腿部、由机器人躯干和各支撑腿构成的并联机构进行了运动学建模并分析了它们的工作空间;最后,基於Adams和Matlab建立了含有梅花桩崎岖地形的六足机器人程序仿真平台并进行了六足机器人程序运动仿真.结果表明:通过结合六足机器人程序自身运動能力和地形特征进行合理的运动规划,可有效提高六足机器人程序在崎岖地形下的运动能力.

陈杰 梁忠超, 刘冲 赵杰. 面向崎岖地形的陸足机器人程序运动能力分析[J]. 东北大学学报:自然科学版, ): 819-824.

房立金,陶广宏. [J]. 东北大学学报:自然科学版, ): .
孟祥志;伍懿;刘志峰;蔡光起. [J]. 东北大学学报(自嘫科学版), ): .
胡明;原所先;蔡光起. [J]. 东北大学学报(自然科学版), ): .
李兴山;孙奕澎;冯宝富;蔡光起. [J]. 东北大学学报:自然科学版, ): .
}

这个小型六足机器人程序是我在夶四做的是我大学本科生涯的最后一个个人项目。至于为什么我要做六足机器人程序还要从高考完之后说起:当时刚考完的我一直想莋一些有意思的事情,直到有一天我发现了一个叫的网站里面记录了很多如何使用PVC材料来制作简单机器人的教程,其中有一款叫做PVC六足機器昆虫(见下图)的机器人彻底震撼了我当时看完教程之后我就下定决心也要做一个类似的六足机器人程序,于是我便从前辈那里购買了六足机器人程序套件(目前应该已经绝版了)并打算按照提供的教程完成自己的六足机器人程序,但无奈当时的我所掌握的知识太尐什么单片机、串口通信、舵机PWM、电源管理、传感器、舵机控制板等都不懂,特别是机械结构方面我更是一窍不通所以大一那会儿我還闹出了笑话:用硬纸板做六足机器人程序的肢体,在安装好舵机并通电测试后眼睁睁地看着自己的“纸板六足”在舵机的震动下不断哋解体。。

经过大一那次失败之后我决定暂时停止该项目的开发,转而先去学习那些有关嵌入式开发的基础知识等以后有能力的时候再去独立完成这个六足机器人程序。很幸运的是在我大学本科即将结束的时候我已掌握了足够的知识来完成那个曾经困扰我已久的机器人项目,于是我花了几周的时间完成了这个小型六足机器人程序算是了却了自己的一个心愿吧。

小型六足仿生机器人是一个拥有十八個关节自由度的迷你多足机器人它可以实现红外遥控、超声波避障等基本功能。机器人的硬件核心为Arduino Nano并采用串口通信的方式与24路舵机控制板进行数据交互,从而间接完成对所有舵机旋转角度的精确控制最终使机器人能够以各种不同的步态进行移动。当然这个机器人項目的软件依旧开源,具体代码可以从我的GitHub上获得

六足机器人程序的整个制作过程主要分为机械和电子两部分,其中机械部分我是根据懶猫侠在其博客上发布的教程来完成所有拼装的由于教程中每一步的图片都非常清楚,所以机械这部分没花费我太多的时间和精力而電子部分则全部是我自己设计的,虽然原理难度不大但是要根据机器人的机械结构来选择洞洞板的摆放位置并且要完成其上电子元件的咘局和焊接工作确实也比较费功夫,而且有的时候如果处理的不好还要返工不过所幸自己在焊电路前就已经规划好了,所以电路部分的淛作也还算顺利

在接下来的篇幅中,我会尽可能详细地讲解机器人制作过程中的一些具体步骤和细节如果你对机器人的原理和最后的效果更感兴趣的话,可以跳过本小节直接阅读原理效果章节

如下图所示,六足的小腿部分主要由两片PVC材质的肢体通过叠加而成而关節部分则使用的是9G金属齿舵机,只要两个自攻螺丝便可将PVC肢体牢牢固定在舵机上从而保证六足小腿在与地面接触时可以有足够的力量来支撑整个躯体。

因为是六足机器人程序所以同样结构的小腿要再做五个出来。注意:机器人的躯体每边有三个小腿左右两两对称,所鉯在组装的时候肢体和舵机安装的位置是有讲究的要保证结构对称且不能装反

六足大腿的关节结构比之前介绍过的小腿关节要略微复雜一些因为大腿的关节包含了机器人足体上下和前后两个维度的运动,所以需要两个舵机来实现如下图所示,首先我们使用螺丝将一個舵机固定在方形的关节肢体里

接着我们要重复以上的安装步骤再制作出六个类似的肢体结构。不过在制作的过程中也要注意机器人左祐两侧各三个肢体结构要保持对称

然后我们需要将六个舵机分别插入到之前预留好的肢体空槽里,并保证每组的两个舵机在位置上是互楿垂直的即下图中舵机圆形旋转轴的朝向要一前一上。

接下来安装六足大腿关节的固定片即将固定片卡到下图中正面那个舵机的圆形旋转轴上。固定片顾名思义是用来固定的,用在这里主要是防止关节处的两个舵机因足体的震动而彼此之间出现位置上的偏移

最后分別使用两条塑料扎带对每组关节进行进一步的加固,其中一条从固定片上方穿过起到束紧固定片的作用,而另一条则穿过关节侧面的小孔对结构进行固定

六足的大腿是由两个PVC材质的长方形连杆组成,从下图中可以很清楚地看到每个连杆的左右两侧均安装有配套的舵盘咜们的作用主要是用于连接六足的小腿关节和大腿关节。

如下图所示使用螺丝将之前已经制作好的六对小腿和大腿肢体对应连接在一起。虽然拧螺丝本身没什么难度但是在哪个位置用螺丝来固定舵机还是有规定的:即舵机在被肢体连接固定之前要让其旋转轴回归到原始嘚中点位置上(旋转范围为0~180°的舵机,其中点位置为90°),这样做的目的是让所有的舵机都能够拥有最合适的运动范围从而防止机器人茬移动时出现足体运动不对称的情况。至于如何让舵机回归中点一种办法是使用现成的舵机调试板,只要移动旋钮便可调节舵机的位置;另一种是编写Arduino程序让舵机在上电后自动归中。我用的是第二种方法感觉效果还不错。

接下来我们要把六足的足体全部安装到其顶蔀躯体上。同理在安装前要确保需要连接固定的舵机已经回归到中点位置,除此之外还要提前规定好躯体的哪一侧是机器人的头部哪┅端是机器人的尾部,不要在安装的时候把足体装反了

如图所示,我们首先可以找一个稍微有点高度的物品将机器人顶部垫高然后使鼡扎带依次将每个足体的三条舵机线捆绑起来,这样不仅看上去更加美观便于之后的整理和连线,而且也可以有效阻止舵机线与运动中嘚足体发生缠绕甚至被扯断等情况的出现毕竟自己大学在机器人基地的时候就曾亲身经历过电机线在机械臂移动的过程中被狠狠地扯断嘚悲剧。。

最后我们只需要把锂电池用扎带固定在底部躯体的尾部,然后将供电线和充电线分别引出再把所有已经扎好的舵机线按照顺序塞到躯体当中,并用螺丝将顶部和底部两个躯体拧紧合二为一便大功告成了(由于这部分没有拍照所以就用文字叙述了orz)。

下图昰机器人的电源管理模块电源管理模块主要包含电源、降压电路和控制电路等,具体的原理部分请看下面原理中的电源管理章节

下图昰电源管理模块的背面。为了让焊接后的电路保持整齐、美观我尽可能采用锡接走线的方式来完成各元件的电气连接,而没办法走线的哋方才使用传统的飞线进行连接尽管锡接走线的优点很明显,但是它的缺点也比较突出:一个是浪费焊锡另一个就是容易短路,其中短路问题对机器人的影响还是挺严重的我记得自己之前就有一次不小心把已经上电的电源管理模块随意放在六足机器人程序的顶部躯体仩,令我没想到的是固定躯体的螺丝的头部正好卡在电路背面电源正负极锡接走线的中间结果可想而知。。

所以在上电测试之前,夶家要先用万能表对焊接过的电路进行短路测试一定要确保没有多余的焊锡渣残留在电路板上,而且对于使用锡接走线方式焊接的电路板一定不要让其背面直接与潜在具有导电功能的介质进行接触,可以适当地使用铜柱将板子架高或者用热熔胶把板子背面全都覆盖住鉯防止短路问题的发生。

在确保电路不存在任何可能潜在的短路问题后可像下图所示的那样,对电路模块进行上电测试测试主要检测電源降压是否达到预期设定的数值,开关的通断逻辑是否正确等

下图是机器人的控制单元模块。该控制单元模块主要由Arduino Nano控制板、HMC58883L电子罗盤传感器、MPU6050惯性测量传感器(图中的底座上未插入)、HC-SR04超声波传感器和红外接收管等组成为了方便在模块出现问题时能够对其进行更换,我在洞洞板上焊接了一些棑母底座这样模块就可以直接插在棑母底座上,拆卸很方便此外,有关电路原理部分的详细介绍可以阅读丅面的原理章节

下图是控制单元模块的背面。跟上面已经介绍过的电源管理模块一样我使用的依然是锡接走线+飞线的方式对元件进行焊接,由于电气连接比较多所以焊完之后要对电路进行更加全面和仔细的检查。

如下图所示由于我的Arduino Nano控制板的USB转串口在之前的寻光小車实验中因短路问题被烧坏了,所以我用的是专门为Arduino最小系统板烧写Bootloader的USBtinyISP编程器来下载程序经测试,所有模块均能正常工作那么接下来嘚工作就只剩下将机器人全部组装好,然后编写和调试代码了

以下是该小型仿生六足机器人程序的硬件系统连接图:

由上图可知,六足機器人程序的硬件系统主要由舵机控制、电源管理、核心主控、数据感知和数据通信共五部分组成接下来进行详细的介绍:

本项目六足機器人程序所配备的舵机具体型号为YZW Y09G,由于该舵机内部电机减速齿轮组使用金属材质打造所以其价格上要比常见的辉盛SG90塑料齿舵机贵一些,但是性能却相当出色该舵机标准输入电压范围为4.8v~6.0v(电压稍大于6v也没问题),扭矩范围在1.3kg/cm~1.6kg/cm之间经测试,十八个舵机共同作用的扭矩可以基本满足支撑机器人躯体以及锂电池等相关负载的需求当然,由于定位精度有限所以舵机会存在控制上的死区问题,我的解決办法主要是通过软件补差的方式来消除这个机械结构上的误差使机器人能够尽可能准确地到达预定的目标位置。

舵机控制板顾名思义僦是能够用于控制多个舵机的电路板由于传统通过编写程序让单片机输出多路PWM控制信号对于大部分的机器人爱好者来说比较复杂,所以僦有高手们将MCU和相关外围电路封装在一起开发了便于使用的舵机控制板此外,舵机控制板一般都会带有一个PC端的调试软件只要在建立串口通信的前提下拖动软件界面上的滑块,便能精确且实时地操控舵机的旋转角度而且还能将调试好的动作组合在一起形成动作组并下載到舵机控制板的芯片中进行保存,为之后核心主控通过串口对其进行调用奠定基础本项目六足机器人程序使用的是懒猫侠早期开发的┅款24路舵机控制板,具体使用方法见

电源管理应该算是机器人硬件控制系统里除了核心主控之外最重要的模块了,毕竟传感器坏了机器囚还能够四处移动但是电源部分坏了的话机器人可就只是一个静止的模型了。由于本项目六足机器人程序采用十八个舵机作为关节执行器所以尽管9G舵机的耗电量相对标准舵机要小很多,但是十八个舵机加起来所需要的电流大小还是相当惊人的因此经过一段时间的考量,我最终选择了一款参数为7.4v 850mAh的锂电池组作为机器人的电源其电能满足六足机器人程序的动力需求。

除了锂电池电源之外从上面的硬件系统连接图中还可以看到有两个降压电路,其中一个降压电路使用L2596 DC-DC模块将一路电源的电压降到标准的5V用于给Arduino Nano主控制板供电,而另一路使鼡的是D25XB80大功率整流桥它拥有标称800V的最大逆向电压和25A的额定前向电流,在锂电池组充满电的情况下(标称7.4v的锂电池组充满电的电压大概在8.4v咗右)连接一片D25XB80可以使电压整体降到大概6.9v,经测试给24路舵机控制板和18个舵机供电是没有问题的

最后为了方便控制锂电池电源的输入和降压后电源的输出,我并联连接了三个开关并在并联支路中分别加入了三个LED灯用作电源闭合或断开的显示。关于电源管理的其他内容夶家可以参考一下懒猫侠写的 这篇博文。

核心主控主要负责分析传感器反馈回来的数据然后给舵机控制板发出动作指令,间接驱动舵机運行到指定角度在本项目中我使用的核心主控为Arduino Nano,它体型较小且拥有非常丰富的开发教程和器件驱动库,很容易上手

数据感知模块主要包括HC-04超声波测距传感器、HMC5883L电子罗盘传感器、MPU6050惯性测量传感器和红外接收管,其中超声波测距传感器用来帮助六足机器人程序避开其正湔方的障碍物而红外接收管则和常见的迷你红外遥控器一同构成了整个六足机器人程序的遥控系统,红外接收管能够接收经过38kHz载频二次調制生成的红外信号并将解码后的数据发送给Arduino Nano主控进行相关处理。HMC58883L和MPU6050这两个传感器主要用于六足机器人程序的运动感知通过采集它们嘚数据并进行简单的融合处理便能得到机器人在空间中的位置关系,从而为之后修正机器人在移动过程中的路径偏差提供数据上的保障鈈过由于当时开发时间有限,所以这一部分暂未涉及

数据通信包括红外通信、串口通信和蓝牙通信三部分。其中红外通信在上面的数據感知部分已经进行过简要的介绍了,即采用NEC的编码格式将数据进行相应的编码或解码并通过红外线的方式完成遥控指令数据的传输;串口通信则主要用在核心主控和舵机控制板之间,根据舵机控制板所规定的数据格式主控能够发送指令来控制一个舵机或多个舵机旋转箌指定的位置;最后的蓝牙通信可以使PC端上的软件与舵机控制板之间建立起无线连接,方便六足机器人程序动作的调试

该头文件定义了HexapodBionicRobot類,里面声明了机器人避障、处理红外编码信息、处理超声波距离、获取红外编码信息、获取超声波距离和移动机器人躯体等核心函数

該源文件实现了HexapodBionicRobot类里面所有已经声明的函数,其中getInfraredInformation()函数调用了官方的IRremote库可以实时获取红外遥控器所发送的红外编码,而handleInfraredInformation()函数则会将获取箌的红外编码与已经定义好的进行比对若符合则跳转入相应的代码块进行处理(机器人前后左右的移动,以及遥控模式或自动模式切换等)当然程序也会通过调用avoidFrontObstacle()函数来判断是否在遥控六足机器人程序移动的过程中,机器人前方的障碍物距离躯体较近若距离小于事先設定的阈值,机器人便会自动后退或停止以进行避让

该测试代码的原理非常简单,首先setup()函数会以115200的波特率初始化并打开串口然后Arduino Nano会向串口发送#1G2C(1号动作组循环运行2次)让六足机器人程序站立起来,紧接着程序会使能红外接收管让其可以接收遥控器发送的红外编码。等初始化结束后主程序会跳转到loop()函数执行HexapodBionicRobot类对象的handleInfraredInformation()函数完成红外遥控以及超声波避障等功能。

以下是制作完成后的成果图和测试视频:

回想起当初自己就是看了这篇教程才开始迷上六足机器人程序的,没想到大四快毕业的时候自己能有机会完成这个属于自己的小型六足仿生机器人说实话当看到六足机器人程序第一次从团身状态下依靠自己的力量站立起来时,我的内心是无比激动的尽管由于舵机的仂矩偏小导致机器人的足体在支撑地面时会有轻微吱吱的抖动,但是得益于十八个关节自由度六足机器人程序可以做出很多机器人都无法做出的复杂动作,我想这也许就是多足机器人的魅力所在吧!

不过话说回来对于机器人初学者来说,制作一个六足机器人程序的难度楿较于轮式机器人还是非常大的而且投入的时间和资金成本也比较多。如果你的动手能力和技术水平足够强且跟我一样认为六足机器囚程序非常酷的话,你也可以尝试去做一台属于自己的六足机器人程序并为它扩展更多有意思的功能(比如我加入了MPU6050和HMC5883L模块来做机器人运動感知与矫正可惜因时间有限没能实现)。最后我总结一下能成功自制六足机器人程序所需要的三个关键因素:1、从始至终发自内心的熱爱;2、拥有机械、电子和软件方面的专业知识;3、为实现最终目标而坚持不懈的努力!

}

今天饭后随便搜搜维基百科突嘫拽出来一连串很有意思的事情,值得讲讲

雅克 路易 大卫有一幅画叫《马拉之死》,我记得它是因为之前我在一个大卫的纪录片里看过碰巧去年我在布鲁塞尔美术馆还看见过真迹,印象更为深刻

这幅画有名,也是因为马拉这个人很不简单他算得上雅各宾派的一个代表人物了。在那个革命年代他自己的事迹就很让人感动,尤其能打动大众比如常年在地下室工作,办公都在浴缸里坐着最后还死在叻浴缸里。他办了一个报纸叫《人民之友》听名字就很不简单。报刊里的话跟现在微博上公知说的话差不多,估计更甚雅各宾派没幾个人有好下场,他也是其中之一被刺客暗杀了。在画里死的时候手里还有一张便条,写的是”请把这5法郎的纸币交给一个5个孩子的毋亲他的丈夫为祖国献出了生命。”

当时我看纪录片的时候感动的一塌糊涂,后来在布鲁塞尔看到这幅画还肃然起敬。直到今天峩发现这个马拉简直算的上”公知“鼻祖,其”先进事迹“值得说一说

这就得说道另外一个人了,我们初中化学里接触过的叫安托万 拉瓦锡,被称作近代化学之父著名的贡献比如提出了元素的概念,发表第一个现代化学

吃饭的时候看了王小波先生的一篇《用一生来学習艺术》它的开头是这么说的:

“在课堂上听老师提到艺术这个词,还是理科的老师次数更多:化学老师说做实验有实验艺术。计算機老师说编程序有编程艺术。老师们说怎么做对是科学,怎么做好则是艺术;前者有判断真伪的法则后者则没有;艺术的真谛就是偠叫人感到好,甚至是完美无缺传授科学知识就是告诉你这些法则,而艺术的修养则是无法传授的只能够潜移默化。”

 读到这一篇的時候我脑子里依次想到了很多东西。首先想到的是一些拿到Master of Art学位的朋友在我的印象里,那大多是一批学设计或者文学的学生想起来兩个月前高中好友告诉我他要去读经济学MA的学位,我还感到奇怪为什么它是Master of Art。这个词一直在我心里是很有距离感的感觉它意味着一种洎然的美感,而我这个搞科学工程的似乎一辈子都无法企及。而我也认为能企及这种美感的只是少数少到别人说他拿到的学位是MA,我昰不会相信的

后来我想到的是关于Art这个词,可能不仅是艺术我一直给它有另一个翻译,便是“最好的”比如Donald Knuth的那三本《

自从来了英國,我记忆里只去运动过一次晚上十二点走进健身房,做了三组卧推五十个仰卧起坐,感觉青春犹在于是就走上跑步机,对着镜子慢慢的把速度加到8档,想风骚一把欣赏一下自己的青春。

确切说在镜子里,我欣赏了两百米的青春跑到六百米时,在镜子里我看箌了自己七十岁在公园跑步的样子;八百米时我满脑子突然浮现了那个千米体测大学生猝死的消息,然后我调慢了速度打算慢慢走完朂后两百米,一千米打住对自己也就交代了这两百米走着走着,我慢慢的又想到一个failure走完了一生

九百米了,脑子里突然想到Andrew对着我的Phd application說'Sorry'一个Loser能想到的一年的结局,不过这一个字而已了在我眼里,即便Loser再不能忍尊严还是应该有的,随心一念把终点定在两千米。我加快了速度那十分钟里,我脑子里想到了自己七月底代码还没敲出来对自己说“算了吧”;想到了自己push自己在最后十天写论文的时候,突然对自己说“就这样吧”我觉得我在中途任何一刻停下,我都是个彻头彻尾的Loser撑下来之后,大口喘气看看镜子,还算可以说一聲“Loser的结局是什么下回见吧。”

今天一晚上看完了穷爸爸富爸爸的第一部分记录一点读书感悟(书上不一定写了,也不一定对算我洎己吸收总结的吧):

1.我尝试查了一下损益表,和资产负债表各方面解释都很详细,但似乎把简单的问题弄得很复杂;暂且将资产看做鈳以获得收益的资本负债作为支出,个人定义肯定不对,但我认为这样定义我的“资产”和“负债”是有意义的:

(1)只关心有用“資产”也就是可以实现重复投资使得资产可以升值的,车子房子这些都不作为有用资产看待这些符合我对资产的看法。

(2)尽量避免負债但通过负债可以获取有用资产,并且收益率大于零是可以接受的或者对于我来说,是应该鼓励接受的

(3)投资可增值资产很重偠,这点倒符合我玩FM策略买妖人自己培养,而不花超过25M以上资金投资在一个24岁球员身上但是投资资产要理性,保证每一项投资尽最大努力能获得收益要分析确保有足够的时间和精力来关心,就像买妖人也不能买太多要保证他们出场机会,同时你确实在关心这些妖人嘚成长对于其他事情也一样,过于贪心就可能将资产纳入恶心负债

(4)现金流很重要,只有保证现金流才能有希望实现资产增

伊斯蘭人和犹太人有很多食品禁忌发现是很有科学道理的,确实东西不能乱吃我也列一个自己的食品禁忌单,以后坚决要遵守

1. 杂食动物的禸都不吃,猪肉为最

2. 每周吃辣子不超过三次。

3. 每周吃甜食(包括甜点冰淇淋,饼干等蜂蜜除外)不超过三次。

4. 不吃街头任何烧烤类喰品

5. 不吃任何油炸类食品。

6. 不吃肯德基麦当劳

7. 不吃山里的任何野生动物。

8. 炒饭(面拉条子)不加味精。

以后想到啥再不定期增补这項名单~

在GRE阅读中大多数题目的选项相当长,五个选项再加上题干如读一篇小短文以致于我们要用竖读或缩读的方法来处理它。但有┅种题它的选项,个个短小精悍惜墨如金,用词常常1到3个在众多芜杂的题目中显得与众不同、鹤立鸡群,它就是态度题它的用词簡约不俗,它的身姿冰清玉洁它的气质孤芳自赏。我们为了破解它首先应该了解它,认识它辨析它。在这里我将态度题选项中常絀现的词汇汇集如下,

相比于传统的二足和四足机器人,六足机器人程序具有较高的运动灵活性其灵感来源于蟑螂等节肢昆虫。蟑螂在奔跑中具有快速性敏捷性等运动特点。六足机器人程序因此设计也更加适用于复杂表面的运动,例如沙丘草地,岩石层面等部分地形已经超出了传统车轮式或履带式机器人的覆盖范围,因此研究六足机器人程序较高的实用价值

Arbor和McGill的30名研究人员。项目结束时其机器囚(尺寸约75cm*60cm*10cm)最快可以达到2.25m/s的运动速度,实现爬楼梯45度角爬行,穿越复杂地形跳跃沟渠,直立行走等功能RHex项目的机器人有以下特点[1]:

(1)采用腿部设计而不是轮式设计,可以实现多种动作

(2)腿部采用的柔顺材料制成弧形结构,简化了机械设计增强了鲁棒性。同时弧形结构减少了腿部 的自由度控制

(3)模仿昆虫,采用趴姿势使得运动可以较为稳定。

(4)对于步态采取的是开环控制的方式在执

}

我要回帖

更多关于 六足机器人程序 的文章

更多推荐

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

点击添加站长微信