Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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)

  1. 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
    
  2. 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
    
  3. 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
    
  4. Launch the Rover Software: Finally, launch the rover software using the provided launch file.

    ros2 launch gorm_bringup bringup_teleop.launch.py
    
  5. (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).

  1. 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