故障排除
常见问题
1. 连接失败
错误: RuntimeError: 连接机器人失败
诊断和解决方案:
- 检查网络连通性:
ping 172.16.0.20 - 验证 ROS_DOMAIN_ID:
echo $ROS_DOMAIN_ID - 确保机器人系统正在运行
- 确认主机 IP 在 172.16.0.x 子网中
bash
# 测试网络连通性
ping 172.16.0.20
# 检查 ROS2 通信
ros2 topic list
ros2 node list2. 相机初始化失败
错误: 相机相关错误
解决方案:
- 测试相机连接:
realsense-viewer - 使用测试模式:
no_camera=True - 验证相机序列号
- 确保 USB 3.0 连接
python
# 无相机测试
config = MOZ1RobotConfig(
no_camera=True,
structure="dualarm"
)3. ROS2 环境问题
错误: ROS2 导入错误
解决方案:
bash
# 重置 ROS2 环境
source /opt/ros/humble/setup.bash
export ROS_DOMAIN_ID=33
# 验证 ROS2 安装
ros2 --version4. Python 依赖问题
错误: 模块导入错误
解决方案:
bash
# 重新安装依赖
pip install -r requirements.txt
# 测试关键依赖
python3 -c "import torch, numpy, cv2, pyrealsense2, rclpy"5. ROS2通讯不稳定
错误:由于网络原因造成ROS2通讯不稳定,导致机器人执行action时抖动。
问题判别:
ros2 topic hz /cart_states观测到ros2效率的频率不稳定,存在异常波动。
解决方案:
注意:下文提供的配置文件假设你的IP地址为172.16.0.30,请根据你的实际情况修改。
新增fastdds配置文件 /path/to/fastdds_config.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<dds xmlns="http://www.eprosima.com">
<profiles>
<transport_descriptors>
<transport_descriptor>
<transport_id>udp_transport</transport_id>
<type>UDPv4</type>
<interfaceWhiteList>
<address>172.16.0.20</address>
<address>172.16.0.30</address>
<address>127.0.0.1</address>
</interfaceWhiteList>
</transport_descriptor>
</transport_descriptors>
<participant profile_name="UDPParticipant" is_default_profile="true">
<rtps>
<userTransports>
<transport_id>udp_transport</transport_id>
</userTransports>
<useBuiltinTransports>false</useBuiltinTransports>
</rtps>
</participant>
</profiles>
</dds>每次执行程序前执行:
export FASTRTPS_DEFAULT_PROFILES_FILE=/path/to/fastdds_config.xml6. Python解释器与ROS2兼容性问题
错误: Python模块导入错误、rclpy初始化失败或版本冲突
问题描述: ROS2与Python虚拟环境(如conda、venv)存在兼容性问题,主要原因包括:
- ROS2二进制文件与系统默认Python版本绑定
- conda环境修改了默认Python解释器路径
- Python包路径冲突导致rclpy等ROS2模块无法正确导入
解决方案:
方案1:使用系统Python(推荐)
bash
# 确认使用系统Python
which python3
# 输出应该是:/usr/bin/python3
# 安装Python依赖到系统环境
sudo apt install python3-pip
pip3 install --user [所需包名]
# 避免激活conda base环境
conda config --set auto_activate_base false方案2:conda环境隔离配置
bash
# 在 ~/.bashrc 中正确配置环境变量顺序
# 先加载ROS2环境,再初始化conda
source /opt/ros/humble/setup.bash
export ROS_DOMAIN_ID=33
# conda initialize block should be at the end
# 创建专用conda环境(与系统Python版本匹配)
conda create -n ros2_mozrobot python=3.x # 3.x为系统Python版本
conda activate ros2_mozrobot最佳实践:
- 优先使用系统Python环境进行ROS2开发,避免复杂的兼容性问题
- 如必须使用conda,确保Python版本与系统一致
参考资源:

