This project focuses on advancing the autonomy of robotic systems through the integration of enhanced computer vision and precise kinematic control. Leveraging the power of an RGB-D camera paired with the ROS 2 ecosystem, we developed a system capable of sophisticated block manipulation tasks. The project encompasses the calibration of vision sensors to achieve high-fidelity depth perception, formulation of forward and inverse kinematic models for accurate trajectory planning, and the implementation of autonomous task execution algorithms. The robotic arm successfully demonstrated stacking, alignment, and color-based segregation with a high degree of precision. Challenges such as optimizing vision-based algorithms and hardware-software synergy were addressed, enhancing the robot's operational effectiveness. Future enhancements aim to refine path planning algorithms and expand the kinematic model's capabilities, ultimately pushing the boundaries of what autonomous robotic systems can achieve in dynamic environments.
Table of content
You do need to modify some of these files.
- install_scripts
- install_scripts/config
rs_l515_launch.py
- to launch the cameratags_Standard41h12.yaml
- to define the april tags you used on the board
install_Dependencies.sh
- to install ROS2/All the ROS wrappers/Dependenciesinstall_Interbotix.sh
- to install arm related stuffinstall_LaunchFiles.sh
- to move the files under/config
to where it should to be
- install_scripts/config
- launch - to store the launch files, details in here
- src - where you actually write code
camera.py
- Implements the Camera class for the RealSense camera.- Functions to capture and convert frames
- Functions to load camera calibration data
- Functions to find and perform 2D transforms
- Functions to perform world-to-camera and camera-to-world transforms
- Functions to detect blocks in the depth and RGB frames
control_station.py
- This is the main program. It sets up the threads and callback functions. Takes flags for whether to use the product of exponentials (PoX) or Denabit-Hartenberg (DH) table for forward kinematics and an argument for the DH table or PoX configuration. You will upgrade some functions and also implement others according to the comments given in the code.
kinematics.py
- Implements functions for forward and inverse kinematicsrxarm.py
- Implements the RXArm class- Feedback from joints
- Functions to command the joints
- Functions to get feedback from joints
- Functions to do FK and IK
- A run function to update the dynamixiel servos
- A function to read the RX200 arm config file
state_machine.py
- Implements the StateMachine class- The state machine is the heart of the controller
- config
rx200_dh.csv
- Contains the DH table for the RX200 arm- You will need to fill this in
rx200_pox.csv
- Containes the S list and M matrix for the RX200 arm.- You will need to fill this in