Repository for this Module

Objective

Welcome to this module.

In this module, we will simulate a custom robot and a UR5 robot with a Robotiq gripper in Gazebo, and we will interface the robot simulation with MoveIt2.

The objective is simple: by the end of this module, you will understand how to structure a complete ROS2 simulation pipeline for a robotic application.

You will work with:

ROS2 Humble
Gazebo Classic
MoveIt2
UR5 robot simulation
Robotiq 2F-85 gripper
Custom MoveIt configuration packages
3D camera integration
Inverse kinematics nodes
Pick-and-place logic

How to Follow This Module

There are three possible ways to follow the lessons.

The first option is to follow me step by step. This is the recommended approach if you are still building confidence with ROS2, Gazebo, and MoveIt2.

The second option is to clone the repositories, watch the videos, and reproduce the same result on your machine.

The third option is more advanced: at the beginning of each lesson, I will give you the objective. You can pause the video, try to solve the problem by yourself, and then compare your solution with my implementation.

This is one of the best ways to really learn robotics software engineering.

Do not just watch the course passively. Open your IDE, open a terminal, clone the repositories, build the workspace, run the launch files, break things, fix things, and understand why each component is needed.

Workspace Structure

For this module, create a ROS2 workspace. For example:

mkdir -p ~/ur_ws/src
cd ~/ur_ws/src


Inside the srcfolder, we will clone all the repositories required for this module.

GitHub Repositories

Clone the following repositories inside your ROS2 workspace

src folder.

git clone https://github.com/UniversalRobots/Universal_Robots_ROS2_Description

This repository contains the UR robot description packages: URDF, meshes, and robot description files.

git clone https://github.com/UniversalRobots/Universal_Robots_ROS2_Gazebo_Simulation

This repository provides the Gazebo simulation integration for Universal Robots.

git clone https://github.com/PickNikRobotics/ros2_robotiq_gripper

This repository contains the ROS2 description and integration for the Robotiq gripper.

git clone https://github.com/LearnRoboticsWROS/ur5_simulation

This is the custom simulation package used in this module.

git clone https://github.com/LearnRoboticsWROS/ur5_camera_gripper_moveit_config_master_class

This package contains a MoveIt2 configuration for the UR5 with camera and gripper setup.

git clone https://github.com/LearnRoboticsWROS/ur5_camera_gripper_robotiq_moveit_config_master_class

This package contains the MoveIt2 configuration for the UR5 with the Robotiq gripper.

git clone https://github.com/LearnRoboticsWROS/3D_cv_master_class

This repository contains the 3D computer vision utilities used later in the simulation pipeline.

git clone https://github.com/LearnRoboticsWROS/ur5_ik_master_class

This repository contains inverse kinematics examples and nodes for controlling the robot through code.

Build the Workspace

After cloning the repositories, go back to the root of the workspace:

cd ~/ur_ws
colcon build --symlink-install
source install/setup.bash

If the build fails, do not panic. In robotics, dependency issues are normal. Read the terminal error carefully, check which package failed, install the missing dependency, and build again.

Why We Use These Repositories

The goal of this module is not only to launch a robot in Gazebo.

The goal is to understand how a real robotics software stack is organized.

We need:

Robot description packages
Simulation packages
Gripper packages
MoveIt2 configuration packages
Application packages
Computer vision packages
Inverse kinematics packages

Each repository has a specific role in the architecture.

The robot description tells ROS2 what the robot looks like.

Gazebo simulates the physics.

MoveIt2 plans the motion.

The gripper package adds the end effector.

The IK and application packages allow us to start writing robot logic in code.

This is the foundation for more advanced robotics applications.

Key Takeaway

In this lesson, you prepared the repositories required for this module.

You can either follow every step exactly, or you can use each lesson objective as a challenge and try to implement the solution by yourself first.

The important point is this: robotics software engineering is learned by building systems.

So keep your terminal open, keep your IDE open, and use this module as a practical playground to understand how simulation, MoveIt2, Gazebo, robot descriptions, grippers, cameras, and code work together in ROS2.

Complete and Continue  
Discussion

0 comments