szjuliet 发表于 2020-7-24 18:00:37

Arduino两足机器人


## ARUIN.O两足机.器.人








我一直被机器人尤其是那些模仿人类行为的两足机器人所吸引。这种兴趣促使我尝试设计和开发可以模仿人类步行和跑步动作的两足机器人。在本项目指南中,我向大家展示两足机器人的设计和组装。

这个项目首先要做到系统尽可能强大,在尝试各种步行和跑步步态时,不必总是担心硬件故障,能够把硬件发挥到极限。第二个目标是使用现成的零件和3D打印的部件使两足机器人相对低成本,为进一步升级和扩展留下空间。这两个目标的结合为执行各种实验提供了坚实的基础,使人们能够开发出满足更具体需求的两足机器人。

依照指南来创建你自己的Arduino两足机器人,如果你喜欢这个项目,请在“ Arduino Contest ”中投票。

## 步骤1 设计过程


机器人的腿使用Autodesk的免费3D建模软件Fusion 360设计的。
首先将伺服电机导入设计中,并在电机周围设计机器人的腿。我为伺服电机设计了支架,支架提供了一个与伺服电机轴完全相反的第二个枢轴点。电机的两端都装有双轴,使设计具有结构上的稳定性,并消除了在支脚承受一些负载时可能发生的任何倾斜。

连杆设计用于固定轴承,而支架使用螺栓固定轴。在用螺母将连杆安装到轴上后,轴承将在伺服电机轴的对面提供一个平滑和坚固的枢轴点。



这个机器人在设计上还需要保持模型尽可能紧凑,以最大程度地利用伺服电机提供的扭矩。连杆的尺寸设计成可实现较大范围的运动,同时使总长度最小。连杆过短会使托架发生碰撞,从而缩小了运动范围,过长则会对执行器施加不必要的扭矩。



最后设计的是机器人的身体,Arduino等电子元件将安装在这个身体上。

## 步骤2 Arduino的角色


本项目使用了Arduino Uno。Arduino负责计算经过测试的各种步态的运动路径,并控制执行器以精确的速度平稳移动到精准的角度。Arduino具有多功能性,是开发项目的绝佳选择。它提供了许多输入输出引脚,还提供了串口、I2C和SPI等接口,可与其他微控制器和传感器进行通信。Arduino还为快速原型制作和测试提供了一个出色的平台,并为开发人员提供了改进和扩展的空间。在本项目中,更进一步的版本将包括用于运动处理的惯性测量单元,例如在不平坦地形中的跌倒检测和动态运动,以及用于避障的距离传感器。

