介绍

自下而上的分析实体机器人(差分轮速机器人)搭建中的关键过程。

一、底盘主控板

本部分搭建实体机器人ros底盘:与ros相关的控制系统部分。

底盘上的STM32主控板需要拥有如下处理功能。

执行机构: 两个直流电机带动主动轮。
驱动系统:

  1. 电源子系统:维护整个机器人的电源需求
  2. 电机驱动: 电机驱动模块(控制信号 - > 电信号) + 电机控制模块 (电信号 -> 控制信号)
  3. 传感器接口:超声波、编码器
  4. 遥控器等

驱动系统负责驱动执行机构。

二、微型PC(控制系统)

常用的开发板有树莓派,RK3399,firefly等等,很多传感器:比如视觉的和激光雷达,都是直接与嵌入式开发板硬件连接进行数据交互。

1. 与上位机pc的关系

如果说教育机器人,我们或许需要所谓的上位机pc;但是做成产品之后,很多功能编译成包之后,就直接落实到嵌入式开发板上了。

开发板上需要安装ubuntu + ros,通过ros的远程分布式通讯机制实现与上位机pc的通讯。

上位机pc可以承担一部分可视化与需要高耗能的功能如视觉、SLAM、导航等。

2. 与STM32主控板的关系

通过串口进行通讯,按照对应的通讯协议。
开发板下发机器人运动的速度指令
机器人上传里程计、超声波等传感器信息。


与stm32主控板通讯,可以用一个**ros控制端节点:ros_controller**来进行管理。
该节点实现以下两个功能:

  1. 订阅速度控制指令/cmd_vel, 通过串口发送速度控制指令,实现MRobot运动
  2. 通过串口读取编码器信息,实际速度,发布机器人里程计odom信息与TF

关于ros_control的详细内容,可以参考教程

3. 总结

整个机器人系统(面向移动机器人),分为四大块:

  1. 控制系统
  2. 主控板
  3. 执行机构
  4. 传感器

第一部分: 控制系统

  • 控制系统的硬件体现:
    机器人身上装载的PC。通常可以被称为上位机。
    小型机器人通常用微型pc,比如上述提及到的树莓派,RK3399,firefly;大型机器人比如无人车等,通常使用工控机

  • 控制系统的软件功能:
    通讯层面:
    与底层主控板进行通讯,通常是网口,串口,usb等方式。传输的内容为:向下传输控制指令(力)。
    接受底层主控板通过传感器回传的关节状态信息:比如编码器回传的速度和位置信息
    功能层面:
    识别、导航、抓取、建图等软件功能。其中最本质的是机器人能够移动来进行交互。导航功能是不可或缺的一部分。之后的导航教程也会详细讲解ROS下的导航实现。

第二部分:主控板

  • 硬件体现:通常是stm32这种嵌入式小板子,通过串口与控制系统进行数据传输。
  • 软件体现:将控制系统下传的控制指令,转换为执行机构需要的电信号

第三部分:执行机构

  • 硬件体现:电机(移动机器人)、气压、液压(工业)
  • 软件体现:PWM驱动板,各种驱动器等

第四部分:传感器

传感器种类很多,我们根据他获取信息的方式大致分为內受形和外感形

内部(预测): 编码器,陀螺仪,加速度计

外感(观测):激光雷达,各种相机,红外,超声

编码器的数据通常由主控板处理,然后发送给控制系统。

IMU、Lidar、camera,通常直接传给控制系统来做数据分析与处理。