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 terminatorWhat 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-controlWhat 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-controllersWhat 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-xacroWhat 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)
All ROS 2 Control Related Packages
sudo apt-get install ros-jazzy-*-ros2-controlWhat 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-guiWhat 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-turtlesimWhat 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-localizationWhat 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-joyWhat it does:
- Reads joystick and gamepad inputs
Used with:
USB joysticks
Xbox controllers
PlayStation controllers
Joystick Teleoperation
sudo apt-get install ros-jazzy-joy-teleopWhat 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-transformationsWhat 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-pipInstall 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-transforms3dWhat it does:
- Python math library for:
- Rotations
- Quaternions
- Transformation matrices
Used for:
Coordinate transformations
Robotics math
Pose estimation