Apex 遥操系统常见问题 Q&A 与速查手册
更新时间:2026-08-06
适用范围:Marvin Pro、Gento Skye、Gento Luna
控制器:Orin、天准、灵境 Thor
末端:DM/OmniGripper、ZY 夹爪、Wuji 灵巧手
文档用途:客户自助排障、技术支持培训和现场问题速查
1. 使用前先确认什么?
Q1:为什么排障前必须先确认整机配置?
因为 Pro 与 Gento 使用不同控制链路,Ubuntu 22.04/Humble 与 Ubuntu 24.04/Jazzy 的依赖包也不同。至少记录以下信息:
产品线:Marvin Pro / Gento
本体:Pro / Skye / Luna
机械臂:M6 696 / M6 Lite / M3 / Gento 整机配置
控制器:Orin / 天准 / 灵境 Thor
系统与 ROS:Ubuntu 22.04 + Humble / Ubuntu 24.04 + Jazzy
末端:DM / ZY / Wuji / none
软件:kernelmind-apex、kernelmind-apex-tool、Apex-Teleop、SDK、头显 APK
网络:控制器 IP、机器人 IP、头显 Host IP、ROS_DOMAIN_ID
目标机执行:
dpkg --print-architecture
lsb_release -a
echo "$ROS_DISTRO"
dpkg-query -W -f='${Package} ${Version} ${Architecture}\n' \
| grep -Ei 'kernelmind|apex|teleop|marvin|gento|ros-(humble|jazzy)'
平台对应关系:
| 控制器 | Ubuntu | ROS 2 | 架构 |
|---|---|---|---|
| Orin | 22.04 | Humble | arm64 |
| 天准 | 22.04 | Humble | arm64 |
| 灵境 Thor | 24.04 | Jazzy | arm64 |
Q2:开始排障前有哪些通用检查?
source /etc/apex/apex_ros_env.sh 2>/dev/null || \
source /opt/kernelmind/apex/install/setup.bash
systemctl --no-pager --failed
ros2 node list
ros2 topic list
ros2 service list
再查看五个核心服务:
systemctl status apex-backend.service --no-pager
systemctl status apex-robot.service --no-pager
systemctl status apex-camera.service --no-pager
systemctl status apex-teleop.service --no-pager
systemctl status apex-tool.service --no-pager
旧版本可能没有独立的 apex-tool.service,出现 Unit could not be found 时应核对版本和 Tool 安装方式,不表示其他四个模块也异常。
机械臂或夹爪测试前必须清空周边、降低动作幅度并确认没有第二个控制源。
2. 启动、前端与服务
Q3:Apex 标准启动顺序是什么?
检查网络和整机配置
-> 启动 Backend
-> 确认 GMSL/Argus
-> ApexApp Start Robot
-> Start Camera
-> Start Teleop
-> 按末端类型启动 Tool
-> 连接头显并做小幅测试
-> 最后再开始录制
Backend 首次启动:
sudo systemctl start apex-backend.service
Q4:什么时候需要重启 apex-backend.service?
先检查:
systemctl status apex-backend.service --no-pager
curl -sS -o /dev/null -w 'HTTP %{http_code}\n' http://127.0.0.1:8080/docs
journalctl -u apex-backend.service -n 100 --no-pager
以下情况可以重启 Backend:
- ApexApp 无法连接本机后端或页面模块控制失效。
127.0.0.1:8080/docs无响应,且 Backend 已异常退出或卡住。- 修改了 Backend 启动时读取的
/etc/apex/apex.env配置。 - Backend 日志持续报错,确认不是 Robot、Camera、Teleop 或 Tool 自己的问题。
sudo systemctl restart apex-backend.service
相机采集超时只重启 Camera/Argus,机器人连接断开只处理 Robot,夹爪异常只处理 Tool/夹爪节点。不要把“重启 Backend”当作所有问题的统一处理方式。
Q5:各模块出现问题时应该重启哪个服务?
| 现象 | 优先处理 |
|---|---|
| 前端 API、模块按钮、8080 端口异常 | apex-backend.service |
| Robot 连接、机器人 IP、SDK 状态异常 | apex-robot.service |
| 相机黑屏、配置修改、视频进程异常 | apex-camera.service |
| 头显输入、IK/QP、遥操模式修改 | apex-teleop.service |
| DM/ZY/Wuji 末端配置或节点异常 | apex-tool.service 或对应手动节点 |
| Argus 无图、等待 image buffer 超时 | nvargus-daemon,随后重启 Camera |
常用日志:
journalctl -u apex-robot.service -n 100 --no-pager
journalctl -u apex-camera.service -n 100 --no-pager
journalctl -u apex-teleop.service -n 100 --no-pager
journalctl -u apex-tool.service -n 100 --no-pager
Q6:遥操模式应该配置为 controller 还是 dexhand?
查看:
grep -E 'APEX_TELEOP_MODE|APEX_TOOL_TYPE' /etc/apex/apex.env
- 普通手柄遥操、DM/ZY 夹爪:通常使用
APEX_TELEOP_MODE=controller。 - 手套或灵巧手遥操:使用
APEX_TELEOP_MODE=dexhand。 APEX_TOOL_TYPE=wuji或wujihand的版本可能自动进入 glove 模式。- 末端类型使用
APEX_TOOL_TYPE=dm|zy|wuji|none。
修改:
sudoedit /etc/apex/apex.env
sudo systemctl restart apex-teleop.service
sudo systemctl restart apex-tool.service
修改前保留原值。若模式错误,常见表现为普通夹爪没有控制值、灵巧手命令 Topic 不出现、脚踏使能逻辑不生效。
Q7:前端启动后终端出现红字,应先看什么?
先找该节点退出前最早出现的具体错误,不要只看汇总性的 process has died。常见关键字:
error while loading shared libraries
No such file or directory
symbol lookup error
exit code 127
Version mismatch
Robot connection lost
如果是 error while loading shared libraries,从红字复制可执行文件路径并执行:
ldd <红字中的可执行文件路径> | grep 'not found'
缺库时先确认 Ubuntu、ROS、ARM64 和软件版本,再安装对应依赖。不要先查 Topic,也不要随意把不同版本 .so 软链接到一起。
Q8:source /etc/apex/apex_ros_env.sh 提示文件不存在怎么办?
先确认是否为旧版本或安装不完整:
ls -l /etc/apex
ls -l /opt/kernelmind/apex/install/setup.bash
临时加载:
source /opt/ros/<humble或jazzy>/setup.bash
source /opt/kernelmind/apex/install/setup.bash
Humble 与 Jazzy 不能混用。若 /opt/kernelmind/apex/install/setup.bash 也不存在,应重新检查 kernelmind-apex 是否安装成功,而不是手工创建空环境文件。
Q9:加载环境时仍提示构建机路径不存在怎么办?
典型报错:
not found: /home/marvin/test_apex_ws/install/local_setup.bash
这是安装包环境文件残留构建机绝对路径。先定位:
grep -Rns '/home/marvin/test_apex_ws/install' /opt/kernelmind/apex/install 2>/dev/null
需要备份命中的文本环境文件,再将构建前缀重定位为 /opt/kernelmind/apex/install。修改后重新加载环境,并对核心可执行文件运行 ldd。不要在目标机创建假的 /home/marvin/test_apex_ws 目录掩盖问题。
3. 相机、Argus、H264 与 WebRTC
Q10:相机编号和 camera_sources 在哪里修改?
配置目录:
/opt/kernelmind/apex/install/gmsl_quadcam/share/gmsl_quadcam/config
先确定当前版本实际使用的文件:
systemctl cat apex-camera.service
grep -Rns 'camera_sources' \
/opt/kernelmind/apex/install/gmsl_quadcam/share/gmsl_quadcam/config
常见文件为:
quad_csi_quickview.yaml
sh5_quad_csi_quickview.yaml
经验编号:
| 控制器 | 常见 CSI 编号 |
|---|---|
| 灵境 Thor | 0/1/2/3 |
| 天准 | 0/1/4/5 |
| Orin DK | 0/6/7/8 |
实际编号以目标硬件枚举和单路测试为准。修改后:
sudo systemctl restart apex-camera.service
Q11:机器只有两路相机,另外两路怎么 配置?
不存在的相机必须写 none,避免程序一直等待不存在的传感器:
camera_sources:
head_left: "csi://0"
head_right: "csi://1"
hand_left: "none"
hand_right: "none"
Q12:相机画面上下颠倒,怎么翻转?
当前已确认配置项位于相机 YAML:
flip_180: true