ROS三轮全向轮移动底盘 (01)

ROS 三向轮移动底盘硬件

01 简介

在机器人开发中, 首先要设计的就是移动机器人底盘, 需要根据机器人的应用场景来设计符合不同要求的移动底盘。 最为震惊的还是波士顿动力实验室设计的各种移动机器人。

02 差速驱动

差速驱动是一个两轮驱动的系统, 每个轮子都带有独立的执行机构 (如直流电机), 机器人的运动矢量是每个独立车轮运动的总和。对于差速驱动的机器人来说直线运动可能是比较困难的, 因为每个驱动轮是独立的, 一旦它们的转速不是精确相同的话, 机器人就会向一边偏离。

由于电动机轻微的速度差异、马达驱动系统的摩擦力差异以及轮子与地面的摩擦力差异, 实现驱动轮电动机以相同速率旋转是很困难的。 为了保证机器人直线运动, 有必要通过每秒多次的频率调整 PWM 值来调整电动机的 RPM。

PID 控制器 (比例 - 积分 - 微分控制器) 是一个在工业控制应用中常见的反馈回路部件, 由比例单元 P、积分单元 I 和 微分单元 D 组成。 PID 控制器的基础是比例控制, 用来调整系统的开环增益, 提高系统的稳态精度, 降低系统的惰性, 加快响应速度; 积分控制可消除稳态误差, 但可能增加超调; 微分控制可加快惯性系统响应速度以及减弱超调趋势。

03 全向轮

全向轮底盘, 肯定离不开全向轮的了。 直接淘宝一搜 全向轮, 就知道是什么样的了。

04 三轮全向轮的结构设计

需要三个轮子, 每两个轮子之间相差 120°, 车轮的安装方式决定了我们的运动学模型。 机器人控制的基础是运行学分析, 利用运动学分析, 可以得出机器人运动过程中各类参数的变化规律和相互之间的关系, 对这些参数进行控制, 才能使机器人在我们的控制下进行移动。

05 直流减速电机选择的注意事项

    1. 电机的扭矩和减速比, 需要根据底盘的负载来进行选择, 减速比越大则扭矩越大, 但是对应的电机的转速也会降低.
    1. 对应电机的转速需要根据轮子大小和机器人移动速度来选择, 一般情况下载室内移动的机器人移动速度不能超过 1m/s, 不然感觉会控制不住, 跑太快了, ROS 小课堂的大大选择的移动速度是 0.3m/s。0.3 是运动合成后的速度, 并不直接就是电机的速度。
    1. 对车轮的测速就需要选择带编码器的电机, 编码器分为光电编码器和霍尔传感器两种, 码盘的精度需要根据主控板的处理精度来选择, 若使用 Arduino Mega2560 来控制的话, 500 线的码盘, Arduino 是可以处理过来的, 只不过有点吃力, 最好还是选择 STM32 来作为主控板, 这样就会麻烦点, 需要自己编写通信协议来完成与 ROS 之间的数据通信, 主控板一般都需要通过 PID 来调整 PWM 输出来控制驱动板, 使驱动板来控制各路电机的转速。
    1. 电机驱动板选择, 目前都是双路或者四路驱动板, 基本上看不到有三路直流电机的驱动板。 选择的驱动板最好要带光耦隔离, 这样可以防止电机堵转或者不稳定电流把主控板烧坏。

06 锂电池的选择

锂电池的选择是个比较麻烦的事情, 需要根据电机的额定电压和额定功率来定, 但是电机的额定功率又根据底盘的负载来考虑, 还有设计需求底盘的工作时间是多久, 工作时间越长那么选择电池的标称容量也就越大, 但是也会引起电池体积过大, 体积过大又引起重量增加又反过来影响底盘的负载, 所以需要多方面因素综合考虑来选择锂电池。 举个栗子:

  • 电机
    • 额定电压: 12V
    • 额定电流: 1.5A
    • 那么就得出电机的额定功率 : P_Motor = U x I = 12 * 1.5 = 18W
  • 锂电池
    • 标称电压: 12V
    • 标称容量: 13000mAH
    • 那么就能得出锂电池的功率 : P_Bat = 12 x 1.3 = 15.6WH
  • 工作时间
    • 如果使用上面的锂电池给上面的电机供电, 那么电机在额定功率下的额定工作时间为 : Time = P_Bat / P_Motor = 15.6/18 = 0.86 小时 = 52 分钟

07 移动底盘需要安装各种避障用的传感器

一般包括 :

  • 碰撞避障 : 也叫微型快动开关, 是一种由很小的物理力启动的电子开关。
  • 防跌落传感器 : 一种短距离红外测距模块, 有效距离一般为 10cm, 开关量数字信号输出。
  • 超声波传感器 : 采用超声波回声测距原理, 运用精准的时差测量技术, 检测传感器与目标之间的距离。
  • 红外测距传感器 : 用红外线为介质的测量系统。

08 控制电机驱动板

性价比好的使用 Arduino Mega2560, 采用 USB 接口的核心电路板, 具有 54 路数字输入输出, 适合需要大量 IO 接口的设计。 处理器黑心是 ATmega2560, 同时具有 54 路数字输入 / 输出口 (其中 16 路可作为 PWM 输出), 16 路模拟输入, 4 路 UART 接口。6 路外部中断: 2(中断 0), 3(中断 1), 18(中断 5), 19(中断 4), 20(中断 3), 21(中断 2)。 触发中断引脚可设置成上升沿、下降沿或者上升下降沿同时触发, 使用这些中断可以测量编码器脉冲个数, 进行车轮测速。

09 运行 ROS 的主控板

这里选择树莓派, 已经能成功的在树莓派上运行 ROS 系统。 这样就能将 Arduino 的板子接在树莓派上, 使用 arduino 作为 ROS 的一个节点, 这样就能组成一个完整的基于 ROS 控制的移动底盘。

你可能感兴趣的:(ROS基础)