Tech Arcanist
Get in touch

03Chapter 3 of 51 · 3 min read

Development Environment Setup for ROS 2 Jazzy on Ubuntu (With Clear Explanations)

Step 1: Install Visual Studio Code

  • Open the Ubuntu App Store
  • Install Visual Studio Code

Step 2: Install VS Code Extensions

Open Visual Studio Code → go to Extensions and install:

  • C/C++
  • C/C++ Extension Pack
  • CMake Tools
  • CMake
  • Python
  • XML
  • XML Tools
  • Robotics Developer Environment

Why these are needed

  • Robotics DC/C++ & CMake → ROS core packages are mostly C++
  • Python → ROS Python nodes and scripts
  • XML & XML Tools → URDF, Xacro, launch files
  • Robotics Developer Environment → ROS-specific helpers and toolingeveloper Environment

Step 3: Install Terminator (Advanced Terminal)

sudo apt-get install terminator

What this command means

  • sudo → run as administrator
  • apt-get → Ubuntu package manager
  • install → install a package
  • terminator → terminal application

Why Terminator is important

  • Multiple terminals in one window
  • Running several ROS nodes at once
  • Monitoring logs, topics, and builds side-by-side

Terminator Keyboard Shortcuts

Ctrl + Shift + E → Open terminal to the right

Ctrl + Shift + O → Open terminal below

Ctrl + Shift + W → Close current terminal

Ctrl + Shift + X → Maximize terminal (press again to restore)

Step 4: Install ROS 2 Jazzy Core Packages

ROS 2 Control Framework

sudo apt-get install ros-jazzy-ros2-control

What it does:

  • Core framework for hardware interfaces
  • Connects ROS to motors, joints, and actuators

Used for:

Real hardware and simulation

Mobile robots

Robotic arms

Robotic arms

ROS 2 Controllers

sudo apt-get install ros-jazzy-ros2-controllers

What it does:

  • Provides standard controllers:
  • Position
  • Velocity
  • Effort

Used for:

Arm motion

Wheel control

Joint control

Xacro (URDF Macros)

sudo apt-get install ros-jazzy-xacro

What it does:

  • Adds macro support to URDF files

Why important:

  • Cleaner robot descriptions
  • Reusable components
  • Parameterized designs

Almost all real robots use Xacro.

Gazebo + ROS Bridge

sudo apt-get install ros-jazzy-ros-gz*

What it does:

  • Installs Gazebo simulation and ROS bridge
  • The * installs all related packages

Used for:

Physics testing before real deployment

Robot simulation

Sensors (LiDAR, camera, IMU)

sudo apt-get install ros-jazzy-*-ros2-control

What it does:

  • Installs every Jazzy package related to ros2-control

Why needed:

Ensures full compatibility with simulation and real robots

Avoids missing plugins or hardware interfaces

Joint State Publisher GUI

sudo apt-get install ros-jazzy-joint-state-publisher-gui

What it does:

  • GUI sliders to manually move joints

Used for:

Debugging joint limits

Testing URDF files

Visualizing motion in RViz

Turtlesim

sudo apt-get install ros-jazzy-turtlesim

What it does:

  • Simple ROS simulator

Why important:

  • Learn ROS basics:
  • Nodes
  • Topics
  • Services
  • Teleoperation

Ideal for beginners

Robot Localization

 sudo apt-get install ros-jazzy-robot-localization

What it does:

  • Sensor fusion using EKF / UKF
  • Combines IMU, wheel odometry, GPS

Used for:

Navigation and SLAM

Accurate robot pose

Joystick Support

sudo apt-get install ros-jazzy-joy

What it does:

  • Reads joystick and gamepad inputs

Used with:

USB joysticks

Xbox controllers

PlayStation controllers

Joystick Teleoperation

sudo apt-get install ros-jazzy-joy-teleop

What it does:

  • Converts joystick input into robot velocity commands

Used for:

Testing motion control

Manual robot driving

TF Transform Utilities

sudo apt-get install ros-jazzy-tf-transformations

What it does:

  • Python utilities for 3D transformations
  • Quaternion ↔ Euler conversions

Used in:

Coordinate frame handling

Localization

Navigation

TF Transform Utilities

sudo apt-get install python3-pip

Install pip

sudo apt-get install python3-pip

What it does:

  • Installs Python package manager

Why needed:

Running ROS Python nodes

Installing robotics Python libraries

Install transforms3d

sudo apt install python3-transforms3d

What it does:

  • Python math library for:
  • Rotations
  • Quaternions
  • Transformation matrices

Used for:

Coordinate transformations

Robotics math

Pose estimation