# chassis_4ws4wd
**Repository Path**: cenruping/chassis_4ws4wd
## Basic Information
- **Project Name**: chassis_4ws4wd
- **Description**: 存放裸底盘电气系统(电源和控制板)相关代码,电源板使用STM32F103芯片,控制板使用STM32F407芯片
- **Primary Language**: C
- **License**: BSD-3-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-01-05
- **Last Updated**: 2024-11-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 4WS4WD小车底盘
**目录说明:**
1. Chassis_STM32F407目录中存放4WS4WD底盘的控制代码,控制器型号为STM32F407ZGT6。
2. ROS_Node 为控制板对应的ROS节点
3. PowerBoard_STM32F103 目录存放电源板控制器代码
4. Reference 目录存在参考文档(电机手册、调试工具等)
## 更新日志
2023-9-26
- 限制了后轮阿卡曼转向半径 R
- printf改为网口输出
- 增加后轮阿卡曼转向模型 AKM2_Wheel_Speed_Model()
2023-9-6
- 增加阿卡曼转向模式
2023-4-26
- 增加以太网模块、DBUS、虚拟示波器函数(PID调试)
2023-4-25
- 添加串口DMA传输代码、CAN模块代码
2023-2-3
- 添加GPIO模块、外部触发、串口1-串口6、定时器模块代码
# 控制板使用说明
## 控制板接线说明
控制板前面板如下图所示,**前面板**包含电源按钮,电源输入接线端子,指示灯,232串口,以太网口。其中,控制板的电源输入为12-48V;电源按钮控制板子的电源,按下以后控制板上电;指示灯主要用于显示程序工作状态;232串口和以太网口主要是用于上位机通讯。
控制板**后面板**如下图所示,**后面板**主要包含与传感器的接口,其中485总线通过单片机串口进行转换,用于连接电池;DBUS接口用于连接遥控器、CAN总线用于连接电机、UART4/UART5作为备用串口、In端口为隔离型输入端口(输入电压范围0-12V)、Out为隔离型输出端口(输出0、高组态)。
控制板芯片内部占用端口引脚如下图所示:
- 上位机通讯的串口(232)占用单片机内部USART1端口
- DBUS遥控器占用单片机USART2端口
- 485总线占用串口3
- 以太网口占用串口4
- 行进电机与转向电机占用CAN2
## 状态指示灯
LED1: 上位机通讯状态,每接收到上位机命令闪烁一次
LED2:DBUS遥控器状态,每接收到遥控器数据闪烁一次
LED3:CAN2总线状态,每接收到数据闪烁一次
## 遥控器操作
控制板支持DBUS(大疆遥控器)协议的遥控器信号输入。
①遥控器**左上角的拨动开关**为功能选择按键:置于OFF档表示不使能遥控器(此时遥控器左右摇杆无反应,遥控器无法控制小车,由上位机控制小车,即遥控器优先级高于上位机)。CL和CH档表示由遥控器控制小车,忽略上位机命令,其中置于CL档为阿卡曼(Ackermann)转向模型;CH档为全向模式
②遥控器**右上角拨动开关**上中下位置分别对应小车1m/s、2m/s、3.5m/s速度
③右手边摇杆竖直方向通道控制小车前后运动(如下图所示),左边的摇杆水平通道控制小车左右旋转。左侧的摇杆左右移动时为底盘做自旋运动
## 上位机控制
上位机通过DB9串口下发指令与控制板通讯,通讯协议可参考在线表格(https://docs.qq.com/sheet/DV2hmSEdSYVVtclB4?tab=bb08j2)
控制板上的网口为调试使用,可以配合网络调试助手,打印控制板状态信息。(网口IP地址:192.168.0.7,TCP服务端地址 192.168.0.201 端口8234)
# 电源板使用说明
## 电源板V1.0
电源输入电压为36-48V,前面板如下图所示:
- 左侧上方为电源输入端子,左侧下方WS28航空插头为电机输出端子。
- 中间按钮为电源启动按钮,按下后电源按预定上电时序上电(电机>24V输出端口>12V输出端口,‘>’表示优先上电含义)
- 左上角为电压显示模块
- 右下角为电源板通讯接口(UART-232)

电源模块后面板如下图所示:

- **24V/20A 两路** (WS16航空插头)
- **24V/10A 一路**
- **12V/10A 两路**
- **9V/4A 一路**
- **5V/3A 一路**
## 电源板V2.0
第二版电源重新设计了大功率DC-DC模块,进缩小了电源板的尺寸。其内部采用排针的连接方式,连接输出24V、12V、9V、5VDCDC稳压模块,如下所示
电源板接口示意图如下:
# ROS节点说明
针对4WS4WD底盘,使用一下命令启动底盘ROS节点
```shell
roslaunch mick_bringup mick4ws4wd_bringup.launch
```
该launch文件中包含以下参数:
- **dev**:串口设备号
- **baud**:串口波特率
- **time_out**:
- **hz**:主循环刷新频率
- **chassis_type**:底盘类型 0: 差速底盘 1: 麦克纳姆轮底盘 2:阿卡曼转向 3全向
- **sub_cmdvel_topic **:接收cmd_vel命令的话题
- **pub_odom_topic**:里程计发布话题
- **is_pub_path**:是否发布odom对应的轨迹