四足机器狗整机关节控制-CAN/FD总线架构及分析

写在最前面

四足机器狗的控制已经成熟到顶了,没什么好写的。为了系列文章的完整性还是简单写一下,主要重点做CAN总线性能瓶颈分析,以及升级到CANFD后如何进行优化设计。

更多机器人本体控制总线分析,请关注系列文章:

《具身神经-机器人运控通讯架构与实现系列》

典型的四足机器狗控制架构(MIT Cheetah)

开源的MIT Cheetah四足机器狗可以说现存主流机器狗方案的鼻祖

采用了4条CAN2.0总线,分别控制4条腿,每条腿3个关节电机(包括后续小米的铁蛋,都是同样的方案)。
图源:王崇卫 《MIT四足机器人MIT Cheetah的硬件框架》

电机控制需求

整机4条腿,每条腿3个关节,总共12个关节电机

电机控制频率1KHz

关节控制命令:8字节

关节状态上报:5字节

CAN2.0总线负载率计算

关节电机采用CAN2.0 1Mbps波特率,每条总线控制3个电机

|-------------|----------|----------|--------------|
| CAN数据长度 | 单帧耗时 | 帧/每秒 | 总线占用时间/S |
| 8字控制命令 | ~110us | 1000*3 | 330ms |
| 5字节电机回复 | ~85us | 1000*3 | 255ms |
| 合计 ||| ~585ms |

总线负载率:约58.5%

总线通讯帧率: 6000帧/秒

其他条件不变,如果电机回复状态也采用8字节,总线负载率约为 66%

为保证CAN总线实时性,减少竞争,负载率不能过高(一般控制在50%-80%)。MIT方案控制CAN总线负载率在60%左右,是比较合理的。

以上计算和分析也解释了为什么使用CAN2.0总线的机器狗,几乎都采用4组CAN总线,一条总线控制一条腿的3个电机。(再多确实CAN2.0总线带宽不够了)

基于CANFD优化控制方案

虽然采用4路CAN2.0总线控制12关节的方案在四足机器狗领域应用以及非常成熟。但随着机器狗功能性越来越多样化,背挂执行器和传感器的增加,使得4路CAN2.0总线还是力不从心。

1M/5M CANFD单路可控2条腿

如果通讯协议不变,仅升级CAN2.0 1Mbps波特率到CANFD 1M/5M波特率

单路CANFD总线可轻松控制2条腿,6个电机,下面计算负载率(为了考虑余量,电机回复也采用8字节)。

|-------------|----------|----------|--------------|
| CAN数据长度 | 单帧耗时 | 帧/每秒 | 总线占用时间/S |
| 8字控制命令 | ~50us | 1000*6 | 300ms |
| 8字节电机回复 | ~50us | 1000*6 | 300ms |
| 合计 ||| ~600ms |

总线负载约:60%

总线通讯帧率:1.2万帧/秒

可以看出升级到CANFD 1M/5M 波特率后,单路总线控制6电机也完全没有压力。

如果还是采用4条CANFD总线,剩余2条可以考虑接其他外挂的机械手等执行器,也可以考虑做控制冗余。

相关推荐
爱睡觉的王宇昊8 分钟前
单体架构详细解析:从概念到实践--购物网站搭建
java·spring boot·架构·团队开发·个人开发·敏捷流程
许泽宇的技术分享3 小时前
解密Anthropic的MCP Inspector:从协议调试到AI应用开发的全栈架构之旅
人工智能·架构·typescript·mcp·ai开发工具
Jason_zhao_MR4 小时前
米尔RK3506核心板SDK重磅升级,解锁三核A7实时控制新架构
linux·嵌入式硬件·物联网·架构·嵌入式·嵌入式实时数据库
シ風箏4 小时前
Flink【基础知识 01】简介+核心架构+分层API+集群架构+应用场景+特点优势(一篇即可大概了解Flink)
大数据·架构·flink·bigdata
Psycho_MrZhang5 小时前
Airflow简介和架构
架构·wpf
IT知识分享5 小时前
中科天玑全要素AI舆情系统功能、架构解析
人工智能·语言模型·架构
没有bug.的程序员6 小时前
微服务基础设施清单:必须、应该、可以、无需的四级分类指南
java·jvm·微服务·云原生·容器·架构
郑州光合科技余经理6 小时前
海外国际版同城服务系统开发:PHP技术栈
java·大数据·开发语言·前端·人工智能·架构·php
-大头.7 小时前
数据库高可用架构终极指南
数据库·架构
喜欢吃豆8 小时前
下一代 AI 销售陪练系统的架构蓝图与核心技术挑战深度研究报告
人工智能·架构·大模型·多模态·ai销售陪练