Portable ROS Installation (Unofficial)
Supported Platforms
Section titled “Supported Platforms”The portable environment is built on pixi and currently supports:
| Subteam | Non-Ubuntu24 Linux | Mac |
|---|---|---|
| Navigation | Supported | Supported |
| Perception | Mostly Supported* | Mostly Supported** |
| Localization | Supported | Supported |
| ESW | Supported | Mostly Supported*** |
| Teleop | Supported | Supported |
| Drone | Supported | Supported |
*Zed SDK is only available for Ubuntu
**CUDA is not available on Mac
***The main mrover-esw is supported on mac, but mrover-ros2 will not build the ESW module on mac
For Windows, please install Ubuntu 24 directly. WSL2 will NOT work.
For members with Snapdragon laptops, we recommend getting a loaner from the University here.
Set Up Your SSH Key
Section titled “Set Up Your SSH Key”To clone our code repository from GitHub, you need to add SSH keys so that Github can authenticate you.
Github explains the SSH process here.
TL;DR:
- complete the “Generating a new SSH key” section detailed here
- run
cat ~/.ssh/id_ed25519.pub, copy output - visit here
- click
New SSH key - paste output in
Install
Section titled “Install”Run:
curl -fsSL https://raw.githubusercontent.com/umrover/mrover-ros2/skj/portable/bootstrap-portable.sh | bashThis clones the repo to ~/ros2_ws/src/mrover-ros2, installs relevant packages and libraries, then runs Ansible and sets up your environment using Pixi.
If you already have the repo cloned, skip bootstrap-portable.sh and run ./setup-portable.sh directly.
You’ll also need an SSH key set up with Github to clone. See Github’s guide if you haven’t done that yet.
Once it finishes, log out and back in (or reboot), open a new terminal, and run:
mrover./build.shmrover jumps you into the repo and activates your environment, except here that environment is the pixi shell, not your system Python/ROS install.
Sanity Check
Section titled “Sanity Check”Open a new terminal, run mrover, and run:
ros2 launch mrover simulator.launch.pyIf the simulator launches, you have successfully set up the codebase and ROS environment.
Keeping Dependencies Up to Date
Section titled “Keeping Dependencies Up to Date”Run the dev-portable playbook:
./ansible.sh dev-portable.yml