Skip to content

Docker 服务构成与运行架构

当前系统主体由 Orin 上的 Docker 容器管理。理解这台机器时,应先看容器、镜像、网络、启动入口和实际进程,再把它们映射到 ROS node / topic / service。

总览

当前运行态
当前运行容器12 个业务容器
Compose projectnavi_project
主体网络方式多数容器使用 host 网络
进程管理多数容器入口脚本启动 supervisord
非 supervisor 容器naviai_navbrain_rosnaviai_robot_viewer
Web 端口naviai_robot_viewer 暴露 10002 -> 3000/tcp
容器 SSH当前仅 naviai_demos 发现活动 sshd,端口 2222

完整表见:Docker 容器完整概要

容器分类

分类容器主要用途
核心机器人 / ROS 服务naviai_robotnaviai_chassisnaviai_navbrain_rosnaviai_rosbridgeOrin 上的机器人状态、底盘桥接、任务流程服务、WebSocket 接入
感知与传感器naviai_sensornaviai_sensor_lidarnaviai_perceptionnaviai_map_server相机、雷达、感知、建图/定位辅助、地图服务
可视化与远程界面naviai_nviznaviai_novncnaviai_robot_viewer可视化、noVNC 虚拟桌面、Web 查看器
开发 / 演示入口naviai_demosdemos 镜像、ROS 环境、SSH/开发入口能力

重点容器/模块说明

这一段按“谁在提供能力”理解系统。表里优先写能力、已确认框架和重点服务节点,完整节点清单见:Docker 容器完整概要

类型模块/来源提供的能力具体实现线索
Orin Docker 容器naviai_robotOrin 本机状态、资源、错误、Wi-Fi、监控等基础服务/basic_info_node(基础信息)
/monitor_node(监控)
/orin_resource_publisher(资源状态)
/orin_errors_publisher(错误状态)
/orin_wifi_list_server / /orin_connect_wifi_server(Wi-Fi 查询/连接)
Orin Docker 容器naviai_chassisOrin 到底盘侧的桥接;提供底盘状态、里程计、IMU、电机/舵轮信息等接口/agv_websocket_node(ROS 侧底盘桥接)
容器进程可见 wa2_node(底盘接口实现)
Orin Docker 容器naviai_navbrain_ros任务流程、启动检查、语音/对话相关服务/startup_check(启动检查)
/navbrain(任务流程)
/avvtn_node(语音/对话入口)
与 ROS2 Navigation2(Nav2)无关
Orin Docker 容器naviai_rosbridge面向非 ROS 环境的 WebSocket 接入入口rosbridge_suite
/rosbridge_websocket(WebSocket 接入)
/rosapi(ROS graph/API 查询)
入口:ws://192.168.217.100:9090
Orin Docker 容器naviai_sensor头部相机、相机信息和传感器重启服务realsense2_camera / RealSense ROS 驱动
/zj_humanoid/sensor/realsense_head/realsense2_camera(RealSense 相机节点)
/camera_info_server_node(相机信息)
/sensor_restart_service(传感器重启)
Orin Docker 容器naviai_sensor_lidarLivox MID360 雷达数据接入livox_ros_driver2
/livox_lidar_publisher2(MID360 点云和 IMU 数据)
发布 /livox/lidar/livox/imu
Orin Docker 容器naviai_perceptionLIO、建图、后处理、静态 TF 和点云测试服务/lio_service(LIO 服务)
/mapping_service(建图服务)
/post_processing_service(后处理)
/bodynorm_to_imu1(TF)
/test_grid(测试点云/栅格)
Orin Docker 容器naviai_map_server地图服务,为导航/定位链路提供地图数据/nav_map_server_1783228903900406112(地图服务节点,后缀可能随启动变化)
发布地图和地图元数据
外部 ROS 设备jzrobot-a / 192.168.217.1ROS master、底盘、定位、路径规划、代价地图、轨迹生成等底盘导航侧服务Cartographer
/cartographer_node/cartographer_tf_publisher
/scan_localiser(激光定位)
/costmap_pub_node(代价地图)
/nav_manager_node(导航管理)
/trajectory_generator(轨迹生成)
/driver_manager_node / /jzhw_node(底盘/硬件管理)
外部 ROS 设备pico.zjrx.com / 192.168.217.66上肢、灵巧手、头顶屏、机器人/Pico 状态等服务/video_display(头顶屏显示)
/zj_humanoid/hand(灵巧手)
/zj_humanoid/zj_humanoid_naviai_robot(上肢相关接口)
/zj_humanoid/robot(机器人状态)
/resource_publisher / /errors_publisher(Pico 资源和错误状态)

网络模型

多数容器使用 host 网络。这对 ROS1 很重要,因为 ROS 节点不只是访问 master,还需要节点之间互相回连 XMLRPC/TCPROS 端口。

网络类型容器理解方式
hostsensorperceptionrobotrosbridgesensor_lidarmap_serverchassisnvizdemosnavbrain_rosnovnc直接共享宿主机网络栈,服务监听面属于 Orin 宿主机网络
bridgenaviai_robot_viewer独立 Web 前端服务,宿主机 10002 映射到容器 3000

启动与进程管理

容器拉起方式当前重点
naviai_sensorentrypoint -> supervisordRealsense、OAK、传感器重启服务;wrist_camera 曾为 FATAL
naviai_perceptionentrypoint -> supervisordlio_srvmapping_srvpost_processing_srv、静态 TF、点云/测试网格
naviai_robotentrypoint -> supervisordOrin 资源、错误、Wi-Fi、监控、基础信息
naviai_rosbridgeentrypoint -> supervisordrosbridge_websocket.launchrosapi_node
naviai_sensor_lidarentrypoint -> supervisordLivox MID360 驱动链路
naviai_map_serverentrypoint -> supervisord地图服务节点
naviai_chassisentrypoint -> supervisordstart.sh 拉起底盘桥接节点
naviai_nvizentrypoint -> supervisord当前未看到业务 rviz 进程,仅确认 roscore/rosmaster/rosout
naviai_demosentrypoint -> supervisordsshd 常驻,作为演示/开发入口
naviai_navbrain_rosentrypoint -> /navi_ws/start_ros_nodes_product.shnavbrainavvtn_nodestartup_check;脚本尝试的 nav_service.py 未实际运行
naviai_novnc/app/entrypoint.sh -> supervisordXvfb :99x11vncwebsockifyfluxbox
naviai_robot_viewernpm run devVite Web 查看器

开发含义

开发接入仍以 ROS topic / service 或 rosbridge 为入口。容器信息用于理解服务边界、定位依赖来源,并在需要新增常驻能力时决定进程应该如何管理。

  1. 开发接口先看 主要 ROS 话题/服务
  2. 需要理解接口背后的服务来源时,再回到本页看容器或外部设备归属。
  3. 非 ROS 环境接入走 rosbridge;原生 ROS 程序放进独立 Docker ROS 开发容器。
  4. 需要常驻能力时,再明确它应成为新容器、新进程,还是加入已有容器的 supervisor 管理。