龙空技术网

600小时,手搓六足机器人,超丝滑,全开源了!分析一下核心算法

嘉立创EDA 5846

前言:

眼前咱们对“stm32自平衡车论文”大概比较讲究,你们都想要学习一些“stm32自平衡车论文”的相关文章。那么小编在网络上汇集了一些有关“stm32自平衡车论文””的相关知识,希望各位老铁们能喜欢,兄弟们快快来学习一下吧!

这是我见过最像活物的机器人!

像不像是在喘气?

开源项目描述

这是一个六足机器人,它可以:

1.全向移动

真好,这灵活程度,直接打败全网80%打工人(一站起来就两眼一黑的那种)

2.机身位置控制

让我们有请舞者——六足!带来一首舞动奇迹!

3.机身姿态控制

请注意,刚刚只是热身!

现在舞者六足将展示更高超的技术——“锁舞”!来吧!展示!

4.任意姿态走路

如果说,前面小车只展示了丝滑的一面。

那么从这里开始,小车开始真正的,无限接近的,像个——“活物”

甚至,它走累了还会喘气??

有这样的“电子宠物”能带出门,那才叫威风呢!

5.姿态平衡

接下来,就是绝技展示了:

什么?这样都不倒?这比云台还稳啊!

等等!我看到了什么!

其实它上面还有一碗水一滴都没洒出来!

哎哎哎,你囊他干什么……

啊?啊?这底盘比我都啊……

最重要的是,这真的只是作者的毕业设计吗?真的只花了600个小时就完成了?

我和你们这些学霸拼了!!

整体结构框图

整体结构框图

软件部分框图

目前项目已全开源。

——如何实现上面的丝滑效果?如何实现上述功能?机器人使用了什么算法?硬件选型又有什么注意事项?

下面咱们一一梳理一下!

运动学建模

这个算法是六足机器人的核心。

因此我在这里大概梳理一下算法步骤。

提示:这需要一定的机器人学基础,没有基础或者对这部分不感兴趣的可以跳过啦。

六足机器人运动学分析就是空间直角坐标系建立在机器人腿部的关节上。

将腿部各关节之间的间距关节夹角进行关系转换,求解其位置以及姿态矩阵,从而建立机器人的运动学方程。

为了确定每个关节上坐标系之间的关系,需要一种合适的方法进行运动学分析。

本文使用 DH 建模法

该方法使用其次变换矩阵来描述机械臂上各个连杆之间的空间关系。

每一个关节都可以通过一个四阶的齐次变换矩阵表示,按照连杆顺序对齐次变换矩阵相乘,从而得出首末坐标系之间的关系,构建一支运动学坐标系。

首先对单腿进行建模。

以腿部为原点,如下图所示,以腿部起始端为原点,建立空间直角坐标系。

建模方法使用D—H建模法。该方法主要应用于机器人运动学,在每个连杆上建立一个坐标系,通过齐次坐标变换实现两个连杆坐标的变换,多次使用其次坐标变换,便可建立首末坐标系的关系[3]。

使用 D-H 建模法,即可构件一支运动学坐标系。

以腿部起始端为 0 系,“起始端 舵机 1”为 1 系,“舵机 1 舵机 2”为 2 系,“舵机2 舵机 3”为 3 系,“舵机 3 腿末端”为 4 系。

记舵机 1 到舵机 2 的轴间距为 L1,舵机 2到舵机 3 的轴间距为 L2,舵机 3 到腿末端的轴间距为 L3,则 DH 参数如下表所示。

正运动学解算:

逆运动学解算:

正逆运动学解算贯彻整个机器人运动算法,在完成步态规划后都要进行正逆运动学解算求解出机身18个舵机的位置

对步态算法和位置姿态控制感兴趣的可以在我的毕业论文中查询

物料准备

如何让机器人运行更丝滑?这5个主要物料非常重要!它们有什么优点?设计过程中,有什么注意事项?下面一一说明一下!

——下文物料包括主控、舵机、供电、遥控器接收、陀螺仪。

1.主控

机器人运动解算对浮点运算要求比较高,如果需要运动更加平滑,则需要更多的算力。

因此该六足机器人使用了支持 FPU 且性能较高的 STM32H750VBT6

该核心板提供了 SD 卡和 TypeC 接口,具有较强的拓展能力。同时串有二极管,防止电源回流。工作电压为 3.3V 到 5V。

需要注意的是:由于 stm32H750VBT6 的片内 Flash 较少,仅仅为 128kb,装载 FreeRTOS 后已经没剩下多少空间了,因此通常需要将主体代码烧写至片外 Flash,并将 BootLoader 程序烧写至片内 Flash,通过 BootLoader 将程序跳转至存储在外部 Flash 的主体代码

2.舵机选型

为了简化接线并降低故障率,这里使用幻尔的 LX224 串口总线舵机。

舵机转动精度 0.24°,扭矩为 20kg·cm(约 1.98N·m)。

3.供电

供电方面,由于六足机器人较重,行走所需功率较高,因此这里选用放电能力较强的大功率航模电池

4.遥控接收

这里选择使用大疆的 DR16 遥控接收机。DR16 的遥控距离较远,且抗干扰能力较强

由于其使用 DBUS 电平,与串口电平相反,因此需要在配置串口的时候对逻辑电平进行取反

DR16 基于 2.4G 无线传输,具有省点,更远的传输距离,更大的带宽等特点。

可以实现六足机器人的远距离控制,满足了足式机器人在复杂环境下工作的特点。

工作电压为 5V

5.陀螺仪

陀螺仪使用MPU6050模块

MPU6050模块是 InvenSence公司推出的6轴运动处理组件,内部整合用有 3 轴陀螺仪和 3 轴加速度传感器,通过 IIC 接口与外部通信,且自带数字运动处理器DMP(Digital Motion Processor)。

通过 DMP,可以大大降低单片机的运算负担,该模块被广泛应用于航模等产品。

工作电压为 3.3V 到 5V。

设计图

原理图

原理图

PCB图

项目说明

开源协议:GPL 3.0

这是我的本科毕业设计,一个基于实时运动学解算进行运动的六足机器人

制作初衷是——目前市面上一些六足机器人只能通过执行固定的动作组来控制机器人,这破坏了足式机器人的灵活性。因此,我便开发了一套基于实时解算的步态和姿态算法

本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。

如需要电路、外壳文件等资料,进行DIY参考学习,可以在参考资料处查看,都开源了的~

参考资料:

[1]

— 完 —

嘉立创EDA·头条号

关注我,看一手优质开源项目

标签: #stm32自平衡车论文