当前位置:网站首页>Arduino 控制的双足机器人
Arduino 控制的双足机器人
2022-07-07 14:59:00 【acktomas】
Arduino 控制的双足机器人
我一直对机器人很感兴趣,尤其是那些试图模仿人类行为的机器人。这种兴趣促使我尝试设计和开发一种可以模仿人类行走和跑步的机器人两足动物。在这个 Instructable 中,我将向您展示机器人两足动物的设计和组装。
构建这个项目的主要目标是使系统尽可能健壮,这样在尝试各种步行和跑步步态时,我就不必经常担心硬件故障。这使我能够将硬件推向极限。第二个目标是使用现成的爱好零件和 3D 打印使 Biped 成本相对较低,为进一步升级和扩展留出空间。这两个目标相结合为执行各种实验提供了坚实的基础,让人们可以根据更具体的要求开发 Biped。
继续创建您自己的Arduino 控制的 Robotic Biped ,如果您喜欢该项目,请在“ Arduino 竞赛”中投下一票。
第 1 步:设计过程
人形腿是在 Autodesk 免费使用的Fusion 360 3d 建模软件中设计的。我首先将伺服电机导入到设计中,并在它们周围建造了支腿。我为伺服电机设计了支架,它提供了与伺服电机轴径向相对的第二个枢轴点。电机两端的双轴为设计提供了结构稳定性,并消除了当腿承受一些负载时可能发生的任何倾斜。连杆设计用于固定轴承,而支架使用螺栓固定轴。一旦使用螺母将连杆安装到轴上,轴承将在伺服电机轴的另一侧提供平滑且坚固的枢轴点。
设计 Biped 的另一个目标是使模型尽可能紧凑,以最大限度地利用伺服电机提供的扭矩。连杆的尺寸旨在实现大范围的运动,同时最小化总长度。使它们太短会使支架发生碰撞,从而减小运动范围,而使它们太长会在执行器上施加不必要的扭矩。最后,我设计了安装 Arduino 和其他电子元件的机器人主体。
**注意:**这些部件包含在以下步骤之一中。
第 2 步:Arduino 的作用
该项目使用了 Arduino Uno。Arduino 负责计算经过测试的各种步态的运动路径,并指示执行器以精确的速度移动到精确的角度,以产生平稳的步行运动。由于其多功能性,Arduino 是开发项目的绝佳选择。它提供了一堆 IO 引脚,还提供了串行、I2C 和 SPI 等接口,用于与其他微控制器和传感器进行通信。Arduino 还为快速原型设计和测试提供了一个很好的平台,并为开发人员提供了改进和可扩展性的空间。在这个项目中,进一步的版本将包括一个用于运动处理的惯性测量单元,例如在不平坦地形中的跌倒检测和动态运动,以及一个用于避开障碍物的距离测量传感器。
该项目使用了Arduino IDE。(Arduino 还提供了一个基于 Web 的 IDE)
**注意:**机器人程序可以从以下步骤之一下载。
第 3 步:所需材料
这是制作您自己的 Arduino 驱动的双足机器人所需的所有组件和零件的列表。所有部件都应该普遍可用且易于找到。
电子产品:
Arduino Uno x 1
Towerpro MG995 伺服电机x 6
Perfboard(与 Arduino 尺寸相似)
公头和母头针Male and Female header pins(每种约 20 个)
跳线Jumper Wires (10 件)
MPU6050 IMU(可选)
超声波传感器Ultrasonic sensor(可选)
硬件:
滑板轴承Skateboard Bearing(8x19x7mm)
M4 螺母和螺栓(M4 nuts and bolts)
3D 打印机材料(3D printer filament)
不包括 Arduino 和 3D 打印机,该项目的总成本为 20 美元。
第 4 步:3D 打印零件
该项目所需的零件必须是定制设计的,因此使用 3D 打印机将它们打印出来。印刷品采用 40% 填充量、2 周长、0.4 毫米喷嘴和 0.1 毫米层高,PLA 为您选择的颜色。您可以在下面找到完整的部件列表和用于打印您自己的版本的 STL。
**注意:**从这里开始,将使用列表中的名称来引用这些部件。
- 脚踏伺服支架(foot servo holder)x 1
- 脚踏伺服支架镜子(foot servo holder mirror)x 1
- 膝部伺服支架(knee servo holder)x 1
- 膝盖伺服支架镜子(knee servo holder mirror)x 1
- 脚踏伺服支架(foot servo holder)x 1
- 脚踏伺服支架镜子(foot servo holder mirror)x 1
- 轴承连杆(bearing link)x 2
- 伺服喇叭连杆(servo horn link)x 2
- 脚链(foot link)x 2
- 桥(bridge)x 1
- 电子支架(electronics mount)x 1
- 电子垫片(electronics spacer)x 8(可选)
- 伺服喇叭空间(servo horn space )x 12(可选)
总共有 14 个零件,不包括垫片。总打印时间约为 20 小时。
附件
stls.rar
第5步:准备伺服支架
打印完所有零件后,您可以开始设置伺服系统和伺服支架。首先将轴承推入膝部伺服支架。配合应该是贴合的,但我建议稍微打磨孔的内表面,而不是用力挤压轴承,否则可能会损坏零件。然后将 M4 螺栓穿过孔并使用螺母将其拧紧。接下来,抓住脚连杆并使用提供的螺钉将圆形伺服喇叭连接到其上。使用将用于连接伺服电机的螺钉将脚连杆连接到膝部伺服支架。确保对齐电机,使轴位于您之前连接的螺栓的同一侧。最后用其余的螺母和螺栓固定伺服。
对臀部伺服支架和脚伺服支架做同样的事情。有了这个,你应该有三个伺服电机及其相应的支架。
**注意:**我提供的是构建一条腿的说明,另一条只是镜像。
第6步:制作链接片段
组装好支架后,开始制作链接。要制作轴承连杆,再次轻轻打磨轴承孔的内表面,然后将轴承推入两侧的孔中。确保将轴承推入,直到一侧齐平。要构建伺服喇叭链接,请抓住两个圆形伺服喇叭和提供的螺丝。将喇叭放在 3D 打印件上并对齐孔,然后通过从 3D 打印侧连接螺钉将喇叭拧到 3D 打印件上。我建议为这些螺钉使用 3D 打印伺服喇叭垫片。建立链接后,您可以开始组装腿。
第 7 步:组装腿
组装连杆和支架后,您可以将它们组合起来以构建机器人的腿。首先,使用伺服喇叭连杆将髋部伺服支架和膝部伺服支架连接在一起。**注意:**先不要把喇叭拧到舵机上,因为后面有设置阶段,如果喇叭拧到伺服电机上会很不方便。
在另一侧,使用螺母将轴承连杆安装到突出的螺栓上。最后,通过将突出的螺栓插入膝盖伺服支架上的轴承来连接脚踏伺服支架。并将伺服轴固定在连接到另一侧膝盖伺服支架的伺服喇叭上。这可能是一项棘手的任务,我会推荐第二双手。
对另一条腿重复这些步骤。使用附在每个步骤中的图片作为参考。
第 8 步:定制 PCB 和接线
这是一个可选步骤。为了使布线更整洁,我决定使用穿孔板和接头引脚制作定制 PCB。PCB 包含直接连接伺服电机线的端口。此外,我还留下了额外的端口,以防我想扩展和添加其他传感器,例如惯性测量单元或超声波距离传感器。它还包含一个端口,用于为伺服电机供电所需的外部电源。跳线连接用于在 Arduino 的 USB 和外部电源之间切换。使用螺钉和 3D 打印垫片将 Arduino 和 PCB 安装到电子设备支架的任一侧。
**注意:**确保在通过 USB 将 Arduino 连接到计算机之前拔下跳线。不这样做可能会损坏 Arduino。
如果您决定不使用 PCB 而是使用面包板,这里是伺服连接:
- 左髋Left Hip >> 引脚 9
- 右髋Right Hip >> 引脚 8
- 左膝Left Knee >> 引脚 7
- 右膝Right Knee >> 引脚 6
- 左脚Left Foot >> 引脚 5
- 右脚Right Foot >> 引脚 4
如果您确实决定通过使用 PCB 上的端口从右到左使 IMU 端口朝上,使 PCB 遵循与上述相同的顺序。并使用常规公对母跳线使用上述引脚号将 PCB 连接到 Arduino。当您决定在没有 USB 电源的情况下运行它时,请确保还连接接地引脚并创建相同的接地电位和 Vin 引脚。
第 9 步:组装车身
组装好两条腿和电子设备后,将它们组合在一起以构建机器人主体。使用桥接件将两条腿连接在一起。在臀部伺服支架上使用相同的安装孔以及固定伺服电机的螺母和螺栓。最后,将电子支架连接到电桥。将琴桥和电子支架上的孔对齐,并使用 M4 螺母和螺栓制作接头。
请参阅所附图像以获取帮助。至此,您已经完成了机器人的硬件构建。接下来,让我们进入软件,让机器人栩栩如生。
第 10 步:初始设置
我在构建这个项目时注意到的是,伺服电机和喇叭不需要完全对齐以保持相对平行。这就是为什么必须手动调整每个伺服电机的“中心位置”以与腿对齐的原因。为了实现这一点,从每个伺服器中移除伺服喇叭并运行initial_setup.ino草图。一旦电机稳定在它们的中心位置,重新连接喇叭,使腿完全伸直,脚完全平行于地面。如果是这种情况,你很幸运。如果没有打开常量.h在相邻选项卡上找到文件并修改伺服偏移值(第 1-6 行),直到腿完全对齐并且脚是平的。玩转这些值,您将了解在您的情况下什么是必要的。
一旦设置了常量,请记下这些值,因为稍后将需要它们。
请参阅图片以获取帮助。
附件
初始设置.rar
第 11 步:运动学知识
为了使两足动物执行有用的动作,例如跑步和行走,需要以运动路径的形式对各种步态进行编程。运动路径是末端执行器(在本例中为脚)沿其行进的路径。有两种方法可以实现这一点:
- 一种方法是以蛮力方式馈送各种电机的关节角度。这种方法可能很耗时、乏味,而且由于判断是纯视觉的,因此也充满了错误。相反,有一种更聪明的方法可以实现预期的结果。
- 第二种方法围绕馈送末端执行器的坐标而不是所有关节角度。这就是所谓的逆运动学。用户输入坐标并调整关节角度以将末端执行器定位在指定坐标处。这种方法可以被认为是一个黑匣子,输入坐标并输出关节角度。对于那些对如何开发这个黑匣子的三角方程感兴趣的人可以查看上图。对于那些不感兴趣的人,方程已经被编程并且可以使用pos函数来使用,该函数将 x、z 作为输入并输出与电机相对应的三个角度。
包含这些功能的程序可以在下一步中找到。
第 12 步:对 Arduino 进行编程
在对 Arduino 进行编程之前,需要对文件进行轻微修改。还记得我让你记下的常量吗?将相同的常量修改为您在constants.h文件中设置的值。
注意:如果您使用了本 Instructable 中提供的设计,则无需更改任何内容。如果你们中的一些人做了自己的设计,你将不得不更改更多的值以及偏移量。常数l1测量髋关节枢轴和膝关节枢轴之间的距离。常数l2测量膝关节枢轴和踝关节枢轴之间的距离。因此,如果您设计了自己的模型,请测量这些长度并修改常数。最后两个常数用于步态。stepClearance常数测量脚在迈出一步时向前抬起的高度,而stepHeight常数测量脚在迈步时从地面到臀部的高度。
根据您的需要修改所有常量后,您可以上传主程序。主程序简单地将机器人初始化为步行姿态并开始向前迈出一步。这些功能可以根据您的需要进行修改,以探索各种步态、速度和步长,看看哪种效果最好。
附件
人形机器人.rar
第 13 步:最终结果:实验时间
Biped 可以在不翻倒的情况下采取 10 到 2 厘米长的步幅。在保持步态平衡的同时,也可以改变速度。这种 Biped 与 Arduino 的强大功能相结合,提供了一个强大的平台来试验各种其他步态和其他目标,例如在踢球时跳跃或平衡。我建议您尝试改变腿的运动路径以创建自己的步态,并了解各种步态如何影响机器人的性能。可以将 IMU 和距离传感器等传感器添加到系统中以增加其功能,而可以将力传感器添加到腿上以在不平坦的表面上进行动态运动实验。
希望您喜欢这个 Instructable,并且足以激发您建立自己的灵感。如果您喜欢这个项目,请在“ Arduino 竞赛”中投下一票来支持它。
边栏推荐
- 水平垂直居中 方法 和兼容
- AutoLISP series (2): function function 2
- 模拟Servlet的本质
- 数据中台落地实施之法
- 网关Gateway的介绍与使用
- Introduction to ThinkPHP URL routing
- Build an all in one application development platform, light flow, and establish a code free industry benchmark
- IP地址和物理地址有什么区别
- Detailed explanation of several ideas for implementing timed tasks in PHP
- Asyncio concept and usage
猜你喜欢
如何快速检查钢网开口面积比是否符合 IPC7525
Tragedy caused by deleting the console statement
Statistical learning method -- perceptron
Balanced binary tree (AVL)
Advanced C language -- function pointer
【医学分割】attention-unet
95. (cesium chapter) cesium dynamic monomer-3d building (building)
C语言进阶——函数指针
掌握这个提升路径,面试资料分享
Personal notes of graphics (4)
随机推荐
Imitate the choice of enterprise wechat conference room
Sqlserver2014+: create indexes while creating tables
Find tags in prefab in unity editing mode
最新Android高级面试题汇总,Android面试题及答案
掌握这套精编Android高级面试题解析,oppoAndroid面试题
字节跳动Android金三银四解析,android面试题app
【Android -- 数据存储】使用 SQLite 存储数据
最新2022年Android大厂面试经验,安卓View+Handler+Binder
Opportunity interview experience summary
【DesignMode】代理模式(proxy pattern)
删除 console 语句引发的惨案
C语言进阶——函数指针
[designmode] facade patterns
在哪个期货公司开期货户最安全?
低代码(lowcode)帮助运输公司增强供应链管理的4种方式
[summary of knowledge] summary of notes on using SVN in PHP
Three. JS series (2): API structure diagram-2
【Vulnhub靶场】THALES:1
[PHP] PHP interface inheritance and interface multi inheritance principle and implementation method
作为Android开发程序员,android高级面试