Skip to main content

开源四足机器人 HcrtDog

项目地址:https://github.com/yltzdhbc/HCRT-DOG


预览

Example banner

项目简介

Jump

本项目是一个并联式的四足机器人 每条腿使用了两个电机驱动共四条腿,八个电机期望实现四种步态,从慢到快依次为,行进步态(三足支撑)、小跑步态(两拍步态)、溜蹄步态、疾驰步态。

硬件开发环境:

元件型号说明
主控制板RM开发板A型STM32F427IHT6
无刷电机RM3508220W 5N.m
电机驱动C620CAN总线连接
动力电源Dji TB4722.2v 4500mah

软件开发环境:

类目内容说明
操作系统Windows支持keil的平台都可以
编译软件keil mdk 5使用stm32CubeMx生成代码
编程语言C使用FreeRtos嵌入式操作系统

该软件遵循MIT开源协议,作者保留版权,无任何其他限制,但是你必须在你的软件中包含原MIT授权协议的声明。由于本人时间、能力有限,有许多不足之处,欢迎在GitHub的Issues中留言

我的博客:https://yltzdhbc.top/HCRT-DOG/

github: https://github.com/yltzdhbc/HCRT-DOG

gitee: https://gitee.com/yltzdhbc/HCRT-DOG

zhengti

项目视频

跳跃测试

场地测试

Webots仿真(更新)

相关开源项目

@感谢国内外各种开源项目、社区,在本项目中遇到过很多困难,很多次觉得无助,想放弃的时候,看见前人已经做出来的成果,就觉得有方向在前面,想要追求的东西,有人做出来过,可以实现,努力就可以做到,而且要把它做大做好 ,这个希望一直支撑着我走到现在。但我们的四足很多地方都还不够完美,甚至说不上好,做机器人是我的梦想,有机会的话,还是会将他做下去。

斯坦福Doggo

地址:https://github.com/Nate711/Doggo

这是一个非常优秀的低成本(相对来说)无刷电机开源四足机器人,采用的纯位置控制,不涉及到力控,这对于新手入门来说十分友好,代码逻辑清晰,框架接口合理。

MIT Mini Cheetah

知乎大神的介绍:https://zhuanlan.zhihu.com/p/79391139

Mini Cheetah完整代码 :https://github.com/mit-biomimetics/Cheetah-Software

这是前段时间很火的一款无刷电机关节式的狗,在视频里可以看到性能非常好。

Ghost minitaur

地址:https://gitlab.com/ghostrobotics

minitaur是我们四足机器人的结构参考,当时跟结构组的同学看到他们的视频时候,立马就拍板 觉得能做,因为有改项目引路,所以在结构大方向上没有出现很大的问题,不过遗憾的是,这个项目已经商业化了,ghost公司有这一款机器人的售卖,开放SDK。

​ 该机器人为我在湖北工业大学竞技机器人团队(HBUT Competitive Robot Team)时设计的一款四足机器人,通过仿真测试,该四足机器人能实现慢步、快步以及跑步等步态,并可完成“过排管”、“跳高栏”等系列动作,机器马的站立尺寸为440x330x200(长x宽x高),质量为8.9KG.

HCRT-DOG v2结构介绍

​ 这里是v2版本相对于v1版本的改进。

​ 机器马整体采用铝合金和发泡材质相配合,采用螺栓连接方式,这样设计的优点是在受力位置铝合金可以更好的进行受力并且没有明显形变,在缓冲位置,利用发泡材料的吸能特性,可以更好地保护我们的元器件不受损伤。下图为机器马整体效果图。

zhengshi

深沟球轴承

采用深沟球轴承的结构,避免电机轴直接受力。

shengouqiu

​ 图中箭头位置是一个深沟球轴承,该轴承内侧和与电机轴相连的法兰盘直接配合,深沟球轴承的径向载荷特点,不但可以承受一定的径向力,还可以根据轴承特性起到一定的联轴器的作用,经过计算得出结果,我们选择的这款深沟球轴承可以完全承受四足机器人运动时带来的径向力。并且使用深沟球轴承作为联轴器,大大减小了联轴器的体积,让腿部结构更紧凑,并且可以有余地去设计更多的腿部结构。

旋转副结构

xuanzhuanfu

大腿与小腿之间使用直径为10mm的塞打螺钉(黄色箭头)和相对应的防松螺母作为旋转副连接,还设计了两个碳纤维垫圈(绿色箭头),通过3mm螺钉进行固定,保证了轴承、小腿与大腿连接处之间的轴向固定。此外我们在小腿连接处安装了两个深沟球轴承(红色箭头)保证了小腿部分的运动相对流畅,使其运动性能提升。同时,为了保证两杆之间没有相对接触使其旋转流畅,我们选择了内径为10mm,外径为24mm厚度为4mm的平面推力轴承(蓝色箭头),根据该轴承特性我们安装在大腿与小腿两杆之间,采用间隙配合的方式与塞打螺钉配合,经过多次试验,我们确定该旋转副结构稳定可靠且顺滑。

类“马蹄”部位的设计

mati

​ 马脚的采用了类似“马蹄”结构的设计,能有效保护机器马腿部触底的结构,底部与小腿之间利用一块铝合金侧板(绿色箭头)进行连接,可更换的模块化设计,以便于在“马蹄”结构或者马腿结构出现损坏时,可以及时得进行更换,解决一些突发问题。

​ 此设计还增大底部触地部分与地面的接触面积,这样可以使四足机器人在行走的时候更加平稳,不易发生打滑或者侧翻的情况。

​ 马蹄部位采用了小腿两杆的连接使用的也是直径为10mm的塞打螺钉(黄色箭头)以及相对应的防松螺母,利用一个碳纤维圆形带孔垫圈确保它们的轴向位置的固定。靠近底部与小腿的连接板部分还使用了两个深沟球轴承(红色箭头),保证小腿稳定顺滑地运动。小腿两杆之间我们选择的也是内径为10mm,外径为24mm厚度为4mm的平面推力轴承(蓝色箭头)采用间隙配合的方式与塞打螺钉配合,经多次检验,该部分可以正常平滑地运动。保证整体运动的流畅性和协调性。

扭矩辅助系统

niuju

​ 在八个机身和腿部连接处之间,我们加入了八个扭簧,既扭转弹簧,扭簧两个端部分别与四足机器人的机身和腿部相连,首先扭簧可以提供一定的支持力,在机器人没有启动时,可以利用扭簧提供的力量让机器人站立并且起到限位的作用,让电机即使断电也不会改变其初始位置。然后扭簧在机器人运动时,由于其可以抵消四足机器人机架的重量,所以电机只需要克服扭簧带来的反作用力即可完成所需动作,减小了电机的负载。并且扭簧本身就是一个储能机构,它可以把电机前期给他的力在完成例如跳跃等动作时释放,让四足机器人的性能得到一个极其显著的提升。

HCRT-DOG 控制系统

基本步态(Standard Gaits)

基本步态是指较为实用的步态,包括慢步(Walk)、快步(Trot)、跑步(Gallop)。其中,慢步(Walk)步态为低速步态,跑步(Gallop)步态为高速步态,快步(Gallop)步态则适用于中低速运动。

上述三种步态之间的切换可以通过改变其摆动相占空比ρ和相位差φ来实现。摆动相占空系数ρ表示每条腿的摆动相时间占一个步态周期的比值。相位差则表示腿部运动的相对时间差占整个步态周期的比例。为了方便表示,我们选择左前腿为参考腿,即φLF = 0。同时定义该四足机器人左前、左后、右后、右前四条腿序号分别为:0、1、2、3。

慢步(Walk)

慢步步态特征是四条腿依次离地、着地,在任意时刻至多只有一条腿处于摆动相。在一个周期内,四条腿按照一定的次序轮换向前。这里的慢步步态使用的轮换次序为:1→0→2→3→1,呈倒8字型。如图所示。为了满足任意时刻至少有三条腿处于支撑相,需使得摆动相占空比0.25≥ρ>0,同时易得四条腿的相位差φ:

φLF = 0 ;φLB = +0.75 ; φRB = +0.25 ; φRF = +0.5 ;

*通过确定摆动相占空比ρ与相位差φ

walk

快步(Tort)

快步(Tort)步态适用于中低速运动,稳定且具有高能量效率的优势使得Tort步态成为了四足机器人最常用的步态。其步态特征为对角前后两条腿同时离地、着地,在一个周期内,两组对角腿交替跃进,其跃进次序为:1-3→0-2→1-3。如图所示。由于步态的对称性,各腿的相位差为:

φLF = 0 ;φLB = +0.5 ; φRB = 0 ; φRF = +0.5 ;

理论上快步(Tort)步态的摆动相占空比ρ处于(0,1)范围,当ρ<0.5时,存在四条腿均处于支撑相的状态,当ρ>0.5时,存在四条腿均腾空的状态。通过确定ρ<0.5,我们可以得到此时的快步步态时序图,如图所示。

trot

跑步(Gallop)

跑步步态为高速运动步态,其步态特征为:首先先以一后腿着地,之后第二条后退与之对角前腿同时着地,最后另一条前腿着地。依据最后落地腿的左右将跑步步态分为为左跑步、右跑步。若为左跑步,其步态时序为:2→1-3→0→2,若为右跑步,步态时序则为:1→0-2→3→1。这里以左跑步为例,得到跑步步态的相位差,如图所示。

