Public | Automated Build

Last pushed: 3 months ago
Short Description
Base image that sets up permissions voodoo using `gosu`.
Full Description


Contains the CMR production code.


To get started with the CMR codebase, you must first have Linux installed.
We highly recommend Arch Linux, but any version will do since we are using
Docker. You can use a VM, but we highly recommend
installing Linux to a partition on your hard drive.

Once you're up and running with Linux, run the following commands (note, these
commands are only tested on Arch Linux. You may need to modify them slightly if you
have a different package manager).

sudo pacman -S git python
mkdir -p ~/cmr/ws/src/
git clone ~/cmr/ws/src/Superproject
eval `~/cmr/ws/src/Superproject/cmr_scripts/cmr eval`

You may have to restart your computer after this in order for Docker to work

Note: if you have an existing version of ROS installed locally, it is highly
recommended that you clear your ~/.bashrc file of the following lines:

  • source /opt/ros/$ROS_DISTRO/setup.bash
  • source $CMR_WS/devel/setup.bash

This way, you will not accidentally run roscore outside of Docker (see
'Running code' below)

Network setup

When connecting to the NUC, you need to have an active Ethernet connection with
the following settings:

  • IPv4 address: (specified in as HOST_IP)
  • Netmask:

It's recommended that you give this network a descriptive name such as "Intel

Advanced setup

The scripts in cmr_scripts rely on various environment variables from the
config in order to function properly. Local changes can be made through the file:



Writing Code

You can modify code directly within Superproject, and any changes will propagate
to the Docker image. This is possible due to
Docker volumes.

Building Code

After adding eval $(cmr eval) to your .bashrc (then restarting your shell),
you should be able to build code using the command cmr make. This command
builds the CMR Docker images, then builds your code within a Docker container.

You can run cmr make from anywhere; it figures out whether Docker is already
running and whether you need to run inside Docker.

Running Code

You should run code within a Docker container, since this container has the
software configuration that will be used in production. Run the command
cmr shell to get inside the Docker image and start running commands (e.g.
rostopic list). cmr shell automatically spawns a container running
roscore, so you don't need to run roscore yourself.

To run the actual rover code, see cmr_docs/

For help on how to use cmr shell, run cmr shell -h. The cmr utility also
has lots of other handy subcommands. Run cmr -h for a complete list.

Docker Pull Command
Source Repository

Comments (0)