This project focused on implementing the Rapidly-Exploring Random Tree (RRT) algorithm for sampling-based motion planning to control a UR5 robotic arm. Utilizing the MoveIt! library in a ROS2 environment, the goal was to develop a robust motion planning solution capable of navigating the robotic arm through various environments, avoiding obstacles, and reaching specified end-effector poses.
Video 1 | Video 2 |
---|---|
-
RRT Algorithm Implementation:
- RRT algorithm to compute joint trajectories, ensuring the arm's end-effector could reach desired positions while avoiding obstacles.
-
Collision Avoidance:
- Collision detection and avoidance using data from an
/obstacles
topic, ensuring all planned paths were free from collisions.
- Collision detection and avoidance using data from an
-
Inverse Kinematics (IK):
- IK functions to convert end-effector goals into joint space configurations, essential for effective motion planning.
-
Path Optimization:
- Path shortcutting and resampling techniques to refine the planned trajectories, improving execution efficiency and ensuring smooth movement.
rrt_motion_planning.py
: Main script for implementing RRT-based motion planning for the UR5 robotic arm.