# RT-Robot 设计说明 ## 1 智能车体系结构 rt-robot 将智能车平台分为两个部分:车底盘和动力学模型 ### 1.1 车底盘模块 (chassis) 车底盘模块的作用在于定义小车的底盘类型,例如有多少个可以控制的轮子、小车的长宽等物理属性、运动学模型。例如两轮的车底盘搭配两轮差分动力学模型,我们就得到了两轮差分驱动的小车。 车底盘模块下面又包括车轮 (wheel) 模块和动力学模型模块 (kinematics)。 #### 1.1.1 车轮模块 (wheel) 车轮模块需要实现一个能够闭环控制的车轮,因此需要用到电机、编码器和 闭环控制算法。 ##### 1.1.1.1 电机模块 (motor) 电机模块需要为不同电机提供统一的接口,能够实现闭环电机转速控制,包括: - 直流电机 - 舵机 - 步进电机 - CAN接口电机 - 直流无刷电机 ##### 1.1.1.2 编码器模块 (encoder) 编码器模块需要为不同编码器提供统一的接口,能够测量得到当前电机的转速、运动方向等,包括: - 单相编码器 - AB相编码器 ##### 1.1.1.3 车轮速度闭环控制器模块 (e.g. PID) 控制器模块需要利用当前编码器测得的转速,和目标设定值,实现对电机的闭环控制,包括: - 增量式PID - 位置式PID #### 1.1.2 动力学模型模块 (kinematics) 动力学模块包含各种小车物理学模型,需要实现小车运动速度 (Vx, Vy, w) 与不同电机转速 (rpm1, rpm2, rpm3, rpm4) 之间的双向切换,包括: - 两轮差分驱动 - 四轮差分驱动 - 麦克纳姆轮驱动 - Ackerman模型 当前我们的小车坐标系定义如下: ![](./figures/coordinates.png) 除了全局坐标系外,我们定义了小车的前进方向为 Xr,与前进方向垂直的方向为 Yr,以小车车头逆时针旋转方向为旋转角速度 w 的正方向。