-
-
Notifications
You must be signed in to change notification settings - Fork 5
2. Install ROS
We highly recommend running Ubuntu 20.04 LTS natively. This will be by far the smoothest experience. There are many tutorials on dual booting out there if you are not comfortable with daily driving Linux. You will likely need 20-30 GB of space for your Linux partition.
Please note that we will only officially support Ubuntu 20.04 LTS running natively. All other options are not as thoroughly tested and we cannot provide the same level of support if you run into any issue. However, here are some other options you can try to explore:
- Ubuntu 20.04 LTS in a VM (Makes things like USB and GPU access difficult)
- Other Linux distro of choice with an Ubuntu Docker container
- Natively setup ROS on some other distro by compiling all packages from sources (some of our members have been successful in doing this for Arch)
- Older Mac with Docker container
- M1 Mac Virtualized Docker container
- WSL on Windows 11
Some other things to know:
- The new M1 Macs use an ARM architecture which means that they are extremely incompatible with lots of things. We have not been successful at getting everything running correctly on M1 Macs despite much effort.
- WSL on Windows 10 is missing a lot of features and has proven to be much more trouble than its worth. WSL on Win11 still leaves a lot to be desired and does have strange issues from time to time, but seems to be much better. WSL is by far the worst option listed though in any case.
Docker is a platform for containers. Containers are essentially a way to package the userspace of an operating system and ship it. By using containers, you can avoid having to manually install dependencies and set up the enviornment. Instead, you will essentially use a copy of our development environment.
First pull the auton Docker image from Docker Hub.
docker pull umrover1/ros:autonThen create a catkin workspace directory called "catkin_ws" in your home directory, and clone the MRover repo into it (this doesn't have to be called "catkin_ws" and it doesn't have to be directly in your home directory, but these are the standards we use). You will have to rename the repo from "mrover-ros" to "mrover" to align with the package name.
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/umrover/mrover-ros.git
mv ~/catkin_ws/src/mrover-ros ~/catkin_ws/src/mroverIf instead, you already have a catkin workspace with the MRover repo in it, you will need to effectively reset your catkin workspace by deleting everything but the src directory. This is necessary because the paths initialized by catkin when running catkin init locally will no longer work once your catkin workspace is mounted to the Docker container.
cd ~/catkin_ws
rm -rf devel/ build/ .catkin_tools/ logs/Now you can run the Docker container with your catkin workspace mounted to it, and open a bash shell inside of it
docker run -it --name ros_auton --env="DISPLAY" --volume=/home/${USER}/catkin_ws/:/mnt/ --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --privileged mrover/ros bashOnce you are inside the Docker container, you will need to initialize (or reinitialize) and build your catkin workspace, which is now located in the /mnt folder
cd /mnt
catkin init
catkin buildNow that your catkin workspace is ready, you need to source the ROS setup files. you will need to do this every time you open a new terminal session inside the Docker container
source /opt/ros/noetic/setup.bash
source /mnt/devel/setup.bashTo open additional terminal sessions in the same Docker container, run
docker exec -it ros_auton bashor use a terminal multiplexer like tmux.
First, add ROS to your package repositories and install base ROS packages
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update
sudo apt install ros-noetic-desktop python3-catkin-tools python3-rosdepNow use rosdep to install all necessary dependencies
sudo rosdep init
rosdep update
rosdep install --from-paths ~/catkin_ws/src/ --ignore-src -y --rosdistro=noetic