Skip to content

Softie 102: Setup Rover ROS 2 Humble Environment

BarryZe edited this page Mar 22, 2025 · 4 revisions

Welcome to the Rover-2025 Wiki!

1. Install Ubuntu 22.04 (Jammy Jellyfish)

Download Ubuntu 22.04 image from here. For dual booting only.

Several options are available for installing Ubuntu:

  • VirtualBox:
    (Windows/Linux) Slow but open-source and easy to install. Does not support Mac with Arm processors.

  • VMWare:
    (Windows/Mac/Linux) Requires creating a Broadcom account to download; marginally better than VirtualBox. VMWare Fusion supports Mac.

  • WSL: (Best imo!!!!!!)
    (Windows) Fast but might have graphics compatibility issues with Gazebo.

  • Dual-boot:
    More steps involved, but it offers the best performance.

2. Install ROS 2 Humble and Colcon

ROS 2 Humble installation guide available here.

Colcon installation guide available here.

Colcon mixin repository https://github.com/colcon/colcon-mixin-repository.

colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
colcon mixin update default

Install Required ROS 2 Packages

Use the following command to install necessary packages

sudo apt install ros-humble-ros-ign* ros-humble-ros-gz* ros-humble-xacro \
ros-humble-joint-state-publisher ros-humble-joint-state-publisher-gui \
ros-humble-gazebo-msgs ros-humble-gazebo-plugins \
ros-humble-teleop-twist-keyboard ros-humble-ros2topic

Useful for your .bashrc. Use with caution. Put the following lines in ~/.bashrc, don't run these line directly.

alias sros='source /opt/ros/humble/setup.bash && [ -f install/setup.bash ] && source install/setup.bash'
sros
alias kros='sudo pkill -f ros2; sudo pkill -f rviz; sudo pkill -f gazebo; sudo pkill -f gzserver; sudo pkill -f gzclient; sudo pkill -f ign; sudo pkill -f python3; sudo pkill -f rclpy; sudo pkill -f rosbridge'

Useful for WSL:

# Adapter settings: AMD, Intel, NVIDIA
export MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIA
export MESA_NO_VULKAN=1
export MESA_LOADER_DRIVER_OVERRIDE=iris

# Display settings: 0 - WSL, 1 - Windows
# export DISPLAY=:0
# export DISPLAY=$(ip route list default | awk '{print $3}'):0

# Software rendering: 0 - hardware, 1 - software
# export LIBGL_ALWAYS_SOFTWARE=1
unset LIBGL_ALWAYS_SOFTWARE

# Disable indirect rendering: 0 - enable, 1 - disable
# export LIBGL_ALWAYS_INDIRECT=1
# export LIBGL_ALWAYS_INDIRECT=0

3. Rover code

Creating the Rover Work Space Directory

mkdir -p ~/rover25_ws #creating the rover25_ws directory at the home directory of the current user
cd ~/rover25_ws #entering the rover25_ws directory we have just created.

Making a copy of the Rover Software 2025 Source Directory at rover25_ws directory we just created

git clone https://github.com/mcgill-robotics/rover-2025.git src

or if you are already in the McGill Robotics GitHub organization

git clone [email protected]:mcgill-robotics/rover-2025.git src

Then

cd ~/rover25_ws
colcon build

Test rviz

cd ~/rover25_ws
sros
ros2 launch sim rover_gz_sim.launch.py 

image

Test gazebo sim

cd ~/rover25_ws
sros
ros2 launch sim rover_gz_sim.launch.py 

image

If the simulation crashes, try:

echo "export LIBGL_ALWAYS_SOFTWARE=1" >> ~/.bashrc
source ~/.bashrc

Once Gazebo launches, you can control it with this ROS node:

ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args --remap cmd_vel:=/cmd_vel

By the way, sros is source /opt/ros/humble/setup.bash && [ -f install/setup.bash ] && source install/setup.bash.

4. MoveIt2 setup for arm kinematics (TODO)

https://moveit.picknik.ai/humble/doc/tutorials/getting_started/getting_started.html

Clone this wiki locally