Skip to content

NAVIAI Orin Docker 容器概要

总览

当前运行容器共 12 个,Compose project 标签均为 navi_project。其中 11 个容器来自 /home/naviai/navi_project/docker-compose.yamlnaviai_robot_viewer 来自 /home/naviai/.zj_humanoid/v1.3.4_920ccf1c/docker-compose.yaml

整体是 ROS1 / Noetic 风格的拆分服务架构,多数容器使用 host 网络,便于 ROS、传感器、硬件设备和本机服务直接通信。

项目概要
运行容器数12
主要网络模式11 个 host,1 个 bridge 网络
重启策略全部为 unless-stopped
权限naviai_novnc 外,其余均为 privileged
NVIDIA runtimesensorperceptionrosbridgesensor_lidardemos
对外端口naviai_robot_viewer 暴露 10002 -> 3000/tcp
SSH 服务naviai_demos 发现活动 sshd,端口 2222
进程拉起方式多数容器由容器入口脚本启动 supervisordnaviai_navbrain_rosnaviai_robot_viewer 不使用 supervisor
健康检查docker ps 显示均无 healthcheck
当前运行状态12 个业务容器为 running;另有 test_rosenv 为 exited,不计入运行栈统计

核心机器人 / ROS 服务

容器Service网络Runtime权限工作目录大概用途
naviai_robotrobothostruncprivileged/third_party机器人主体 ROS 服务,偏系统/机器人功能入口
naviai_chassischassishostruncprivileged/third_party底盘/运动相关接口或控制服务
naviai_navbrain_rosnavbrain_roshostruncprivileged/navi_ws机器人“大脑”ROS 节点启动容器,执行 /navi_ws/start_ros_nodes_product.sh
naviai_rosbridgerosbridgehostnvidiaprivileged/third_partyROS 桥接/接口代理服务,可能服务外部或上层应用

感知与传感器

容器Service网络Runtime权限工作目录大概用途
naviai_sensorsensorhostnvidiaprivileged/ros_noetic/catkin_ws/src传感器主服务,可能涉及相机/硬件设备
naviai_sensor_lidarsensor_lidarhostnvidiaprivileged/third_party激光雷达相关 ROS 服务
naviai_perceptionperceptionhostnvidiaprivileged/third_party感知、建图、定位相关服务
naviai_map_servermap_serverhostruncprivileged/third_party地图服务,给导航/定位链路提供地图数据

可视化、演示与远程界面

容器Service网络Runtime权限工作目录大概用途
naviai_nviznvizhostruncprivileged/workspace机器人/ROS 可视化工具
naviai_demosdemoshostnvidiaprivileged/navi_ws演示、样例或调试流程容器
naviai_novncnovnchostrunc非 privilegednoVNC/远程图形界面服务
naviai_robot_viewerrobot_viewernavi_project_defaultruncprivileged/appWeb 机器人查看器,bridge 网络,宿主机端口 10002 映射到容器 3000

镜像与启动参数摘要

容器镜像Entrypoint / Cmd 摘要
naviai_sensorsensor:22CUDA_v1/bin/bash -c /etc/naviai/entrypoint.sh
naviai_perceptionenvironment:ros1_260310/etc/naviai/entrypoint.sh
naviai_robotenvironment:ros1_260310/etc/naviai/entrypoint.sh
naviai_rosbridgeenvironment:ros1_260310/etc/naviai/entrypoint.sh
naviai_sensor_lidarenvironment:ros1_260310/etc/naviai/entrypoint.sh
naviai_map_serverenvironment:ros1_260310/etc/naviai/entrypoint.sh
naviai_chassisenvironment:ros1_260310/etc/naviai/entrypoint.sh
naviai_nviznviz:ros1_260311/etc/naviai/entrypoint.sh
naviai_demosdemos:v1.0.2/etc/demos/entrypoint.sh
naviai_navbrain_rosnavbrain_ros:v1.2.4/usr/local/bin/entrypoint.sh + /navi_ws/start_ros_nodes_product.sh
naviai_novncnovnc:v1.0.2/app/entrypoint.sh
naviai_robot_viewerrobot_viewer:v1.0.2npm run dev -- --host 0.0.0.0

挂载与设备映射摘要

这里仅记录数量,不展开具体宿主机路径。

