# servo_controller **Repository Path**: ros2_4/servo_controller ## Basic Information - **Project Name**: servo_controller - **Description**: zlac8015d 轮毂伺服电机控制器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-27 - **Last Updated**: 2026-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # servo_controller 基于 Modbus RTU 的差速底盘伺服控制器,支持轮速控制、odom 里程计计算。 ## 依赖 - CMake >= 3.10 - GCC 支持 C++17 - libmodbus 安装 libmodbus: ```bash sudo apt install libmodbus-dev ``` ## 编译 ```bash mkdir -p build && cd build cmake .. make ``` ## 测试模式 ### CmdVel 阶段测试 正转加速 → 反转加速 → 转向测试,完成后自动停止。 ```bash cmake .. -DTEST_CMDVEL=ON make ./servo_controller ``` ### Odom 一圈测试 以 0.05 m/s 前进一个轮周长(1.2821 m),延迟 5 秒后反转回起点,完成后自动停止。 ```bash cmake .. -DTEST_ODOM=ON make ./servo_controller ``` ``` cd build cmake .. -DTEST_CMDVEL=ON && make ./servo_controller cmake .. -DTEST_CMDVEL=OFF -DTEST_ODOM=ON && make ./servo_controller ``` ### 默认模式(不运行测试) ```bash cmake .. -DTEST_CMDVEL=OFF -DTEST_ODOM=OFF make ./servo_controller ``` ## 运行 程序启动时自动扫描 `/dev/ttyUSB*` 和 `/dev/ttyACM*`,找到第一个响应 Modbus RTU 的设备后连接。 按 `Ctrl+C` 可随时安全退出,程序会先停止电机再退出。 ## 硬件参数 | 参数 | 值 | |------|----| | 轮子周长 | 408.2 mm | | 编码器分辨率 | 4096 线/转 | | 两轮间距 (WHEEL_BASE) | 0.53 m(请根据实际修改 controller.h)| | Modbus 从机地址 | 1 | | 波特率 | 115200 | | 脉冲采集周期 | 50 ms |