第六章、实体机器人平台软硬件组成与分析
- 介绍
- 一、底盘主控板
- 二、微型PC(控制系统)
- 1. 与上位机pc的关系
- 2. 与STM32主控板的关系
- 3. 总结
介绍
自下而上的分析实体机器人(差分轮速机器人)搭建中的关键过程。
一、底盘主控板
本部分搭建实体机器人ros底盘:与ros相关的控制系统部分。
底盘上的STM32主控板需要拥有如下处理功能。
执行机构: 两个直流电机带动主动轮。
驱动系统:
- 电源子系统:维护整个机器人的电源需求
- 电机驱动: 电机驱动模块(控制信号 - > 电信号) + 电机控制模块 (电信号 -> 控制信号)
- 传感器接口:超声波、编码器
- 遥控器等
驱动系统负责驱动执行机构。
二、微型PC(控制系统)
常用的开发板有树莓派,RK3399,firefly等等,很多传感器:比如视觉的和激光雷达,都是直接与嵌入式开发板硬件连接进行数据交互。
1. 与上位机pc的关系
如果说教育机器人,我们或许需要所谓的上位机pc;但是做成产品之后,很多功能编译成包之后,就直接落实到嵌入式开发板上了。
开发板上需要安装ubuntu + ros,通过ros的远程分布式通讯机制实现与上位机pc的通讯。
上位机pc可以承担一部分可视化与需要高耗能的功能如视觉、SLAM、导航等。
2. 与STM32主控板的关系
通过串口进行通讯,按照对应的通讯协议。
开发板下发机器人运动的速度指令
机器人上传里程计、超声波等传感器信息。
与stm32主控板通讯,可以用一个**ros控制端节点:ros_controller
**来进行管理。
该节点实现以下两个功能:
- 订阅速度控制指令
/cmd_vel
, 通过串口发送速度控制指令,实现MRobot运动 - 通过串口读取编码器信息,实际速度,发布机器人里程计odom信息与TF
3. 总结
整个机器人系统(面向移动机器人),分为四大块:
- 控制系统
- 主控板
- 执行机构
- 传感器
第一部分: 控制系统
- 控制系统的硬件体现:
机器人身上装载的PC。通常可以被称为上位机。
小型机器人通常用微型pc,比如上述提及到的树莓派,RK3399,firefly;大型机器人比如无人车等,通常使用工控机 - 控制系统的软件功能:
通讯层面:
与底层主控板进行通讯,通常是网口,串口,usb等方式。传输的内容为:向下传输控制指令(力)。
接受底层主控板通过传感器回传的关节状态信息:比如编码器回传的速度和位置信息
功能层面:
识别、导航、抓取、建图等软件功能。其中最本质的是机器人能够移动来进行交互。导航功能是不可或缺的一部分。之后的导航教程也会详细讲解ROS下的导航实现。
第二部分:主控板
- 硬件体现:通常是stm32这种嵌入式小板子,通过串口与控制系统进行数据传输。
- 软件体现:将控制系统下传的控制指令,转换为执行机构需要的电信号
第三部分:执行机构
- 硬件体现:电机(移动机器人)、气压、液压(工业)
- 软件体现:PWM驱动板,各种驱动器等
第四部分:传感器
传感器种类很多,我们根据他获取信息的方式大致分为內受形和外感形
内部(预测): 编码器,陀螺仪,加速度计
外感(观测):激光雷达,各种相机,红外,超声
编码器的数据通常由主控板处理,然后发送给控制系统。
IMU、Lidar、camera,通常直接传给控制系统来做数据分析与处理。