容器挂载数设备映射数备注
naviai_sensor121传感器容器,设备访问面较大
naviai_perception121感知容器,挂载配置/数据较多
naviai_robot80机器人主体服务
naviai_rosbridge81桥接服务,带设备映射
naviai_sensor_lidar61雷达/传感器相关
naviai_map_server51地图服务
naviai_chassis41底盘/运动相关
naviai_nviz71可视化相关
naviai_demos51演示/样例相关
naviai_navbrain_ros42大脑 ROS 节点容器,设备映射数最多
naviai_novnc10远程桌面/图形界面
naviai_robot_viewer00独立 Web 查看器

网络分类

host 网络容器

sensorperceptionrobotrosbridgesensor_lidarmap_serverchassisnvizdemosnavbrain_rosnovnc

这些容器直接共享宿主机网络栈,没有 Docker 层端口映射记录。host 网络符合 ROS/机器人硬件服务常见部署方式,但也意味着服务监听端口属于宿主机网络面。

bridge 网络容器

robot_viewer

使用 navi_project_default,容器 IP 位于 Docker bridge 网络内,并显式映射 10002 -> 3000/tcp,更像独立 Web 前端服务。

SSH 端口复核

容器状态网络SSH 结论端口/暴露方式
naviai_sensorrunninghost未发现活动 sshd/dropbear无容器 SSH 端口
naviai_perceptionrunninghost未发现活动 sshd/dropbear无容器 SSH 端口
naviai_robotrunninghost未发现活动 sshd/dropbear无容器 SSH 端口
naviai_rosbridgerunninghost未发现活动 sshd/dropbear无容器 SSH 端口
naviai_sensor_lidarrunninghost未发现活动 sshd/dropbear无容器 SSH 端口
naviai_map_serverrunninghost未发现活动 sshd/dropbear无容器 SSH 端口
naviai_chassisrunninghost未发现活动 sshd/dropbear无容器 SSH 端口
naviai_nvizrunninghost未发现活动 sshd/dropbear无容器 SSH 端口
naviai_demosrunninghost发现活动 sshd2222/tcp,直接监听在宿主机网络面
naviai_navbrain_rosrunninghost未发现活动 sshd/dropbear无容器 SSH 端口
naviai_novncrunninghost未发现活动 sshd/dropbear无容器 SSH 端口;其 VNC/noVNC 为独立图形服务
naviai_robot_viewerrunningnavi_project_default未发现活动 sshd/dropbear无 SSH 映射;仅 Web 10002 -> 3000/tcp
test_rosenvexited未复核运行态容器未运行,未定位活动 SSH 监听不计入当前运行栈

naviai_demos 的连接形式是 ssh -p 2222 <user>@<Orin_IP>。宿主机自己的 22/tcp 是另一套 SSH 服务,不属于 naviai_demos

容器进程拉起复核

表中“supervisor”表示由容器内部 supervisord 管理,不是跨容器总控。

容器拉起方式配置/脚本试图拉起当前实际运行进程摘要备注
naviai_sensorEntrypoint -> supervisordrealsensewrist_cameraoak_camerasensor_restart_servicesupervisordoak_camera_launcher.pyrealsense_config_launcher.pysensor_restart_service.pyrs_camera.launchoak_driver_node.launchnodeletcamera_info_server.pysupervisor 状态显示 wrist_cameraFATAL,未实际常驻
naviai_perceptionEntrypoint -> supervisordlio_srvmapping_srvpost_processing_srvstatic_tf.launchoctree/ros_app_runsupervisordstatic_tf.launchlio_srvmapping_srvpost_processing_srvros_app_runstatic_transform_publisher配置项均能在当前进程树中找到对应运行进程
naviai_robotEntrypoint -> supervisordorin_errors_publisherorin_resource_publisherorin_wifi_list_serverorin_connect_wifi_servermonitorwork_status_from_startbasic_info_nodesupervisordbasic_info_nodemonitororin_connect_wifi_serverorin_errors_publisherorin_resource_publisherorin_wifi_list_serverwork_status_from_start机器人基础状态/资源/Wi-Fi/监控节点
naviai_rosbridgeEntrypoint -> supervisordcatkin_make 一次性构建安装;rosbridge_websocket.launchsupervisordrosbridge_websocket.launchrosbridge_websocketrosapi_nodecatkin_make 当前不在进程树中,倾向于启动期一次性任务已结束
naviai_sensor_lidarEntrypoint -> supervisordlivox_ros_driver2 msg_MID360.launchsupervisordmsg_MID360.launchlivox_ros_driver2_node雷达驱动链路正在运行
naviai_map_serverEntrypoint -> supervisordnav_map_server_nodesupervisordnav_map_server_node地图服务节点正在运行
naviai_chassisEntrypoint -> supervisordbash /opt/ros/noetic/share/wa1/scripts/start.shsupervisordstart.shwa2_nodestart.sh 进一步拉起底盘节点
naviai_nvizEntrypoint -> supervisordbash /opt/ros/noetic/share/nviz/scripts/run.sh,脚本内部尝试启动 roscorervizsupervisordroscorerosmasterrosout当前未看到 rviz;此前日志显示 run.sh 中工作空间 setup 缺失/rviz 路径问题
naviai_demosEntrypoint -> supervisordsshd -D -esupervisordsshd;另有当前交互/VS Code Remote/Codex 相关进程只有 sshd 是 supervisor 配置拉起;其余交互进程来自后续连接
naviai_navbrain_rosDocker Entrypoint -> /navi_ws/start_ros_nodes_product.sh,不使用 supervisornavbrain_ros.launchavvtn_node.launchpython nav_service.pystart_ros_nodes_product.shnavbrain_ros.launchavvtn_node.launchavvtn_nodestartup_check.pynavbrain_ai_service.pynav_service.py 不存在,日志显示 No such file or directory,所以未实际运行
naviai_novnc/app/entrypoint.sh -> supervisordfluxboxwebsockifyx11vncxtermXvfbsupervisordwebsockifyXvfb :99x11vncfluxboxxtermbashnoVNC/VNC 虚拟桌面栈正在运行
naviai_robot_viewerDocker docker-entrypoint.sh -> npm run dev,不使用 supervisornpm run dev -- --host 0.0.0.0,由 package script 启动 vitenpm run devsh -c vitenode vite.jsesbuildWeb 查看器/Vite 开发服务器
test_rosenv/ros_entrypoint.sh bashbash容器为 exited,无当前运行进程

