The subject of my diploma work was to implement different motion planning algorithms for a 2-DoF robotic arm, the so called planar manipulator. The robot is equipped with two revolute joints, and can perform movements only in the horizontal plane.
There are two major different philosophies for implementing robot control mechanisms: PTP (Point to Point) control and CPC (Continuous Path Control) . In my thesis worh I implemented and used the latter method. Using this control strategy, the robot is not only provided with the following set point of motion, but it gets a continuous set of path-points, which are acquired by interpolating between the endpoints of the desired path. Considering the interpolation stage of trajectory planning, I chose the quintic polynomial function by means of generating a smooth, continuous, time parametrized trajectory between the desired enpoints. This stage of the motion planning system was implemented in SIMULINK environment.
The task also included the implementation of more than one motion planning philosophy. These are: motion planning in joint coordinates and motion planning in Cartesian coordinates.
Furthermore, I also had to create a motion planning system that is capable of generating collision-free paths around a previously known obstacle. Because of simplicity, I assumed that there is only one obstacle in the workspace, and both obstacle geometry and position are previously known. For the purpose of obstacle aviodance, I chose and implemented the APF (Atrificial Potential Field) method. The tendency towards a desired enpoint of APF is provided by convergency of the Gradient Descent Algorithm, which I also implemented in SIMULINK environment. I also managed to create a GUI for the APF planner, which is functioning as a platform for setting parameters and running the path planning system/model.
On the whole, I managed to implement three different motion planning systems: the joint coordinates planner, the Cartesian planner and the planner using APF method.
Generally speaking, all implementation phases were preceded by planning the theoretical and applied model of the systems. For the joint coordinates planner, I had to implement a solution for the forward and inverse kinematics problems, the quintic polynomial function for interpolation and I also had to design an appropriate controller that could serve the purpose. I implemented PID controllers for the joint coordinates planner.
In the case of the Cartesian path planner, I could reuse the quintic polynomial module by means of interpolation. The Cartesian path planner is designed to generate a Cartesian straight-line motion, where the path is defined by/along the two endpoints of the geometric line. Thus the interpolation had to be done for both x and y coordinates.
The control scheme I used was defined in joint space in all motion planning cases. Because of this, in the case of the Cartesian planner I had to design the modules that can generate the velocity and acceleration profiles of the reference trajectories. Solving this problem, I implemented the solutions for the inverse velocity and inverse acceleration problems in SIMULINK environment.
I also designed and tested the computed torque control scheme for the Cartesian planning system, to serve as an alternative during the tests.
The last phase of the work was to test the designed and implemented motion planning systems. This included running the models with different time parametrization, but using the same desired paths. I also made some comparison and concluded the results according to the acquired transients.
The complexity of the path planning modules required the design of easy-to-use/convenient graphic user interfaces (GUI). I created three different GUIs for each of the path planning systems.