并联四足机器人项目开源教程(六)--- Cheetah开源项目的代码框架移植

在这里插入图片描述
这个是本人在大三期间做的项目 ---- 基于MIT的Cheetah方案设计的十二自由度并联四足机器人,这个项目获得过两个国家级奖项和一个省级奖项。接下来我会将这个机器人的控制部分所有代码进行开源,并配有相关的教程博客,希望能够帮助到在学习相关领域知识或者进行项目开发的同学。

MIT-Cheetah开源代码:Cheetah-Software
本项目开源代码:SCUT-Robotlab-Quadruped
秉持着分享的理念,我将该项目的所有代码进行开源,在环境配置正常的情况下(包括仿真环境),可以得到以下的运行界面。
如果本系列中的QT上位机开源代码跑通了,可以直接通过上位机进行机器人的运动控制
在这里插入图片描述

代码架构

在这里插入图片描述

这个项目是基于MIT的Cheetah开源项目进行开发设计的,引入了ROS通信网络,并且控制上进行了简化。所以项目文件中有一部分代码文件并没有调用,下面列举的是作品使用到的,比较核心的代码模块,以供参考。

1. common

Utilities

通用的算法,函数

Math

常用的数学公式,如旋转矩阵/欧拉角/四元数的相互转换。

DataType

通用的数据结构体定义

Controllers

DesiredStateCommand:遥控器数据解包转为控制指令

FootSwingTrajectory:贝塞尔曲线的代码实现

GaitScheduler:步态规划器

LegController:腿部控制器,包括数据更新以及输出控制指令

OrientationEstimator:姿态估计

PositionVelocityEstimator:位置速度估计

msg

ROS网络中的自定义消息

2. config

包含了项目所有的参数文件,采用yaml文件进行参数存储,并使用rosparam进行参数加载。

robot_parameters.yaml:机器人自身的相关属性参数

user_parameters.yaml:用户人为调节的算法参数

3. robot

机器人整体运行逻辑,主要包括了机器人启动时的数据初始化,以及制定运行过程中的各个算法执行顺序数据流向

4. sim

webots仿真环境的搭建和驱动相关文件

webots_controller:基于ROS的webots控制器,用于控制webots中机器人的各个外设的工作,以及获取各个外设和仿真环境的相关数据

5. srpq_controller

FSM_States:状态机相关代码(状态包括有运动态,站立态,被动态等,与步态的概念不同)

BalanceController:平衡控制器,模仿了WBC多任务,分优先级的思想。

SportsController:运动控制器,采用纯位控的形式进行机器人控制,也是目前实体控制唯一验证通过的算法。

convexMPC:MPC控制器

WBC/WBC_Ctrl:WBC控制器

6. ros_network

ROS通信网络,由于时间有限,本项目仅构建了三个节点,并且将所有算法在一个节点上运行,整体架构不太优雅,建议读者可以基于该架构进行重新设计一套ROS通信网络。

Control_Node:核心的逻辑控制节点,主要负责算法运行,以及数据整合

Hardware_Node:硬件通信节点,主要负责与底层主控STM32进行通信。

QT_Node:上位机通信节点

7. Model

机器人仿真模型,本项目是通过solidworks导出urdf模型,再导入webots仿真环境了。
详细内容可以参考我的笔记:sw模型生成urdf文件的详细流程

8. third_party

第三方库

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

煜个头头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值