ROS 节点归属表

当前 ROS master 上还存在 jzrobot-a192.168.217.66 等外部设备节点,未归入本表的 Docker 容器。

容器已确认由该容器拉起的 ROS 节点配置/进程中存在但当前未确认的节点备注
naviai_sensor/sensor_restart_service/camera_info_server_node/zj_humanoid/sensor/realsense_head/realsense_head/zj_humanoid/sensor/realsense_head/realsense2_camerawrist_camera 对应 supervisor 项为 FATALoak_camera_launcher.pyrealsense_config_launcher.py 是启动器/launch 进程,不作为最终业务节点列入传感器相机链路,Realsense 节点已确认
naviai_perception/lio_service/mapping_service/post_processing_service/bodynorm_to_imu1/test_grid/test_grid 对应容器内 ros_app_run
naviai_robot/basic_info_node/monitor_node/orin_connect_wifi_server/orin_errors_publisher/orin_resource_publisher/orin_wifi_list_server/work_status_from_start机器人本机状态、资源、Wi-Fi 和监控类节点
naviai_rosbridge/rosbridge_websocket/rosapicatkin_make 是启动期构建任务,不是常驻 ROS 节点ROS WebSocket/API 桥接
naviai_sensor_lidar/livox_lidar_publisher2Livox/MID360 雷达节点
naviai_map_server/nav_map_server_1783228903900406112节点名带启动时生成的动态后缀地图服务节点
naviai_chassis/agv_websocket_node容器内实际存在 /opt/ros/noetic/lib/wa2/wa2_node 进程/agv_websocket_node 的 ROS PID 与容器内 wa2_node PID 对应;/wa2_node/chassis 等候选名未在 rosnode list 中确认
naviai_nviz当前未确认业务 ROS 节点容器内存在 roscorerosmasterrosout 进程;配置尝试启动 rviz,但当前未见 rviz 进程当前查询的 ROS master 指向 192.168.217.1:11311,不是按 naviai_nviz 本地 roscore 归属统计
naviai_demos当前只作为 SSH/演示入口;未发现常驻 ROS 节点
naviai_navbrain_ros/startup_check/navbrain/avvtn_nodepython nav_service.py 在脚本中被尝试启动,但文件不存在,未形成节点任务流程、启动检查、语音/对话相关节点;与 ROS2 Navigation2(Nav2)无关
naviai_novncnoVNC/VNC 图形服务,不是 ROS 节点容器
naviai_robot_viewerWeb/Vite 前端服务,不是 ROS 节点容器
test_rosenv容器已退出

外部/未归属 ROS 节点来源表

这里列出未归入本机 Docker 容器的 ROS 节点。来源判断以节点自报 XMLRPC URI 为准;jzrobot-anaviai_chassis 容器内解析为 192.168.217.1pico.zjrx.com 在当前环境解析为 192.168.217.66orin.zjrx.com 为 Orin 本机 192.168.217.100

