Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/xXThanatosXx/MobileRobot/llms.txt

Use this file to discover all available pages before exploring further.

This page walks you through the recommended native installation path for ROS2 Humble on Ubuntu 22.04. You will set up a VMware Workstation Player 17 virtual machine, boot an Ubuntu 22.04 Desktop image inside it, and then run two shell scripts from the MobileRobot repository — ros2_install.sh and install_ros_packages.sh — to get a fully configured ROS2 workspace with all mobile-robotics dependencies ready for the course.

Prerequisites

VMware Workstation Player 17

Download VMware-player-17.5.2-23775571.exe.tar from the link, decompress the archive, and run the resulting .exe installer on Windows.

Ubuntu 22.04 Desktop ISO

Download the ubuntu-22.04.5-desktop-amd64.iso image and use it as the installation medium when creating your virtual machine in VMware Player.

System Requirements

  • Ubuntu 22.04.x (Jammy Jellyfish) — 64-bit Desktop edition
  • sudo (administrator) access inside the VM
  • Active internet connection for package downloads
Other ROS distros detected? If you have previously installed a different ROS distribution (e.g. ROS Noetic or ROS2 Foxy), open ~/.bashrc and comment out the line that sources that distro before running ros2_install.sh:
# source /opt/ros/OTHER_DISTRO/setup.bash   ← comment this line out
The script itself will print this warning and pause for confirmation before proceeding. Failing to comment out the old source line can cause environment conflicts.

Installation Steps

1

Download the installation scripts

Clone or download the MobileRobot repository from GitHub and save the Scripts/ folder to your Downloads directory inside the VM.
# Option A — clone the full repository
git clone https://github.com/xXThanatosXx/MobileRobot.git ~/Downloads/MobileRobot

# Option B — download individual scripts manually from
# https://github.com/xXThanatosXx/MobileRobot/tree/main/Scripts
2

Open a terminal

Press Ctrl + Alt + T to launch a new terminal window inside Ubuntu.
3

Navigate to the Downloads folder

cd Downloads
4

Make ros2_install.sh executable

sudo chmod +x ros2_install.sh
5

Verify the executable bit

ls -la
Confirm that ros2_install.sh shows -rwxr-xr-x (or similar) in the permission column.
6

Run the ROS2 installer

./ros2_install.sh
The script will pause twice for confirmation before making any changes. During execution it performs the following actions automatically:
  • Sets locale — configures en_US.UTF-8 system-wide
  • Adds ROS2 APT sources — imports the official ROS signing key and adds the ros2/ubuntu repository
  • Installs ros-humble-desktop — the full desktop meta-package including RViz2, rqt, and demo nodes
  • Creates ~/colcon_ws — initialises a colcon workspace at $HOME/colcon_ws/src and runs an initial colcon build --symlink-install
  • Installs build toolspython3-argcomplete, python3-colcon-common-extensions, python3-vcstool, python3-rosdep2
  • Configures ~/.bashrc — appends aliases and source lines (see .bashrc additions below)
7

Return to home directory and reload the shell

cd
source .bashrc
8

Open a new terminal and update package lists

Press Ctrl + Alt + T to open a fresh terminal so the new .bashrc environment is fully loaded, then run:
source .bashrc
cd ..
sudo apt-get update
9

Install ROS2 simulation and visualisation packages

sudo apt-get install ros-$ROS_DISTRO-joint-state-publisher ros-$ROS_DISTRO-xacro ros-$ROS_DISTRO-joint-state-publisher-gui ros-$ROS_DISTRO-tf2-* ros-$ROS_DISTRO-gazebo-* ros-$ROS_DISTRO-rviz-default-plugins
The $ROS_DISTRO variable is automatically set to humble by the sourced setup file, so no manual substitution is needed.
10

Run the ROS packages installer

Navigate back to your scripts directory, make install_ros_packages.sh executable, verify it, then execute it:
cd Downloads
sudo chmod +x install_ros_packages.sh
ls -la
./install_ros_packages.sh
This script installs the additional mobile-robotics packages used throughout the course, including:
PackagePurpose
ros-humble-ros2-controllersStandard ROS2 hardware controllers
ros-humble-gazebo-ros-pkgsGazebo–ROS2 integration
ros-humble-ros2-controlHardware abstraction layer
ros-humble-gazebo-ros2-controlGazebo ROS2 control plugin
ros-humble-turtlesimSimulation tutorial package
ros-humble-robot-localizationEKF/UKF state estimation
ros-humble-joy & ros-humble-joy-teleopJoystick teleoperation
ros-humble-tf-transformationsTF utility functions
ros-humble-plotjuggler-rosReal-time data plotting
11

Reload the shell environment

source .bashrc
12

Install pip for Python 3

sudo apt-get install python3-pip
13

Install the transforms3d Python package

pip install transforms3d
14

Install Terminator (optional but recommended)

Terminator provides a split-pane terminal that is very useful when working with multiple ROS2 nodes simultaneously.
sudo apt-get install terminator
15

Verify the ROS2 installation

rosversion -d
Expected output:
humble
If you see humble printed, the installation completed successfully and ROS2 Humble is the active distribution in your shell.

.bashrc Additions Added by the Script

After ros2_install.sh finishes, the following lines are appended to your ~/.bashrc:
alias nb='nano ~/.bashrc'
alias sb='source ~/.bashrc'
source /opt/ros/humble/setup.bash
source ~/colcon_ws/install/setup.bash
source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash
export ROS_DOMAIN_ID=0
The nb and sb aliases are convenience shortcuts for editing and reloading your shell configuration. The three source lines ensure that the ROS2 environment, your workspace overlay, and colcon tab-completion are all loaded in every new terminal session.
ROS_DOMAIN_ID is set to 0 by default. If you are working on a shared network with other ROS2 users, change this value in ~/.bashrc to any integer between 0 and 101 so your nodes only communicate with peers on the same domain. Use the nb alias to open .bashrc quickly, then run sb to apply the change.

Build docs developers (and LLMs) love