软硬件架构设计
硬件系统设计
一个完整的机器人系统,不仅需要稳定的机械结构,还要有可靠的硬件系统。硬件系统作为软件架构的载体,为机器人提供能源、动力、编程接口和感知能力。为了满足在不同环境下机器人仍能独自运行的需求,本课题所设计的轮足机器人应具备无线通信能力。整个硬件系统的电路架构与信号传输线路如图1所示。
本课题所设计的轮足机器人具有4个髋关节电机和2个驱动轮电机,在本硬件系统中,使用CAN通讯作为通讯协议,波特率为1Mbps,使用标准数据帧报文格式。每个髋关节电机需要单独的控制报文进行控制,驱动轮电机可以使用广播的形式控制,仅需一个控制报文即可控制最多4个驱动轮电机。每一个髋关节电机和驱动轮电机的CAN通讯反馈报文频率均为1KHz。为了满足机器人的高动态需求,机器人的控制频率也为1KHz。结合CAN通讯相关知识可知,单个标准数据帧的Bit长度在108 ~ 123之间。CAN通讯协议的总线负载率计算公式为:
式中, 代表总线负载率, 代表总线上每秒实际传入的Bit数量, 表示总线波特率。
若将4个髋关节电机与2个驱动轮电机挂载在同一CAN总线上,在一个控制周期内,CAN总线上存在5个控制报文和6个反馈报文,此时CAN总线的最低负载率为118.8%,不可能实现稳定的通讯,即将所有电机挂载在同一CAN总线上是不允许的。因此,本硬件系统使用两路CAN总线,CAN1为髋关节电机通讯总线,CAN2为驱动轮电机通讯总线,确保了主控板与电机通讯的稳定性。
机器人的IMU选用BMI088,具有一个16位三轴加速度计和一个16位三轴陀螺仪。芯片自带温度补偿、数字信号处理和自检功能,简化了系统集成。通过SPI通信方式与主控板进行通讯,使用Mahony姿态解算算法以1KHz的频率计算欧拉角数据。
软件架构设计
嵌入式实时操作系统FreeRTOS
本课题所研究的轮足机器人的软件核心由多个模块组成。各个模块之间具有弱耦合性,负责机器人不同的控制任务。为了保证机器人在控制上的稳定性,严格规定各个模块之间的调度逻辑是十分重要的。
在嵌入式行业内,嵌入式实时操作系统已获得了日益广阔的应用。使用实时操作系统(RTOS, Real time operation system)能够更合理、更高效地使用CPU的资源,并改善了应用软件的设计,从而减少了操作系统的工作时间,更良好地保证了系统的实时性与可靠性。因此大多数操作系统都容许多种程序在一起运行,称为多任务处理。实际上,每个处理器核心在任何给定时间点只能运行单个执行线程(图2)。调度程序作为操作系统的一部分,负责决定何时运行哪个程序,并通过在每个程序之间快速切换来提供同时执行的假象。RTOS中的调度程序旨在提供可预测的执行顺序。这对于嵌入式系统尤其重要,因为嵌入式系统通常具有实时要求。实时要求是指嵌入式系统必须在严格定义的时间内响应特定事件。只有可以预测操作系统调度程序的行为,才能保证满足实时要求。
由于RTOS需占用一定的系统资源,只有少数实时操作系统能在小RAM单片机上运行。本课题所选用的FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。