近年来,我们可以看到美国宇航局向火星发送了不同的机器人,如机遇号和好奇号。两辆火星车都有轮子。然而,我认为在火星上使用四足或六足机器人你会更加灵活,因为地球上的许多动物都是用腿移动的。这意味着机器人仅依赖于火星上的重力,而不依赖于大气的成分。出于这个原因,在这个项目中,我将描述一个火星上四足机器人的模型。视频演示:补给品对于基本四足机器人:1xArduinoNano12x伺服电机1x伺服控制板PCA96851x稳压器(UBEC3A2-6LiPo)4x脚4x腿4x髋关节1x身体1x9伏电池1x14.8伏电池(或4x3.7伏电池)螺丝和螺母(用于伺服电机和板)电线一些公头对于高级四足机器人(上面的材料加上下面描述的材料):2x伺服电机1x超声波传感器(HY-SRF05)1x气体传感器(MQ-2)1xnRF24L011x温湿度传感器(CNT5)很多电线更多公头对于接收器:1xnRF24L011x"Arduino"Promicro(就像ArduinoLeonardo)1x电阻100欧姆1x电阻200欧姆软件:ArduinoIDE加工第1步:有关四足机器人的更深入信息作为介绍,我想先解释几个术语。四足动物是四足动物。机器人是机器,最初是自动机,执行机械工作。因此,四足机器人是具有四条腿的机器人。机器人存在于许多不同的应用领域。他们快速、准确、不间断地工作。这就是为什么它们在工业中很受欢迎,例如,被用作自动化生产过程的一部分。但机器人也可以为私人家庭提供有价值的服务。例如,近年来,在花园中使用机器人割草机或在家庭中使用机器人吸尘器变得流行。另一方面,四足机器人主要用于开辟无法通行的地形以及有时会危及生命和肢体的操作。人的生命非常宝贵,紧急情况下的救援人员会为他人冒生命危险。因此,这项任务可以由现场的机器人执行,而人类则可以在安全的位置对其进行控制。例如,四足机器人可以在地震后或火灾中寻找人,或者在太空探险中从外星球上采集岩石样本-如图所示。然而,对于传统机器人而言,此类任务会带来问题,因为它们通常是为平面或固定应用而设计的。例如,工业机器人通常是静止的,通常只移动一只手臂来执行重复的制造步骤。或者其他机器人在轨道上移动。另一方面,割草机器人更具机动性。它可以用轮子在平坦的草地上移动。然而,这些类型的机器人都不能在整洁的环境之外移动。轮子的使用也限制了运动。例如,对于这种类型的机器人来说,台阶通常是一个不可逾越的障碍。另一方面,我们人类可以轻松克服这些障碍,因为我们用两条腿移动。然而,用两条腿走路需要复杂的过程来在运动过程中动态地建立平衡。由于我们的平衡感、我们的关节和我们的肌肉,我们人类从孩提时代就已经完善了这一点。另一方面,对于双足机器人来说,这很难实现。所以很明显,通过四条腿可以达到更高的动态平衡,因为机器人总是可以用三条腿站立并用第四条腿移动。这大致相当于三腿椅子,只要重心在腿内,就不会在静止状态下翻倒。从本质上讲,这解释了四足机器人的基本运动。因为机器人总是可以用三条腿站立并用第四条腿移动。这大致相当于三腿椅子,只要重心在腿内,就不会在静止状态下翻倒。从本质上讲,这解释了四足机器人的基本运动。因为机器人总是可以用三条腿站立并用第四条腿移动。这大致相当于三腿椅子,只要重心在腿内,就不会在静止状态下翻倒。从本质上讲,这解释了四足机器人的基本运动。在上图中,您可以看到我的没有传感器的四足机器人-所以在早期版本中。您可以很好地看到四个腿和基本组件,这就是我认为图片合适的原因。第2步:打印所有部件要做的第一件事是打印出所有部件。关于这一点我不想说太多,因为我想为个人喜好在层高或支撑方面留出空间。尽管如此,这一步很重要,因为我已经附加了为此所需的文件。除了脚、腿和髋关节,我自己创建了所有模型。即使是我自己没有制作的三个模型,我也不得不调整,因为它们不适合我的电机尺寸。根据您正在构建的四足机器人中的哪一种,您必须查看必须打印出哪些模型的耗材列表。四足-robot_body(2).stl下载脚.stl下载腿.stl下载髋关节.stl下载电池座.stl下载电路高度.stl下载超声波传感器部分1.stl下载超声波传感器第2部分.stl下载第3步:展示电路并构建机器人第4步:超声波传感器如果四足机器人没有传感器,它会遇到任何事情。为了解决这个问题,我在上面安装了一个超声波传感器,它可以通过两个电机在两个轴上旋转。这应该允许机器人检测障碍物并避开或走过它们。此外,它应该向两个方向看,并识别哪个方向有更多的空间在那里转弯并走得更远。为了使该原理也适用于火星,有必要了解或测量火星上的大气是如何组成的,以便尽可能准确地计算声速,从而使超声波传感器可以提供尽可能准确的值尽可能。为了将它也应用于模型,我在计算速度时包括了温度。为此,我使用了将速度显示为温度函数的函数。我在这个来源中找到了这个。代码中的行如下所示:distance_cm=((0.03316+temperatureC*0.00006)/2)*duration_us2;//sounddependingonthetemperature运行时超声波传感器将向下定向以检测任何障碍物。当这个事件发生时,传感器会上升并首先测量四足机器人是否会越过障碍物。如果翻不过去,就左右看看,看看还有多少空间,选择空间大的那一边。你可以从一开始就在视频中看到整个说明。第5步:气体传感器气体传感器可以测量空气中的至少一种气体。根据传感器的不同,这可能会有所不同。MQ-2气体传感器可以测量三种气体:LPG(液化的pertoleumgas),存在于加热器中,具有高度易燃性和致癌性。CO(一氧化碳),一种透明、无味且有毒的气体,由不完全燃烧产生,即燃烧时氧气不足。烟是由火产生的,是一种浓稠的雾化气体。我选择了MQ-2气体传感器,因为我可以在不同的地方运行四足机器人,看看某处是否有火或加热器是否泄漏。然而,我也很清楚火星上还需要其他气体传感器。在火星上寻找生命的过程中,气体传感器可能被证明是非常有用的,因为它可以测量空气的成分。如果你再测量火星上土壤或流体的成分,你可以结合有价值的信息,并尝试通过米勒-尤里实验创造生命。第6步:温湿度传感器了解您周围的温度至关重要。在我的模型中,我需要它来确定声音的速度。有了空气湿度,也可以从“远处”判断下雨与否。“从远处”意味着我不一定要看到四足机器人,而只需要有一个连接,以便在计算机上向我显示这些值。在火星上测量温度很重要,因为高于某个温度,一些组件需要冷却。根据这个消息来源,火星上的湿度似乎足够高,可以想象生命存在。这些信息与气体相结合提供了大量信息,这些信息相结合将使未来在火星上生活成为可能。所以,火星上符合条件的地方还需要找到。这几乎是最艰巨的任务,为此研究需要时间,我们作为感兴趣的人需要耐心。第7步:(反向)运动学运动学通常处理对物体运动的描述,而不是运动的原因。在机器人技术中,运动学也起着非常重要的作用,因为它是描述由执行器(例如电机)执行的运动的问题。在四足机器人的情况下,它是关于腿运动的描述。有三个电机,所以三个DOF(自由度)。您有一个起点和一个终点,并且想要计算电机的角度。有alpha、beta和gamma。点和角度绘制在图片的顶部。接下来我选择了一个坐标系,因为有了它我可以将坐标视为位置向量,并且可以很好地计算向量角度。我是如何精确计算的,您可以在我附上的程序中查找。它是用Java编写的,但由于上传时出现问题,它现在是一个.txt文件。该程序可以自动执行计算,您只需指定终点,如上图所示。对于每条腿,您必须将坐标输入到程序中,就好像身体不存在一样。所以你必须计算每条腿相对于坐标原点的角度,以便它们是正确的。你可以在上面的图片中看到这个,它有身体在中心,外面有很多坐标。蓝色坐标显示身体相对于起始位置的位置。橙色坐标显示腿相对于身体坐标的位置。如果黄色+50在那里,这条腿已经迈出了一步,在进一步的计算中必须计算x+50。腿的各个坐标(橙色的)必须输入到程序中,插入到Arduino程序中,然后由Arduino程序中的另一个函数计算。与Arduino计划有关的一切都可以在第9步中获得资金。在Arduino程序中输入alpha角度时,必须注意它是正确的距离。对于前腿,您必须计算值-180。由于保持重心,因此必须移动四足机器人的身体以稳定抬起一条腿。单腿.txt第8步:有效的步行方式我可以输入PWM值,然后测量地理三角形的角度并更改值,直到它们正确为止。但问题是时间长,效率不高。所以我考虑测量最大值和最小值,然后使用map()函数将角度转换为PWM值。这个函数看起来像这样://youprobablyhavetochangethesevaluesaccordingtoyourmotorsintmap_values(intindex){//frontrightif(index==0)pwm[0]=map(angle[0],20,270,550,100);if(index==1)pwm[1]=map(angle[1],35,325,100,680);if(index==2)pwm[2]=map(angle[2],35,210,130,650);//frontleftif(index==8)pwm[8]=map(angle[8],20,300,100,600);if(index==9)pwm[9]=map(angle[9],35,320,650,100);if(index==10)pwm[10]=map(angle[10],45,210,650,170);//backrightif(index==4)pwm[4]=map(angle[4],40,270,180,650);if(index==5)pwm[5]=map(angle[5],45,320,650,100);if(index==6)pwm[6]=map(angle[6],85,215,650,250);//backleftif(index==12)pwm[12]=map(angle[12],20,300,650,200);if(index==13)pwm[13]=map(angle[13],25,325,100,650);if(index==14)pwm[14]=map(angle[14],80,210,100,520);//ultrasonicsensorif(index==7)pwm[7]=map(angle[7],45,200,100,600);if(index==3)pwm[3]=map(angle[3],-90,65,170,650);//returnavaluereturnpwm[index];}多亏了这个功能,你只需要输入相应的角度,即angle[0]=200;并且程序有效。这对于快速从向前跑到向后跑和向侧跑非常方便。第9步:四足机器人的最终Arduino代码该代码的工作方式是测量温度、湿度和三种气体并将其发送到接收器。之后,测量距离并决定机器人是向前还是向后运行。如果它返回,它会在两个方向上转动超声波传感器,并测量哪一侧有更多空间可以转动。代码被拆分成尽可能多的函数,以使循环中的代码尽可能小,从而更易于管理。现在我想谈谈所需的库。I2C连接到伺服控制板需要线库。控制板也有自己的库,允许电机保持其位置,因此强烈推荐。MQ2是气体传感器,通过它可以单独测量不同的气体。nRF24L01模块的连接需要SPI以及它自己的库来建立连接。DHT库用于温度和湿度传感器。Autonomous_quadruped-robot2.ino第10步:接收器原理和电路要接收四足机器人在远方(即在火星上)收集的数据,您需要一个接收器。该接收器由一个ArduinoProMicro、一个nRF24L01模块和一个分压器组成,将Arduino的输出电压降低到3.3伏,使模块不会损坏。第11步:接收器Arduino代码接收器从机器人获取数据,然后将其放到串行接口上。处理程序从那里访问它并可以为用户输出数据。目标是将大部分值放在接口上,以便它们可以被Processing直接读取和输出。receiver_autonomous.ino第12步:处理处理应该用于以这样一种方式处理数据,即用户可以阅读最后呈现的所有内容。为此,我设计了如上图所示的窗口。与蓝色字体有关的一切都是直接来自传感器的值。黄色的文字看起来总是不同的,因为它会根据四足机器人的动作而变化。这样你就可以关注它在做什么。右下方的图片显示超声波传感器是向上还是向下。这里要知道的重要一点是,Processing运行一系列串行端口并从列表中选择一个。代码中的相应行如下所示://opentheportport=newSerial(this,Serial.list()[2],9600);//youmighthavetoadjustthis您可以在笔记本电脑的设备管理器中查找,然后尝试一下。这可能需要多次尝试。ArduinoProMicro应该是最后一个。计算公式为n-1,其中n是可用端口的数量。在完成所有这些步骤和紧张的工作之后,您可以坐下来享受您的自主四足机器人,有朝一日可能会在火星上四处走动。Quadruped_Robot.pde