feat: navigation docker updates from bona_local_dev#1081
Conversation
…k to controll robot
…when build and run start.sh
…hc for cv_bridge if humble. verified start.sh --simulation with --jazzy and --humble work. verified start.sh --hardware --route-planner with --humble and --jazzy work on real robot, --rviz option preserved
…nused layout mount - Created foxglove_utility/ folder with twist_relay.py and goal_autonomy_relay.py - Updated Dockerfile to copy relay scripts from foxglove_utility/ instead of ros-navigation-autonomy-stack - Removed foxglove_layout.json mount from docker-compose.yml (not needed in container)
…n Dockerfile - Add langchain-core and langchain to pip install for dimos.agents support - Copy dimos source and install as editable package during build - Update comment to reflect dimos source handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@greptile updated to push to dev, less files this time, please review |
Greptile SummaryEnhances the navigation Docker setup with multi-ROS distribution support (Humble/Jazzy), Foxglove Studio integration for remote visualization, and significant improvements to hardware mode automation. The PR successfully addresses previous issues with Unity and RViz PID tracking in Key improvements:
The changes follow Docker best practices and improve the developer/operator experience significantly. Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant StartScript as start.sh
participant Docker as Docker Compose
participant Container as Navigation Container
participant ROS as ROS2 Navigation
participant Foxglove as Foxglove Bridge
participant Unity as Unity Simulator
participant DimOS as DimOS Agent
User->>StartScript: ./start.sh --hardware/--simulation
StartScript->>StartScript: Parse flags (ROS distro, route-planner, rviz, dev)
StartScript->>StartScript: Check .env config (hardware mode)
StartScript->>StartScript: Detect device group IDs
StartScript->>Docker: docker compose up
Docker->>Container: Launch container with ROS_DISTRO
Container->>Container: Execute /ros_entrypoint.sh
Container->>Container: Configure DDS (FastDDS)
Container->>Container: Setup network (lidar interface)
Container->>Container: Generate MID360_config.json
alt Simulation Mode
Container->>Unity: Launch Model.x86_64
Container->>ROS: ros2 launch system_simulation_with_route_planner.launch.py
Container->>DimOS: python demo_ros_navigation.py
else Hardware Mode
Container->>ROS: ros2 launch system_real_robot.launch.py
Container->>Foxglove: ros2 launch foxglove_bridge
Container->>Container: Start twist_relay.py (Twist→TwistStamped)
Container->>Container: Start goal_autonomy_relay.py (goal→Joy)
end
User->>Foxglove: Connect to ws://localhost:8765
User->>Foxglove: Load Overwatch.json layout
User->>Foxglove: Click to set goal_pose
Foxglove->>Container: Publish /goal_pose
Container->>ROS: goal_autonomy_relay publishes /joy (autonomy ON)
ROS->>ROS: Navigate to goal
ROS->>Foxglove: Publish /cmd_vel, /state_estimation, status
Foxglove->>User: Display navigation progress
|
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
- Track RVIZ_PID and UNITY_PID for proper cleanup - Add graceful shutdown for RViz and Unity before other processes - Add pkill fallback for rviz2 and Model.x86_64
Adds development-specific volume mounts for editing ROS configs without rebuilding the image (SLAM and local planner configs).
Verify Unity Model.x86_64 exists before attempting to run it. Continue with warning if not present instead of failing.
|
@greptile, addressed comments, please review. |
Nice catch, added to the commit. Thanks! |
… Unitree Go2 Navigation & Exploration Beta Pre-Release v0.0.8: Unitree Go2 Navigation & Exploration Beta, Transport Updates, Documentation updates, Rerun fixes, Person follow, Readme updates ## What's Changed * Small docs clarification about stream getters by @leshy in #1043 * Fix split view on wide monitors by @jeff-hykin in #1048 * Docs: Install & Develop by @jeff-hykin in #1022 * Add uv to nix and fix resulting problems by @jeff-hykin in #1021 * v0.0.8 by @paul-nechifor in #1050 * Style changes in docs by @paul-nechifor in #1051 * Revert "Add uv to nix and fix resulting problems" by @leshy in #1053 * Transport benchmarks + Raw ros transport by @leshy in #1038 * feat: default to rerun-web and auto-open browser on startup (browser … by @Nabla7 in #1019 * bbox detections visual check by @leshy in #1017 * fix: only auto-open browser for rerun-web viewer backend by @Nabla7 in #1066 * move slow tests to integration by @paul-nechifor in #1063 * Streamline transport start/stop methods by @Kaweees in #1062 * Person follow skill with EdgeTAM by @paul-nechifor in #1042 * fix: increase costmap floor z_offset to avoid z-fighting by @Nabla7 in #1073 * Fixed issue #1074 by @alexlin2 in #1075 * ROS transports initial by @leshy in #1057 * Fix System Config Values for LCM on MacOS and Refactor by @jeff-hykin in #1065 * SHM Transport basic fixes by @leshy in #1041 * commented out Mem Transport test case by @leshy in #1077 * Docs/advanced streams update 2 by @leshy in #1078 * Fix more tests by @paul-nechifor in #1071 * feat: navigation docker updates from bona_local_dev by @baishibona in #1081 * Fix missing dependencies by @Kaweees in #1085 * Release readme fixes by @spomichter in #1076 ## New Contributors * @baishibona made their first contribution in #1081 **Full Changelog**: v0.0.7...v0.0.8
Summary
Test plan
./build.sh