手把手教你克己六足仿生机器人

发布时间:2023-07-31 08:49:07  来源:江南体育综合全站入口

  :经过大一那次失利之后,我决议暂时中止该项意图开发,转而先去学习那些有关嵌入式开发的根底常识,等今后有才能的时分再去独立完结这个六足机器人。很走运的是在我大学本科行将完毕的时分,我已把握了满意的常识来完结那个从前困扰我已久的机器人项目,所以我花了几周的时刻完结了这个六足机器人,算是了却了自己的一个愿望吧。

  这个六足机器人是我在大四做的,是我大学本科生计的终究一个个人项目。至于为什么我要做六足机器人,还要从高考完之后说起:其时刚考完的我一向想做一些有意思的作业,直到有一天我发现了一个网站,里边记录了许多怎么运用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路舵机操控板,详细运用方法见24路舵机操控板板运用说明。

  电源办理应该算是机器人硬件操控体系里除了中心主控之外最重要的模块了,究竟传感器坏了机器人还能够四处移动,可是电源部分坏了的话机器人可就仅仅一个中止的模型了。因为本项目六足机器人选用十八个舵机作为关节履行器,所以虽然9G舵机的耗电量相对规范舵机要小许多,可是十八个舵机加起来所需求的电流巨细仍是适当惊人的,因而经过一段时刻的考量,我终究挑选了一款参数为7.4v850mAh的锂电池组作为机器人的电源,其电能满意六足机器人的动力需求。

  除了锂电池电源之外,从上面的硬件体系衔接图中还能够看到有两个降压电路,其间一个降压电路运用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、为完结终究方针而持之以恒的尽力!

江南体育综合全站入口

服务热线:

0750-3083681

江南体育综合全站入口诚意邀请国内外客商莅临参观指导,欢迎惠顾!

打造并培养了一支经验丰富的工程设计团队,可以自行研制新型产品,不断与国际标准接轨。