Launching the GORM Rover
The GORM rover can be launched in two modes: development mode (for active development) and production mode (for deployment). This guide covers the development mode. For production deployment, see the Deployment Guide.
Quick Start with Docker (Development Mode)
-
Navigate to the Rover Software Directory: Open a terminal and navigate to the directory where the rover software (on the rover) is located.
cd /workspace/rover-software/docker
-
Run the Docker Container and Attach to It: Start the Docker container that contains the rover software in development mode and attach to it.
./run.sh rover --dev # Attach to the running Docker container docker exec -it rover bash
-
Build the ROS2 Packages: Inside the Docker container, build the ROS2 packages to ensure everything is set up correctly.
colcon build source install/setup.bash
-
Launch the Rover Software: Finally, launch the rover software using the provided launch file.
ros2 launch gorm_bringup bringup_teleop.launch.py
-
(Optional) Developing and changing the code: You can make changes to the code in the
src
directory on the host machine (outside the container on the Jetson Orin). The changes will be reflected inside the container because the source code is mounted as a volume. After making changes, you can rebuild the packages inside the container:colcon build source install/setup.bash ros2 launch gorm_bringup bringup_teleop.launch.py
💡 Production Alternative: For production deployment with automatic restart and pre-built packages, start the deploy image (or use docker-compose).
- Run the Production Deployment: Start the production deployment which runs continuously and automatically restarts if it crashes or the system reboots.
./run.sh rover --prod # or with docker-compose: docker-compose up -d rover-deploy
Useful docker inspection commands
```bash
# List running containers
docker ps
# List all containers (including stopped)
docker ps -a
# View logs of a specific container
docker logs -f <container_name_or_id>
# Access a running container's shell
docker exec -it <container_name_or_id> bash
```
Key Topics
/cmd_vel
- Velocity commands (geometry_msgs/Twist)/odom
- Odometry feedback (nav_msgs/Odometry)/joy
- Joystick input