Navigation Docker: Humble/Jazzy support, Foxglove integration, and watermark#1049
Navigation Docker: Humble/Jazzy support, Foxglove integration, and watermark#1049baishibona wants to merge 16 commits intodimensionalOS:devfrom
Conversation
|
@greptile |
Greptile SummaryThis PR successfully adds dual ROS2 distribution support (Humble and Jazzy) to the navigation Docker setup, integrates Foxglove visualization as the primary remote operation tool, and significantly improves the developer experience with automated startup workflows. Key Changes:
Minor Observations:
Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant build.sh
participant Docker
participant start.sh
participant Container
participant ROS
participant Foxglove
User->>build.sh: ./build.sh --humble/--jazzy
build.sh->>build.sh: Clone ros-navigation-autonomy-stack
build.sh->>Docker: Build with ROS_DISTRO arg
Docker->>Docker: Stage 1: Build dependencies (Livox, GTSAM, etc)
Docker->>Docker: Stage 2: Create runtime image
Docker->>Docker: Install langchain, copy relay scripts
Docker-->>build.sh: Image ready
User->>start.sh: ./start.sh --hardware --route-planner --humble
start.sh->>start.sh: Validate .env config
start.sh->>start.sh: Check network interface & devices
start.sh->>start.sh: Auto-detect GIDs (input, dialout)
start.sh->>Docker: docker compose up with ROS_DISTRO
Docker->>Container: Start container with privileged mode
Container->>Container: Configure network interface for lidar
Container->>Container: Generate MID360_config.json
Container->>ROS: Launch system_real_robot.launch (or with_route_planner)
Container->>ROS: Start twist_relay.py
Container->>ROS: Start goal_autonomy_relay.py
Container->>Foxglove: Launch foxglove_bridge on port 8765
User->>Foxglove: Connect to ws://robot-ip:8765
User->>Foxglove: Load Overwatch.json layout
User->>Foxglove: Click to send goal_pose
Foxglove->>ROS: Publish PoseStamped to /goal_pose
ROS->>ROS: goal_autonomy_relay receives goal_pose
ROS->>ROS: Publish Joy message to enable autonomy
ROS->>ROS: pathFollower processes goal and navigates
|
|
Addressed in latest commit 👍 @greptile please re-review if applicable |
Greptile found no issues!From now on, if a review finishes and we haven't found any issues, we will not post anything, but you can confirm that we reviewed your changes in the status check section. This feature can be toggled off in your Code Review Settings by deselecting "Create a status check for each PR". |
Can you add |
Thanks Alex for verifying this. Given that you run ./start.sh --humble it actually runs simulation, and langchain related dependencies are required (there is a commit: 65b04c05f could remove the constraints, but it's not merged with dev), currently I have to install those dependencies into the docker (increased the docker image from 7GB to 10GB). Now it should work in both simulation and hardware (verfied with both humble and jazzy), the previous version was likely build on some of the cached layers so worked on my end but not yours -- thanks a lot for taking the time to verify and validate this one your end. Please feel free to give it another try now. @greptile updated commit, please review. |
…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
014a25e to
01d8072
Compare
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Closed in favor of #1081 |
Summary
--humbleor--jazzyflags in build and start scripts--hardware --route-plannerfor both Humble and Jazzy--rvizoption functionalityTest plan
start.sh --simulationwith--jazzyand--humblestart.sh --hardware --route-plannerwith--humbleand--jazzyon real robot--rvizoption works correctly