Marvin Pro 终端直贴式通讯排查手册
适用:Marvin Pro,M6 696、M6 Lite、M3 等机械臂构型。
本文所有排查代码均可整段粘贴到控制器终端运行,不需要复制或调用外部排查脚本。
1. 使用规则
- 每个代码块都是独立命令,可在新终端直接粘贴。
- 默认命令只读取状态,不控制机器人。
- 输出同时保存在:
~/apex_direct_pro_check/
gripper-active一节会真实控制夹爪,必须单独确认安全。- 配置了
APEX_ROS_NAMESPACE=tj时,代码会自动把/info/...、/control/...解析为/tj/info/...、/tj/control/...;夹爪根 Topic 仍会优先按原名检查。
结果标记:
| 标记 | 含义 |
|---|---|
[MISSING] | Topic 不存在 |
[DATA] | 在等待时间内收到一帧数据 |
[NO_DATA] | Topic 存在,但没有收到数据 |
| Publisher count 大于 0 | ROS 图中发现发布端,不等同于正在发布数据 |
| Subscription count 大于 0 | ROS 图中发现订阅端 |
2. 推荐启动顺序
在 Tianji M Apex 前端按测试需要启动:
Robot -> StartTeleop -> StartTool -> Start,选择实际末端类型Camera -> Start,仅相机测试需要- 连接头显并进入遥操
模块与前置进程:
| 模块 | 必需服务/进程 |
|---|---|
| 系统和版本 | 无 |
| 机器人反馈 | apex-robot.service、marvin_robot_node |
| 头显输入 | apex-teleop.service、controller_udp.py、teleop_manager |
| 控制链 | Robot、Teleop、qp_controller、joint_cmd_mux |
| DM/ZY 夹爪 | apex-tool.service、对应夹爪节点 |
| 相机 | apex-camera.service、nvargus-daemon.service |
| 录制/回放 | apex-teleop.service、录制和回放节点 |
3. 模块一:系统、版本、Domain 和网络
3.1 进程要求
无。
3.2 直接粘贴运行
source /etc/apex/apex_ros_env.sh 2>/dev/null || source /opt/ros/humble/setup.bash
source /etc/apex/apex.env 2>/dev/null || true
OUT="$HOME/apex_direct_pro_check"
mkdir -p "$OUT"
{
echo "===== 时间和系统 ====="
date --iso-8601=seconds
hostnamectl 2>/dev/null || true
uname -a
grep -E '^(PRETTY_NAME|VERSION_ID)=' /etc/os-release
echo
echo "===== Apex / ROS 环境 ====="
printf 'ROS_DISTRO=%s\n' "${ROS_DISTRO:-}"
printf 'ROS_DOMAIN_ID=%s\n' "${ROS_DOMAIN_ID:-}"
printf 'ROS_LOCALHOST_ONLY=%s\n' "${ROS_LOCALHOST_ONLY:-}"
printf 'RMW_IMPLEMENTATION=%s\n' "${RMW_IMPLEMENTATION:-}"
grep -E '^(APEX_|ROS_|RMW_|BAG_STORAGE_ROOT)' /etc/apex/apex.env 2>/dev/null || true
echo
echo "===== 安装版本 ====="
dpkg-query -W -f='${binary:Package}\t${Version}\t${Architecture}\n' 2>/dev/null \
| grep -Ei 'kernelmind|apexteleop|apex-teleop|marvin-sdk' || true
echo
echo "===== 网络 ====="
ip -brief address
ip route
echo
echo "===== 机器人连通性 ====="
if [[ -n "${APEX_ROBOT_IP:-}" ]]; then
ping -c 3 -W 1 "$APEX_ROBOT_IP" || true
else
echo "APEX_ROBOT_IP 未设置"
fi
} 2>&1 | tee "$OUT/01_env.txt"
3.3 预期输入
无人工动作。
3.4 正常结果
- 天准/Orin 通常为 Ubuntu 22.04、ROS 2 Humble;灵境 Thor 为 Ubuntu 24.04、ROS 2 Jazzy。
APEX_ROBOT_PLATFORM=pro。APEX_ROBOT_MODEL与实际机械臂构型一致。APEX_ROBOT_IP与机器人控制器 IP 一致且能 ping 通。ROS_DOMAIN_ID与 Apex 服务配置一致。- 能查询到 Apex、Teleop、Tool 和 Marvin SDK 版本。
4. 模块二:服务和进程状态
4.1 进程要求
无。该模块用于判断哪些进程已经启动。