17自由度人形机器人实现行走功能
1. 功能说明
本文示例将实现R307样机17自由度人形机器人行走的功能。该项目利用探索者平台制作,其驱动系统采用伺服电机。

2. 仿人形机器人结构设计
人型机器人是一种旨在模仿人类外观和行为的机器人(robot),尤其特指具有和人类相似肌体的种类。常见一个包含完整四肢和头部运动的机器人需要17个自由度,每条腿有5个自由度;两条手臂共6个自由度,每条手臂3个自由度;头部1个自由度,全部一共17个自由度。

串联人形机构:串联人形仿生机器人是由多个 舵机关节模组【https://www.robotway.com/h-col-121.html】 组合而成的,类似于多个串联机械臂组装而成。

3. 仿人形机器人运动算法
人形机器人行走主要依靠腿部的运动,同时可以通过甩臂等动作调整平衡姿态,所以人形机器人的步态规划主要看腿部各关节的协调,下面给大家列一个10自由度人形双足机器人的前进步态:
这里为了方便分析,将双足简化成如下图所示,其中每条腿包含一个两自由度的髋关节,共两个自由度A和B,A左右摆动、B为前后摆动;一个自由度的膝关节C,为前后摆动;两个自由度的踝关节D和E,D为前后摆动、E为左右摆动。

正面图:第一步通过左右倾斜让左腿脱离地面,注意保持上半身的水平。调整A/A1、E/E1:

侧面图:第二步左腿抬起,右腿回到初始位置。调整B、C、D:

侧面图:第三步右腿向前弯曲,使身体前倾,让左脚落地,为下一步右腿迈步做准备:

正面图:第四步通过左右倾斜让左腿脱离地面,注意保持上半身的水平。调整A/A1、E/E1(注意这一步之前左脚落地后绷直):

侧面图:第五步右腿抬起,左腿回到初始位置。调整B1、C1、D1:

侧面图:第六步左腿向前弯曲,使身体前倾,让右脚脚落地,为下一步左腿迈步做准备:

提示:在上面的步态描述中所画的图都以每一步最全面的角度为准,所以大家不要在意视图,注意步态。
4. 电子硬件
本实验中采用了以下硬件:

电路连接:
1~17号舵机接线如下:
D1、D2、D3、D4、D7、D8、D9、D18、D19、D20、D21、D23、D24、D25、D26、D27、D5

5. 功能实现
上位机:Controller 1.0
下位机编程环境:Arduino 1.8.19
5.1示例程序
下面提供一个17自由度人形机器人行走前进的参考例程(_17servo_human.ino),将参考例程下载到主控板中:
5.2 调试
双击打开Controller 1.0.exe。将波特率与串口设置好,同时留下1、2、3、4、5、7、8、9、18、19、20、21、23、24、25、26、27几个舵机串口,调试舵机角度。具体操作步骤可参考 【U002】如何驱动模拟舵机-Controller 1.0b软件的使用【https://www.robotway.com/h-col-129.html】 。

将几个舵机的角度调试好并记录下来,将调试好的舵机角度写到对应例程(_17servo_human.ino)中的位置;下图所示是角度,大家可尝试自己更改角度值使其动作看起来更流畅。

提示:17自由度人形机器人行走调试并不只是通过程序去调整步态和舵机角度,还涉及到重心的调整,重心可以通过编程调整,也可以通过调整结构实现。
6. 资料下载
资料内容:
①行走-例程源代码
②行走-样机3D文件
③Controller1.0b资料包
资料下载地址:https://www.robotway.com/h-col-208.html
想了解更多机器人开源项目资料请关注 机器谱网站 https://www.robotway.com