A 3-DOF robotic manipulator simulation powered by ROS 2 Jazzy, ros2_control, and Gazebo Harmonic. This project demonstrates robotic arm control, kinematics, and motion planning.
Tejas Murkute
- π M.Sc. Industry 4.0: Automation, Robotics & 3D Manufacturing - SRH Berlin
- π§ herrtejasmurkute@gmail.com
- πΌ LinkedIn
- π GitHub
This project was developed while completing the Robotics and ROS 2 - Learn by Doing! Manipulators course by Antonio Brandi.
Original concepts and robot design from Arduino-Bot. This repository is my personal implementation adapted for ROS 2 Jazzy.
| Feature | Description |
|---|---|
| 3-DOF Arm | Base rotation, shoulder, elbow + gripper |
| ROS 2 Jazzy | Ubuntu 24.04 compatible |
| ros2_control | Joint trajectory control |
| Gazebo Harmonic | Modern physics simulation |
| Gripper | Functional gripper with mimic joint |
roboticarm_jazzy_ws/
βββ src/
β βββ roboticarm_description/ # URDF, meshes, RViz config
β βββ roboticarm_controller/ # ros2_control configuration
β βββ roboticarm_bringup/ # Launch files, world files
βββ docs/images/
βββ README.md
- Ubuntu 24.04 (Noble Numbat)
- ROS 2 Jazzy Jalisco
- Gazebo Harmonic
sudo apt update && sudo apt install -y \
ros-jazzy-ros2-control \
ros-jazzy-ros2-controllers \
ros-jazzy-gz-ros2-control \
ros-jazzy-ros-gz-sim \
ros-jazzy-ros-gz-bridge \
ros-jazzy-xacro \
ros-jazzy-robot-state-publisher \
ros-jazzy-joint-state-publisher-gui \
ros-jazzy-controller-manager \
ros-jazzy-joint-trajectory-controller \
ros-jazzy-joint-state-broadcaster# Create workspace
mkdir -p ~/roboticarm_jazzy_ws/src
cd ~/roboticarm_jazzy_ws/src
# Clone repository
git clone https://github.com/HerrTejas/roboticarm_ros2_jazzy.git .
# Copy mesh files (see Mesh Files section below)
# Build
cd ~/roboticarm_jazzy_ws
colcon build --symlink-install
source install/setup.bashThe STL mesh files are required for visualization. Copy them to:
roboticarm_description/meshes/
Required files:
basement.STLbase_plate.STLforward_drive_arm.STLhorizontal_arm.STLclaw_support.STLleft_finger.STLright_finger.STL
source ~/roboticarm_jazzy_ws/install/setup.bash
ros2 launch roboticarm_description display.launch.pyUse the Joint State Publisher GUI sliders to move the arm.
ros2 launch roboticarm_bringup gazebo.launch.pyros2 launch roboticarm_bringup simulated_robot.launch.py# Move arm joints
ros2 topic pub /arm_controller/joint_trajectory trajectory_msgs/msg/JointTrajectory \
"{joint_names: ['joint_1', 'joint_2', 'joint_3'], \
points: [{positions: [0.5, 0.3, -0.2], time_from_start: {sec: 2}}]}"
# Open gripper
ros2 topic pub /gripper_controller/joint_trajectory trajectory_msgs/msg/JointTrajectory \
"{joint_names: ['joint_4'], points: [{positions: [-0.7], time_from_start: {sec: 1}}]}"- β URDF/Xacro robot modeling with mesh files
- β ROS 2 coordinate frames and TF tree
- β ros2_control hardware interfaces
- β Gazebo Harmonic simulation
- β Joint trajectory controllers
- β Launch file architecture
Apache License 2.0 - Based on work by Antonio Brandi
Built with β€οΈ while learning ROS 2 Robotics
