Motion-Planning and Control of Mobile Welding Robot and 6-DOF Robotic Manipulator
Motion-Planning and Control of Mobile Welding Robot and 6-DOF Robotic Manipulator
Advised by Professor Kenji Shimada, Computational Engineering and Robotics Lab (CERLAB), Carnegie Mellon University, Sep 2020 ~ May 2022
"Error correction and disturbance compensation of end-effector poses of Rover Denso manipulator with Inverse Kinematic solver and PID controller". Master Thesis.
As the control group in the MobileManipulator team in CERLAB guided by Professor Kenji Shimada, we focus on the control of the manipulator and cooperate with other groups such as localization group and path planning group. We have worked on two robots, the Lord Weldmort robot and the Rover Denso robot, which both used the same Denso manipulator. The robots detects the ship parts on the field and welds along their edges. I have been building up more programming skills in Python and C++ and knowledge in ROS, Gazebo and RViz under the Linux environments.
In the Lord Weldemort robot simulation, I wrote Python and C++ programs to utilize a Realsense camera sensor to detect the 3 wall planes (front, left, right) and the gap point of the hole (on the right side of front plane). Then the program found the perpendicular of the edges, searched the gap point besides the hole, calculated the intersection points and drew points and planes in a 3D space overview. Finally, I performed a sample welding process, by revising and improving the existing Python and C++ code to tune the Denso 6-DOF manipulator speed and increase the sensing accuracy.
On the Rover Denso robot, we documented and improved a more detailed tutorial for the setup and testing of the physical Rover Denso robot. Then I estimated possible noise and error of the welding path caused by the robot base movement in a 3D space by Jupyter Notebook. Next, I built up an algorithm that took the input of desired end-effector positions, converted each of them to a set of joint values with an inverse kinematics method (IKFast) in OpenRAVE, and moved the end-effector to track those desired positions and paths with error correction using PID methods. ROS Publishers and Subscribers nodes were built to communicate data between the main function and the IKFast algorithm for each iteration in the loop. The error correction and disturbance compensation of the end effector was refined by IKFast and a PID controller.
Mobile Kogumi Robot with 6-DOF Denso Manipulator
Welding Environment with Ship Parts Scattered
Realsense camera illustration on the side view
3D diagram with 3 planes, gap point and intersection point.
Gazebo Simulation of Gap Point Detection & Welding
Detection Process for 3 Planes, Gap and Intersection Point in Gazebo
Welding Process Only Through the edge in Gazebo
Whole process (Detection + Welding) of the manipulator in Gazebo
Top Left: Gazebo Simulation of Kogumi Robot & Welding Part
Bottom Left: Inverse Kinematic Solver (IKFast) in OpenRAVE
Right: Desired and estimated waypoints of welding path in 3D
I used the IKFast as the inverse kinematic methods to calculate the 6 joint values for each desired end-effector point on the welding path in each iteration.
Next, because of the shutdown at the end of each iteration, I built a set of ROS nodes (Publisher/Subscriber) as a communication method to send transformation matrix (T, Base to End-Effector) and a set of join positions (results of IKFast) back and forth between the main script and the IKFast script in each iteration for each point.