目前四足机器人低成本高算力的主控有很多方案,主流是参考MIT的原始设计选用Upboard或者为了更快的MPC选用Upboard2,当然你也可以重新移植Spine或者采用其他伺服驱动方案这样就可以采用其他的x86平台,对于ARM平台通过对原始MPC等依赖库的重新编译MIT的代码也可以适用于如AGX、NX或者RK3399等ARM平台,当然我之前已经测试了树莓派和Odroid C4的平台,并构建了需要的
之前我采用树莓派4B构建了一个高性能、低成本的运动控制器,同时设计了一个基于STM32的伺服驱动载板来实现CAN伺服和IMU采集,最终驱动ODrive实现四足机器人的步态与力控,相关资料如下: 四足机器人高算力、低成本主控第一步:给树莓派打上RT实时补丁 上述的控制器存在如下几个问题: 1)首先树莓派4B发热很严重,导致板载IMU温飘严重,需要频繁标定陀螺仪偏差; 2)树莓派4B莫名重
在构建单片机与树莓派的通讯中,我之前已经基于中断的方式实现了较可靠的通讯,由于SPI发送中采用轮询的方式,即树莓派作为主机一直给底层发送数据,其数据长度按帧格式定义不同每次都不一样,单片机端采用SPI接收中断的方式: 四足机器人高算力、低成本主控第二步:树莓派和STM32的SPI高速通讯 if(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE)
在完成前几步主控的开发后,一个低成本高算力的实时控制器已经搭建好,当我们的控制程序框架编写完成后就可以开始进行运动控制算法的开发,对于之前提到的典型三任务架构中,control_task由于需要不断修改因此其会在调试中不断编译启动,而hardware_task在底层协议确定后基本不用修改,因此我们希望它能上电自动运行,另外navigation_task主要负责遥控和上位机通讯,在一般情况下也不需要
在STM32中我们使用USB虚拟串口完成与上位机的通讯,从而帮助我们更方便地监视机器人状态和调试参数,而在树莓派中我们已经采用Linux系统因此可以使用UDP网口来实现更高速更复杂的通讯,这里我们让树莓派作为服务器上位机作为客户端,简单来说UDP的通讯机制是客户端向服务器主动发送数据,客户端在收到数据后对其进行反馈,因此在使用UDP时我们需要先包上对应的头文件: UDP通讯的关键是二者在
对于四足机器人来说其配置参数很多,在单片机中可以使用结构体和宏定义的方式来实现参数设置,另外也可以将部分参数存储在Flash中,这样有很大的问题,一是参数顺序修改很麻烦,另外是同类参数归纳整理很麻烦,在ROS中使用ymal来管理相关参数其能很方便的显示各个参数属于哪一类并且易于移植和管理。新主控已经使用树莓派当然我们可以借助ymal来方便的管理我们的系统参数,具体流程如下: (1)安装库和依赖
1. 多任务的机器人控制软件框架 在单片机中我们可以使用计时器中断、软件调度或者直接使用嵌入式操作系统如FreeRTOS或UCOSII的方式来实现不同控制任务的定时运行,由于单片机是单核系统因此就算构建了多线程也仅仅是在某个线程sleep时主动将资源释放而言,而在树莓派中其有多个CPU能实现多核心运行,而且当很多高速运动控制任务与单一CPU内核绑定时其运行的速度和实时性都远远优于单片机的操作
在为树莓派安装好实时补丁后,它已经能够作为一个高性能控制器来代替传统的单片机或其他嵌入式系统,相比单片机除了计算能力更高外如树莓派4B为例其内部还具有GPU资源可以运行深度学习或OpenCV等单片机中无法运行的库,大大提高了机器人的运算能力和扩展能力,但相比单片机来说其实时性还是稍有欠缺,另外最大的问题的通讯接口的缺乏,如树莓派仅有串口、IIC或SPI等通讯接口,无法实现面向伺服驱动器的通讯控制,
之前开发四足机器人主要基于单片机来实现,目前STM32整体价格上升,使得后续主控制器芯片的选用十分困难,另外单片机算力对于四足机器人来说还是无法满足,目前整个机器人代码运行相比仿真中各模块已经大大降低控制频率,在Webots仿真中从状态估计到底层力控制都能运行在5ms内,而在单片机中不得不拆分开系统层级,仅保证底层力控和CAN通讯能实现2~5ms,并且控制周期会浮动,导致整个机器人控制带宽的下
四足机器人高算力、低成本主控
博客
泡泡
积分
勋章
四足机器人高算力、低成本主控第九步:构建树莓派QT交叉编译环境
四足机器人高算力、低成本主控第八步:超越树莓派4B给Odroid C4打上RT实时补丁
四足机器人高算力、低成本主控第七步:树莓派STM32 SLAVE 从机SPI通讯优化基于DMA高速可靠交互
四足机器人高算力、低成本主控第六步:程序自启动
四足机器人高算力、低成本主控第五步:UDP网络通信与上位机
四足机器人高算力、低成本主控第四步:控制参数和系统参数的YMAL管理
四足机器人高算力、低成本主控第三步:共享内存实现多核运行
四足机器人高算力、低成本主控第二步:树莓派和STM32的SPI高速通讯
四足机器人高算力、低成本主控第一步:给树莓派打上RT实时补丁
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信