A full-stack ROS 2 robotic manipulator project implementing motion planning, control, and task-level autonomy using MoveIt 2, ros2_control, and Gazebo.
The system performs collision-aware pick-and-place tasks in a physics-based simulation using an industry-style robot software architecture.
- ROS 2 Jazzy node architecture
- URDF / Xacro robot modeling
- ros2_control integration
- JointTrajectoryController configuration
- MoveIt 2 motion planning
- Planning Scene & Collision Objects
- Gripper control using FollowJointTrajectory
- C++ MoveGroupInterface usage
- Gazebo + RViz2 visualization
Task Layer (Pick & Place) -> MoveIt 2 (Planning) -> ros2_control (Execution) -> Gazebo (Physics Simulation)
- ROS Version - ROS 2 Jazzy
- Simulator - Gazebo
- Motion Planning - MoveIt 2
- Controllers - ros2_contro
- Programming Language - python, C++
- Robot - Custom 6-DOF Arm + Gripper
- 6 revolute joints (position-controlled)
- Parallel gripper with a single actuated finger joint
- Proper joint limits and dynamics
- Transmissions configured for ros2_control
- Full TF tree published
- Build workspace
colcon build
source install/setup.bash- Start Gazebo simulation, controllers, Rviz and MoveIt
ros2 launch my_robot_bringup my_robot.launch.xml- Run pick-and-place task
ros2 launch my_robot_pick_place pick_place.launch.py- High-level execution flow:
- Move robot to predefined home pose
- Add table and object to planning scene
- Move arm to pre-grasp pose
- Open gripper
- Approach object and close gripper
- Attach object to end-effector
- Move to target place pose
- Detach object
- Retreat to safe pose
- Ubuntu 24.04
- ROS 2 Jazzy
- Gazebo
- Rviz2
- MoveIt 2
- Vision-based object detection
- Automatic grasp pose generation
- Behavior Tree / State Machine integration
- Multi-object manipulation
- Real robot hardware deployment
This project is licensed under the MIT License. See the LICENSE file for details.
- Algam Srikanth |
- Mechanical Engineer → Robotics Software Developer
- ROS 2 | MoveIt 2 | Gazebo | C++