本项目使用(https://www.arduino.cc/)。(Arduino还提供了基于Web的IDE)

**注:** 机器人的程序请在附件中下载。

## 步骤3 所需材料

这是制作Arduino两足机器人所需的所有零件清单。所有零件都通用并且容易找到。


### **电子元件:**

+ **Arduino Uno** x 1
+ **PCB电路板** (尺寸与Arduino相近)
+ **公头和母头排针** (每种大约20个)
+ **跳线** (10条)



+ **Towerpro MG995伺服电机**x 6


+ **MPU6050 惯性测量单元** (可选)
+ **超声波传感器** (可选)


### **硬件:**

+ **滑板轴承** (8x22x7mm)


+ **M4螺母和螺栓**


+ **3D打印机耗材**

不包括Arduino和3D打印机,该项目的总成本为20美元。


## 步骤4 3D打印零件




本项目所需的零件都是定制设计,需要使用3D打印机将零件打印出来。使用PLA耗材,填充率40%,2周长,0.4毫米喷嘴和0.1毫米层厚进行3D打印,耗材颜色自定。下面是零件和STL的完整列表,可以自行。

注意:从以下开始,提及零件时将使用列表中的名称。

+ **踝关节伺服支架** x 1
+ **踝关节伺服支架(镜像)** x 1
(译注:上图中右边下面的2个零件)
+ **膝关节伺服支架** x 1
+ **膝关节伺服支架(镜像)** x 1
(译注:上图中右边中间的2个零件)
+ **髋关节伺服支架** x 1
+ **髋关节伺服支架(镜像)** x 1
(译注:上图中右边上面的2个零件)

(译注:原文列表中踝关节支架有4处,根据后文推断,后面两个踝关节伺服支架应为髋关节伺服支架)
+ **轴承连杆** x 2
+ **伺服连杆** x 2
+ **踝关节连杆** x 2

(译注:上图中6个椭圆零件)
+ **桥接件** x 1 (译注:图中左上零件)
+ **电子元件底座** x 1 (译注:图中正方形零件)
+ **电子元件垫片** x 8(可选)
+ **弯角伺服垫片** x 12(可选)



不包括垫片共有14个零件。总打印时间约为20小时。


## 步骤5 准备伺服支架




打印完所有零件后就可以开始安装电机和电机支架。先将轴承推入膝关节伺服支架。推入后应该会比较贴合,但还是建议将孔的内表面打磨一下,而不要用力压轴承,否则可能会损坏零件。



然后将M4螺栓穿过孔,并使用螺母将其拧紧。





接下来握住踝关节连杆,并使用提供的螺钉将圆形伺服支架固定在其上。



用连接伺服电机的螺钉将踝关节连杆连接至膝关节伺服支架。确保对准马达,使轴与先前安装的螺栓在同一侧。


最后,用其余的螺母和螺栓固定伺服电机。



对髋关节伺服支架和踝关节伺服支架执行相同的操作。这样会有三个伺服电机及对应的支架。

注意:这里是装配一条腿的说明,另一条腿只是简单镜像的。


## 步骤6 制作连杆部件

组装好支架后,就开始制作连杆。要制作轴承连杆,需要轻轻打磨轴承孔的内表面,然后将轴承从两侧推入孔中。确保将轴承推入直到一侧齐平。



要装配突起状伺服连杆,可以抓住连杆的两个圆形突起和随附的螺钉,将突起的角放在3D打印上并对齐孔,然后从3D打印一侧将螺钉固定到孔上。





建议对这些螺钉使用3D打印的伺服垫片。

连杆装配好后,就可以开始组装机器人的腿了。


## 步骤7 组装机器人的腿


连杆和支架组装好后,就可以把它们组合起来制作机器人的腿了。首先,用弯角伺服连杆将髋关节伺服支架和膝关节伺服支架连接在一起。



**注** :当前先不要将突起连杆固定在电机上,因为在接下来有一个设置步骤,如果将突起连杆固定在电机上会带来不便。

在另一侧,用螺母将轴承连接安装到凸出的螺栓上。最后通过膝关节伺服支架上的轴承插入突出的螺栓来连接踝关节伺服支架。将伺服轴固定在与另一侧膝关节伺服架相连的伺服角上。这可能是一个棘手的任务,我建议找一个帮手一起做。





对另一条腿重复上述步骤。使用每个步骤附带的图片作为参考。





## 步骤8 定制PCB板和接线




此步骤可选。为了使布线更整洁,我决定自己定制一个PCB板和排针。(看样子作者比较完美主义)



PCB中有直接连接伺服电机线的端口。我还保留了额外的端口,以备扩展和添加其他传感器,如惯性测量单元或超声波距离传感器。



它还包含一个外部电源端口为伺服电机供电。跳线用来为Arduino在USB和外部电源之间进行切换。



使用螺丝和3D打印垫片将Arduino和PCB安装到电子元件底座的上下两侧。



**注** :在通过USB将Arduino连接到您的计算机之前,请务必拔掉跳线。否则可能会损坏Arduino。

如果不用PCB板,用面包板的话,下面电机连接引脚:
+ 左髋>>引脚9
+ 右髋>>引脚8
+ 左膝>>引脚7
+ 右膝>>引脚6
+ 左踝>>引脚5
+ 右踝>>引脚4

如果要让PCB遵循相同的顺序,在PCB上的端口从右到左,IMU端口朝上。使用常规的公-母跳线将PCB连接到Arduino上,并接入上述引脚。确保在连接GND和Vin引脚时没有接通USB电源。




## 步骤9 组装机器人的躯干

机器人的腿和电子元件组装好后,就可以将它们组合在一以构成躯干了。使用桥接件将两条腿连接在一起。



在髋关节伺服支架及用于固定伺服电机的螺母和螺栓上使用相同的安装孔。最后将电子元件底座连接到桥接件。对齐桥接件和底座上的孔,并使用M4螺母和螺栓进行连接。



请参阅附图获取帮助。至此完成了机器人的硬件构建。接下来编写程序让机器人栩栩如生。


## 步骤10 初始化设置



我在制作这个项目时有留意到,伺服电机和弯角连杆不需要完美对齐来保持相对平行。这也是为什么每个伺服电机的“中心位置”必须手动调整来与腿对齐。为此,先将电机的直角支架从电机上拆下来,再执行**initial_setup.ino**。当马达安置到了中心位置,再重新接上直角支架,使腿完全直立,脚与地面平行。如果能做到这样的效果,你很幸运。如果没达到要求,打开ino文件旁边选项卡上的constants.h文件,修改伺服偏移值(第1-6行),直到腿能够完美对齐,脚是平的。使用这些值运行一下程序,你就会知道应该如何调整。



设置好这些常量后,要保留好这些数值,后面会用到它们。


## 步骤11 一点点运动学知识



为了让两足机器人执行有用的动作,如跑步、行走,各种步态需要编程成运动路径的形式。运动路径是末端执行器(本例中的脚)所沿着的路径。有两种方法可以做到这一点:
一种方法是用**蛮力**的方式给各个关节的马达反馈。这种方法可能耗时乏味且错误不断,因为判断完全靠肉眼。

相反,有一种更聪明的方法可以达到预期的结果。

第二种方法是提供末端执行器的坐标而不是所有关节具体的角度。这就是所谓的**逆运动学**。用户输入坐标,末端执行器会根据指定坐标将关节角度调整位置。这个方法可以看作是一个黑盒子,以坐标为输入,以关节角度为输出。如果你对开发这个黑盒子的三角方程感兴趣,可以看看前面或下面的图。



对公式不感兴趣的人,这个方程已经编好了,可以用pos函数来实现,它以x, z作为输入,输出与电机对应的三个角度。

**注:** 程序可在附件中下载。


## 步骤12 对Arduino编程



在对Arduino进行编程之前,需要对文件进行一些修改。还记得前面我要你记下的常量吗?将相同的常量修改为你在constants.h文件中设置的值。


**注:**如果你使用的是本教程提供的设计,则无需进行任何修改。如果是自己的设计,则需要修改更多的值以及偏移量。常量**l1**是测量出的髋关节和膝关节之间的距离。常量**l2**是测量出的膝关节和踝关节之间的距离。因此如果你设计了自己的模型,需要测量这些长度并修改常量。最后两个常量用于步态。**stepClearance**常量测量的是当向前迈一步时脚要抬多高。**stepHight**常量测量的是当迈步时从地面到骶部的高度。

修改完所有常量后,就可以上传主程序。主程序只需将机器人初始化为步行姿势,然后开始向前迈进。你可以根据需要修改功能,尝试各种步态、速度和步长,让机器人达到最佳状态。


## 步骤13 最终结果:开始实验










这个两足机器人可以迈出2到10厘米长的步子而不会翻倒。在保持步态平衡的同时,速度也可以改变。结合Arduino强大的平台,可以进行各种步态和其他目标的实验,比如在踢球时跳跃或保持平衡。我建议你尝试改变腿的运动路径来创造你自己的步态,并发现各种步态是如何影响机器人的性能的。可以将传感器,如惯性测量单元和距离传感器添加到系统来增加机器人的功能,也可以在腿部添加力传感器,尝试在不平整的表面上的动态运动。

希望你喜欢这个教程,能够启发你去构建自己的机器人。如果你喜欢这个项目,请在**“Arduino比赛”**中投票支持它。

创作快乐!

> 原文链接:https://www.instructables.com/id/Arduino-Controlled-Robotic-Biped/   
> 作者:Technovation   
> 翻译:szjuliet      
> ![](https://mc.dfrobot.com.cn/data/attachment/forum/202007/13/092805lv0ln9zmnxplgnrn.png)

hnyzcj 发表于 2020-7-24 21:06:45

8错

20060606 发表于 2020-7-30 17:50:07

创意真好!!!

DFS1w2cb8o8 发表于 2020-7-30 20:07:33

厉害厉害{:6_215:}

MOKfcGBj 发表于 2020-8-2 10:38:53

厉害呀!!!!

忧伤琴弦 发表于 2020-8-2 18:18:35

PLEN2精简版

微笑的rockets 发表于 2020-8-3 15:57:21

运动学逆运算,你值得拥有。

发表于 2020-8-8 21:52:20

第一次看到有人做两足机器人啊,不错,加油加油(ง •_•)ง

佛系唐法官 发表于 2020-8-9 18:41:00

真厉害啊!{:6_215:}

发表于 2020-8-17 21:44:13

真厉害,这真是{:6_203:}啊!

unQAzcWF 发表于 2020-8-26 14:28:19

很酷的项目

DFBJFz5siXP 发表于 2020-9-14 17:45:49

准备材料试试

发表于 2022-5-8 19:12:01

顶一个!
页: [1]
查看完整版本: Arduino两足机器人