φLF = 0 ;φLB = +0.666 ; φRB = 0.333 ; φRF = +0.666 ;

gallop

跳跃(Jump)

跳跃动作没有步态时序,现在使用条腿同时驱动以获得最大的动力,跳跃过程中足端的轨迹使用了贝塞尔曲线,在落地的时候前腿会向前,后腿向后伸长身体,达到平衡效果。

jump

电机与力柔顺

由于我们坚持使用DJI3508电机,使得机器人的总成本不到一万,跳跃高度1m,最远跳跃距离2,8m,以一种廉价的方式实现媲美众多开源项目的性能。但也正是由于3508电机,没能实现直接力控,无法探测足端力,导致行走跳跃过程中动作不连贯,其次在起跳以及落地的过程中,机器人智能按照预定的轨迹执行动作,无法实时根据自身状态调整。因此,足端力传感器是一个必要的部件,四足机器人力柔顺,也是热门研究问题之一。

虚拟模型控制方法

MIT 的Leg Lab总结出一种直觉控制方法一一虚拟模型控制方法(VMC),其核心为利用虚拟构件如弹簧、阻尼器等来连接不同的作用点,将VMC完全扩展到四足机器人的全局控制中并统一支撑相和摆动相的控制,是发展的一大核心问题。在足端柔顺方面,结构上可以更换柔性足端,控制上可以在足端构建虚拟的“弹簧-阻尼器”模型,实现主动柔顺控制。

四足机器人的未来

​ 四足机器人的发展、成熟、产业化是必然趋势,当今的四足机器人产业犹如2010年左右的无人机市场,各种四足机器人如雨后春笋似的被研发出来,商业公司犹如波士顿动力、宇树科技,开源的有mit猎豹、斯坦福doggo,正因如此,四足机器人领域在近几年也迅速发展,出现了基于虚拟腿控制、生物神经网络控制等一系列控制方法,不少方法都被广为应用。该领域研究较少,机会众多,广大机器人学子可以以此为研究方向。

​ 正是由于国内外众多的开源项目,我们的机器人研发起来才有迹可循、有章法可依,我一直以为开源是真正的学者精神,正因知识的分享,才能促使有更多的人参与进来,众人石材火焰高,组委会每年举办机械马术赛也正是因为如此,因此,深受开源精神的影响,我们的第一版机器人已经开源,GITHUB:https://github.com/yltzdhbc/HCRT-DOG

GITEE: https://gitee.com/yltzdhbc/HCRT-DOG ,希望为社区做一些微薄的贡献,也希望更多人加入到开源社区中开,期待国内的四足机器人做到世界顶尖的一天!

重要更新记录

V0.0.1版本

2019.3.16更新,于湖北工业大学

  • 重新构建了腿部轨迹计算逻辑,将其分为三层,依次传递参数,使逻辑清楚,重 复利用率高,并且为以后复杂的步态提供接口函数,将参数写入数组里,通过修改 参数生成不同的足部轨迹
  • 重新构建了调试函数,加入了步态控制,使用上位机发送命令,控制机器人的停 止和启动,预留了其他姿态的接口,方便以后完善

V0.0.14版本

2019.3.25更新,于湖北工业大学

  • 更新了新的结构体参数,使每一种步态以参数的形式储存在数组里面,更新步态 的时候只需要改变参数即可
  • 增加了串口调试的通用性,可以在串口里面切换不同的步态
  • 第一次下地测试结果比较理想,预计现有的pid对于walk步态问题不大,但是在 高速运行的时候,可能会有些问题,下个版本中增加pid参数化调节,在程序的入 口处给出pid参数,每一种步态使用不同的pid参数达到稳定和性能的平衡

V0.0.23版本

2019.4.28更新,于湖北工业大学

  • 成功的使用了惯性导航来保证由机械误差所引起的方向误差,使用了一个PID 解决了爬坡步态问题,使用一个高频率小跑,使用方向纠偏可以完整的实现不 偏的上坡,但是上坡的时候需要将机身后退升高前腿降低,将步态水平线方向 逆时针旋转15度以适应坡角,减少摩擦力不足引起的打滑现象

V0.0.45版本

2019.5.17更新,于柳州市李宁体育馆

  • 成功解决Dji3508控制问题,发挥出电机的最大力量。

V0.0.87版本

2019.6.1更新,于邹城市体育馆

  • 实现比赛效果的完美飞跃,全程使用跳跃过障碍,仅用时32s。

V1.0.0版本 (第一个开源版本)

2019.10.6更新,于湖北工业大学

  • 重新整理程序逻辑,优化注释

  • 基本解决已知问题,撰写文档