# open_ros_car **Repository Path**: tom_code/open_ros_car ## Basic Information - **Project Name**: open_ros_car - **Description**: 开源ros车底盘代码 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-27 - **Last Updated**: 2025-12-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 介绍 ros 4轮差速底盘 ![57600](doc/4wd_car.JPG) ## 构建 ```bash git clone https://gitee.com/tom_code/open_ros_car.git ``` 使用platformio 构建编译 ## 设计参数 ### 整车参数 | 参数项 | 值 | 备注 | | :--- | :--- | :--- | | **整车质量** | 65 kg | | | **电机数量** | 4 个 | 伺服电机 | | **爬坡角度** | 35° | | | **轴距** | 800 mm | | | **轮距** | 600 mm | | | **负载** | 25 kg | 水平路面 | | **正常使用负载** | 20 kg | | | **水平路面最大速度** | ≥ 5.4 km/h | | | **续航** | ≥ 2 h | 50% 载重条件下 | | **轮子直径** | 13 寸 | | ### 驱动系统参数 | 参数项 | 值 | 备注 | | :--- | :--- | :--- | | **电机功率** | 400 W | 单个电机 | | **额定转速** | 3000 rpm | 电机输出转速 | | **减速机减速比** | 24 : 1 | | ## Servo4WD 4WD 伺服控制器 参数: 低压48V 额定转速:3000rpm 功率:400w 伺服电机需要设置正确,上位机 波特率: ![57600](doc/01.png) ![57600](doc/02.png) ### 地址修改 伺服电机需要设置正确的地址,默认地址为 1-4。 ![57600](doc/addr_change.png) ## 485 协议参考 ![57600](doc/485-01.png) ![57600](doc/485-02.png) ![57600](doc/485-03.png) ![57600](doc/485-04.png) ## 伺服电机串口调试 ```bash 1000rpm [2025-12-18 15:46:08.143]# RECV HEX> 01 06 06 03 03 E8 79 FC 01 06 06 03 03 E8 79 FC 01 06 03 03 00 01 B8 4E 01 06 03 03 00 01 B8 4E tip: 01 06 06 03 03 E8 79 FC //1000rpm 01 06 06 03 03 E8 79 FC //接收 01 06 03 03 00 01 B8 4E //anable 01 06 03 03 00 01 B8 4E //接收 [2025-12-18 15:46:11.159]# RECV HEX> 01 06 06 03 00 00 79 42 01 06 06 03 00 00 79 42 01 06 03 03 00 01 B8 4E 01 06 03 03 00 01 B8 4E tip: 01 06 06 03 00 00 79 42 //0rpm 01 06 06 03 00 00 79 42 //接收 01 06 03 03 00 01 B8 4E //anable 01 06 03 03 00 01 B8 4E //接收 这里重复使能了 ``` 发送示例:发送转速1000rpm ||||||||| | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | id|功能码|reg-high|reg-low|数据-high|数据低位|CRC校验 |01|06|06 |03 |03 |E8| 79| FC| ![57600](doc/485-f1.png) 使能-发送1000rpm-发送0rpm ``` [2025-12-18 16:30:55.517]# RECV HEX> 01 06 03 03 00 01 B8 4E [2025-12-18 16:30:58.519]# RECV HEX> 01 06 06 03 03 E8 79 FC [2025-12-18 16:31:03.529]# RECV HEX> 01 06 06 03 00 00 79 42 ``` ## MCU主控 esp32s3 框架:arduino ## 串口指令 |||| | :--- | :--- | :--- | | **指令** | **参数** | **备注** | | **@** | | 切换为串口指令调试模式 | | **#** | | 切换为ROS指令调试模式 | | **ps** | | 查看信息 | | **stop** | | 停止 | | **mode=** | 2 | vx 速度指令 | | **w=** | 3 | 角速度指令 | ## 遥控 支持SBUS协议 ## 一些需要注意的点 1. Arduino框架中的任务调度器限制 - 在Arduino for ESP32中不能手动调用 vTaskStartScheduler() - 错误示例: ```cpp void setup() { vTaskStartScheduler(); // 错误!会导致中断异常 } ``` - 原因: a) Arduino框架已经内置了FreeRTOS b) 框架在后台自动管理任务调度 c) 手动启动会与框架的调度机制冲突 - 正确做法: ```cpp void setup() { // 只需创建任务,框架会自动启动调度器 xTaskCreate(myTask, "Task", 4096, NULL, 1, NULL); } ```