- In this project, I implemented RRT-Star in C++ to plan a path towards an object grasp location in ROS Gazebo with a 6-DOF robotic arm.
Approach:
- Given a goal state (object 3D world coordinates) and an initial state (end-effector world coordinates), an optimal path is planned from start to goal using the RRT-Star algorithm.
- The RRT-Star planner produces a collision-free path from the start to goal state.
- Collision-checking is done by using the MoveIt! ROS package to validate whether a randomly sampled 3D coordinate is valid (collision-free) or not. MoveIt! internally uses the Flexible Collision Library (FCL) for collision-checking.
- Once a valid path is found, a ROS message is sent to Gazebo which contains the complete trajectory for the 6-DOF robotic arm (joint angles at different time-steps).
- Gazebo moves the end-effector (and arm) to a pre-grasp pose close to the object.
- Next, a ROS message is sent to Gazebo to move the end-effector to grasp pose.
- Finally, a ROS message is sent to Gazebo to close the gripper and grasp the object.