来自实际机器人开发和调试的经验总结,涵盖常见问题排查、开发流程和实用技巧。
开发流程 新车部署检查清单
网口配置 :确认工控机与路由器/交换机 IP 在同一网段
CAN 通信 :candump can0 确认能收到电机数据
IMU 校准 :消除零偏
遥控器配对 :DJI 遥控器校准
自启脚本 :确保开机自动启动核心节点
常用自启方式 1 2 3 4 5 6 7 8 9 10 11 12 13 [Unit] Description=Robot Core Service After=network.target [Service] Type=simple User=robot ExecStart=/home/robot/start.sh Restart=on-failure [Install] WantedBy=multi-user.target
电机调试 PID 调参经验
先 P 后 I 最后 D
Kp 从小往大调,直到出现轻微振荡再回退
Ki 消除静差,不宜过大
Kd 从零开始一点一点加
常见电机参数
GM6020 :云台电机,内置驱动器,CAN 通信
最大力矩计算:$T_{max} = K_t \cdot I_{max}$
最大转速计算:$\omega_{max} = V_{max} / K_e$
IMU 零飘补偿 1 2 3 rosbag record /imu/data -O imu_calib.bag --duration 30
调车工具 rosbag 1 2 3 4 5 rosbag record -a rosbag record /topic1 /topic2 rosbag play my_bag.bag rosbag play --clock my_bag.bag rosbag info my_bag.bag
rqt 工具集 1 2 3 4 5 rqt_graph rqt_plot rqt_reconfigure rqt_console rqt_tf_tree
远程遥控 1 2 3 4 5 6 ssh robot@192.168.1.100 export ROS_MASTER_URI=http://192.168.1.100:11311export ROS_IP=192.168.1.101
常见问题排查
症状
可能原因
排查方法
电机不转
CAN 未连接/ID 错误
candump can0 检查数据
云台抖动
PID 参数过大
rqt_plot 观察曲线
TF 报错
坐标系未发布
rosrun tf view_frames
编译报错
依赖缺失
rosdep check
SSH 拒绝
未安装 SSH 服务
sudo apt install openssh-server
GPU 黑屏
驱动问题
sudo prime-select nvidia
实用命令速查 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 git remote add upstream <url> git fetch upstream git checkout -b my_branch upstream/their_branch sudo ip link set can0 type can bitrate 1000000sudo ip link set up can0rosrun imu_calib do_calib rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.025 rosrun easy_handeye easy_handeye