Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🦾 3DOF Robotic Arm - ROS 2 Jazzy

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.

Robotic Arm in Gazebo


πŸ‘¨β€πŸ’» Author & Maintainer

Tejas Murkute


πŸ“š Acknowledgments

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.


✨ Features

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

πŸ€– Packages

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

πŸ”§ Prerequisites

  • Ubuntu 24.04 (Noble Numbat)
  • ROS 2 Jazzy Jalisco
  • Gazebo Harmonic

Install Dependencies

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

πŸ“₯ Installation

# 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.bash

Mesh Files

The STL mesh files are required for visualization. Copy them to:

roboticarm_description/meshes/

Required files:

  • basement.STL
  • base_plate.STL
  • forward_drive_arm.STL
  • horizontal_arm.STL
  • claw_support.STL
  • left_finger.STL
  • right_finger.STL

πŸš€ Usage

RViz Visualization Only (Test first!)

source ~/roboticarm_jazzy_ws/install/setup.bash
ros2 launch roboticarm_description display.launch.py

Use the Joint State Publisher GUI sliders to move the arm.

Gazebo Simulation

ros2 launch roboticarm_bringup gazebo.launch.py

Full Simulation (Gazebo + RViz)

ros2 launch roboticarm_bringup simulated_robot.launch.py

Control the Arm

# 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}}]}"

πŸŽ“ What I Learned

  • βœ… 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

πŸ“„ License

Apache License 2.0 - Based on work by Antonio Brandi


Built with ❀️ while learning ROS 2 Robotics

About

🦾 3DOF Robotic Arm with ROS 2 Jazzy, ros2_control, Gazebo | Based on Antonio Brandi's course

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages