Skip to content

CPRT/rover

Repository files navigation

CPRT Rover

Carleton's Planetary Robotics Team (CPRT) code for rover side operations.

Dependencies

  • Docker: Required to build and run the development container.
  • Git: Needed to clone the repository and its submodules.4
  • WSL: Needed to run docker desktop (Windows only)*

Getting Started

Ensure you have an SSH key associated with you github account

To clone this repository along with all its submodules, run:

git clone --recurse-submodules git@github.com:CPRT/rover.git

Running Dev container

  1. Download the VS Code Remote Extension
  2. Click the remote explorer button in bottom left corner
  3. Select re-open in container
  4. Select config file consistent with your setup (see below)
  5. Source ros.sh to source the ros2 virtual environment
. ros.sh

Choosing a Dev Container profile

  • base-station: Specifically tuned to our base station setup (Not recommended on other machines)
  • jetson: Specifically tuned to our rover setup (Not recommended on other machines)
  • linux-gui: Only on x11 linux distros. Allows you to launch GUIs from inside the container. Optionally supports most nvidia GPUs. Recommended 50GB of disk space
  • linux-lite-gui: Only on x11 linux distros. Allows you to launch GUIs from inside the container. Very limited GPU support. Recommended 30GB of disk space
  • linux-lite-headless: Should work on most linux distros. No GPU support. Recommended 30GB of disk space
  • windows: Works on windows 11 and some Macbooks. Requires Docker desktop. No GPU support. No GUI support. Recommended 30GB of disk space

If the current selection of profiles don't meet your needs it is pretty easy to make your own - ask us how!

When using alongside webUI launching

  • Make sure to set ROS_DISCOVERY_SERVER=<ip of rover>
  • To make ros2 topic list work, set ROS_SUPER_CLIENT=TRUE
  • Restart the Docker daemon
export ROS_DISCOVERY_SERVER=192.168.0.55:11811
export ROS_SUPER_CLIENT=TRUE
ros2 daemon stop
ros2 daemon start

Launching a docker container like the webUI

docker run -it \
  --privileged \
  --network host \
  --ipc host \
  --rm \
  -e ROS_DISCOVERY_SERVER=192.168.0.55:11811 \
  --runtime=nvidia \
  --volume /dev/serial/by-id:/dev/serial/by-id \
  --volume /dev/v4l/by-id:/dev/v4l/by-id \
  --volume /usr/local/zed:/usr/local/zed \
  cprtsoftware/rover:latest \
  <COMMAND>

Building the Docker

Setup

To build the docker images you need to make sure to use the default buildx builder

docker buildx use default

Additional tools in the docker image

Linter

This stage checks for pylint, black and clang-format checks to keep consistency across the codebase. Note it is possible that it fails in the MR ci/cd pipelines if new dependancies are added since the base image will not be rebuilt yet. If it still fails during the push pipeline then something is actually wrong. TODO: Fix this so it will catch it in the PR pipeline.

./docker_build --test

rosdep exporter

This is used to generate the rosdep-keys.txt file

  ./setup/generate_rosdeps.sh

Upgrade to Ubuntu 24.04 / Jetpack 7

Migration Checklist

  • Move base images to Ubuntu 24.04
  • Update all ROS 2 build stages
  • Migrate GStreamer builds to binary packages
  • Update docker build scripts
  • Update DeepStream
  • Upgrade the ZED wrapper
  • Get full dev image building
  • Update dev container configs
  • Get code building inside dev container (Update c++ API calls)
  • Get the full images building locally
  • Get the -lite images building locally
  • Create a local docker build option (Build without internet or volume mounting)
  • Get pylint passing
  • Switch build machine to default docker builder
  • Get PR pipeline working
  • Replace all references to ROS 2 Humble
  • Update Jetson setup scripts
  • Clean up git history
  • Get build pipeline working
  • Reflash Jetson AGX with JP7
  • Reflash Jetson NANO with JP7
  • Update Readme and other documentation

High risk verification

  • Zed Camera node
  • Video Streaming
  • Aruco detection
  • Moveit Servo
  • Nav2 stack
  • WebUI
  • Windows dev container

About

The on-board code for the CPRT rover

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors