六足机器人
简介
一个六足机器人,能实现全向移动,全向转弯,六自由度位姿控制。目前市面上一些六足机器人只能通过执行固定的动作组来控制机器人,这破坏了足式机器人的灵活性。因此,我开发了一套基于实时解算的步态和姿态算法。
简介:一个六足机器人,能实现全向移动,全向转弯,六自由度位姿控制。目前市面上一些六足机器人只能通过执行固定的动作组来控制机器人,这破坏了足式机器人的灵活性。因此,我开发了一套基于实时解算的步态和姿态算法。开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
项目说明
这是我的本科毕业设计,一个基于实时运动学解算进行运动的六足机器人
更新
新增机械臂用于夹取物品
整体结构框图
开源协议
GPL 3.0
项目相关功能
1. 通过遥控器控制机器人的运动
2. 控制机器人机身的姿态,位置
3. 控制移动方向,已及转弯角度(可以理解为线速度和角速度)
4. 控制机身位置和姿态的同时灵活移动
5. 不同机身位置和姿态下照样移动
项目属性
本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。
项目进度
已基本完成。
软件说明
提示:软件可以使用代码块来进行嵌套放置,无需全部软件部分说明,只需说明重要部分即可
硬件选型简述:
主控选择:
机器人运动解算对浮点运算要求比较高,如果需要运动更加平滑,则需要更多的算力,因此该六足机器人使用了支持 FPU 且性能较高的 STM32H750VBT6。
stm32H750VBT6 使用 32 位 ARM CortexM7 内核,携带双精度浮点 FPU,16KB 的数据缓存和 16KB 的指令缓存,主频高达 480MHz,在超频的情况下可达 600MHz。
核心板使用 WeActStudio 设计的 stm32H750VBT6 迷你核心板,该核心板内置了8MB 的 Quad SPI Flash 和 8MB 的 SPI Flash,提供了足够的空间用于存储机器人控制代码。该核心板提供了 SD 卡和 TypeC 接口,具有较强的拓展能力。同时串有二极管,防止电源回流。工作电压为 3.3V 到 5V。
由于 stm32H750VBT6 的片内 Flash 较少,仅仅为 128kb,装载 FreeRTOS 后已经没剩下多少空间了,因此通常需要将主体代码烧写至片外 Flash,并将 BootLoader 程序烧写至片内 Flash,通过 BootLoader 将程序跳转至存储在外部 Flash 的主体代码。
舵机选型:
为了简化接线并降低故障率,这里使用幻尔的 LX224 串口总线舵机。舵机转动精度 0.24°,扭矩为 20kg·cm(约 1.98N·m)。
供电选择:
供电方面,由于六足机器人较重,行走所需功率较高,因此这里选用放电能力较强的大功率航模电池。
遥控接收:
这里选择使用大疆的 DR16 遥控接收机,DR16 的遥控距离较远,且抗干扰能力较强。由于其使用 DBUS 电平,与串口电平相反,因此需要在配置串口的时候对逻辑电平进行取反。DR16 基于 2.4G 无线传输,具有省点,更远的传输距离,更大的带宽等特点,可以实现六足机器人的远距离控制,满足了足式机器人在复杂环境下工作的特点。工作电压为 5V
陀螺仪:
陀螺仪使用 MPU6050 模块,MPU6050 模块是 InvenSence 公司推出的 6 轴运动处理组件,内部整合用有 3 轴陀螺仪和 3 轴加速度传感器,通过 IIC 接口与外部通信,且自带数字运动处理器 DMP(Digital Motion Processor)。通过 DMP,可以大大降低单片机的运算负担,该模块被广泛应用于航模等产品。工作电压为 3.3V 到 5V。
运动学建模
这是算法是本机器人的核心,因此我在这里大概讲讲一些算法步骤,这需要一定的机器人学基础,没有基础或者对这部分不感兴趣的可以跳过啦。
六足机器人运动学分析就是将空间直角坐标系建立在机器人腿部的关节上,将腿部各关节之间的间距,关节的夹角进行关系转换,求解其位置已及姿态矩阵矩阵,从而建立机器人的运动学方程。为了确定每个关节上坐标系之间的关系,需要一种合适的方法进行运动学分析。本文使用 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个舵机的位置。
对步态算法和位置姿态控制感兴趣的可以在我的毕业论文中查询。
实物展示
机身位置控制:
(1)控制高度(z轴)
(2)控制y轴和x轴
机身姿态控制:
(1)控制Z轴
(2)控制Y轴
(3)控制X轴
设计注意事项
无
其他
视频链接
https://www.bilibili.com/video/BV1xg4y1L7wh/
工程附件:
评论