来源设备/地址节点说明
jzrobot-a / 192.168.217.1/adele_server/agent3/caliber_server/cartographer_node/cartographer_tf_publisher/costmap_pub_node/driver_manager_node/emerg_clear_all/exit_test_serivice/footprint/ibvs_constrained/iobox/iosys_audio/jjobs_caliber_checker/jjobs_daemon_34720073/jlinks_daemon/jmother/joystick/joystick_controller/jrosth_1170748167/jz_env/jz_system/jzhw_node/jzhw_node_tf/jzui/lasermark_node/lego_map_optimization/nav_manager_node/nav_net/osmanager/precision_check/rosbag/rosout/scan_filter/scan_localiser/servo_net/soft_lowbattery_off/speed_manager/tag_localiser/trajectory_generator/volume_control_8573_1783228862268外部 jzrobot 设备/控制侧节点;包含导航、硬件、任务、UI、底层状态等节点
pico.zjrx.com / 192.168.217.66/connect_wifi_server/errors_publisher/fake/upperlimb/resource_publisher/startup_manager_1702_1783228900183/video_display/wifi_list_server/zj_humanoid/battery_voice_alarm/zj_humanoid/hand/zj_humanoid/mode_manager/zj_humanoid/robot/zj_humanoid/uplimb_tf_publisher_node/zj_humanoid/web_vel_relay/zj_humanoid/zj_humanoid_naviai_robot外部 pico 设备节点;其中 /video_display 是头顶屏幕/显示相关服务节点
127.0.0.1:6607/localagent节点自报 localhost,当前从 Orin 查询时通信失败;未能可靠定位到具体容器或外部设备,可能是旧注册或只在发布设备本机可访问

217 网段设备归属复核

地址/对象当前归属判断主要证据
192.168.217.17Livox MID360 雷达naviai_sensor_lidarMID360_config.json 明确配置 lidar IP 为 .17/livox_lidar_publisher2 发布 /livox/lidar/livox/imu
192.168.217.66 / pico.zjrx.com上肢/手/头顶屏/部分机器人状态外部设备/zj_humanoid/upperlimb/.../zj_humanoid/hand/.../zj_humanoid/robot/.../zj_humanoid/robot/face_show/media_play 的 provider 均指向 .66/video_display 也在 .66
192.168.217.1 / jzrobot-a底盘、导航、定位、示教/视觉伺服相关外部控制侧naviai_chassis/etc/hosts 映射 jzrobot-a/z.1;大量导航/底盘节点 URI 为 jzrobot-a/robot_arm_teaching_server provider 为 /ibvs_constrained,URI 在 jzrobot-a
192.168.217.100 / orin.zjrx.com当前 Orin 宿主机宿主机 eno1 地址;多数本机 Docker 容器使用 ROS_IP=192.168.217.100
192.168.217.50192.168.217.107192.168.217.254仅确认曾出现在二层邻居表,未能可靠归属各运行容器常见配置/日志目录中未命中这些 IP;当前未看到明确 ROS 节点或服务 provider 指向这些地址;不能据此判断为雷达、机械臂或控制器

补充:naviai_sensor 中确认到 RealSense、OAK、腕部相机等配置,主要通过 USB、/dev/video*、序列号或设备路径接入;这部分不是 217 网段 IP 设备。

简要结论

这是一个以 ROS1 为核心、Docker Compose 管理的机器人运行栈:底层硬件、传感器、感知、导航大多使用 host 网络和高权限运行;Web 查看器单独走 bridge 网络并开放 10002 端口。复核后需要特别注意,robot_viewer 虽属于同一 Compose project 名称,但配置来源路径与其他 11 个运行容器不同。SSH 方面,当前仅 naviai_demos 暴露活动 SSH 服务,端口为 2222。进程管理方面,多数运行容器是在容器内部用 supervisord 看护业务进程,naviai_navbrain_rosnaviai_robot_viewer 则分别由启动脚本和 Node/Vite 入口直接拉起。ROS 节点方面,当前可明确归属到本机 Docker 容器的主要节点集中在 sensorperceptionrobotrosbridgesensor_lidarmap_serverchassisnavbrain_ros;其余节点主要来自外部 jzrobot-apico.zjrx.com 设备。217 网段复核中,.17 可确认为 MID360 雷达,.66 可归为上肢/手/头顶屏等外部设备,.1 可归为底盘/导航/示教控制侧;.50.107.254 暂无可靠 Docker/ROS 归属证据。