Paragraph

Paragraph



Robotic Manipulator

A visualization of algorithms involved in Robotics

Type | Part of the final year project, Jan 2017

My Roles | Algorithm Reserach, Comprative Study and JavaScript Development

Definition

Understanding the Algorithms

The main idea behind the project was to develop a simple to understand educational source with an aim to simplify the learning process of different algorithms and understanding of complex Math involved. We began with redundant manipulators as studying manipulators was a good starting point for studying robotics (and autonomous machines) in general.

Robotic Arms

Understanding of Key terms 

Initially designed for heavy, repetitive manufacturing work; they are able to handle tasks that are difficult, dangerous or boring to human beings. Robotic systems are characterized by their degree-of freedom (DOF). A basic Robotic Manipulator is composed of the set of links connected together by joints and an end effector or a gripper attached to the end of the arm to perform a set of action in the work volume of the robot.

Degree of Freedom

Degrees of Freedom of a robot system is the minimum number of parameters or independent variables required to completely define the configuration of the system. In robotics, degree of freedom is often used to describe the number of directions that a robot can pivot or move a joint. A very simple robotic system may have two degree-of-freedom, whereas a complex robotic system may have more than two degree-of-freedom (DOF).

Redundancy

If a mechanism has more number of degrees of freedom than are required to perform a certain given task, then the mechanism is called redundant. For example, the human arm can be said to have 7 degrees of freedom whereas it requires only 6 to hold and orient an object at a desired pose, hence the human arm is said to have redundancy. It is because of this redundancy that the human arm is versatile and dexterous. It is capable of carrying out complex manoeuvres such as those of avoiding obstacles, singularities and operate well within its structural limitations. Redundancy also makes a system more reliable as in the unfortunate case of a joint failure, the system can still perform the primary task.

Motion

The geometry of the motion of robotic arms is determined with respect to a fixed reference coordinate system. The resulting motion is obtained by composition of the small elementary motions of each link in the arm with respect to the previous one. In a kinematic analysis the position, orientation, velocity and acceleration of all the links are calculated without taking into consideration the forces that cause this motion. The relationship between motion and the associated forces and torques is studied in robot dynamics.

Kinematics

Robot kinematics is the study of the motion (kinematics) of robots. It is concerned with aspects of redundancy, collision avoidance and singularity avoidance. It divides itself into two parts Direct or Forward Kinematics and Inverse Kinematics. In Forward Kinematics, the length of each link and the angle of each joint is known and we have to calculate the position of the end-effector point in the task space of the robot. On the other hand, Inverse Kinematics is opposite of Forward mapping. It produces the angles required to position the end-effector on a specified point in the task space.

Path Finding

Implementation of Graph-based method
A* Star Algorithm

To guide a robot to move from one position to another while minimizing the total number of steps. I have used A* Algorithm for finding a path from a start point to the destination as it combines the advantages of both Dijkstra’s algorithm and Greedy Best-First-Search. Dijkstra’s algorithm expands outwards in all the direction from the starting point until it reaches the end goal. Whereas, Greedy Best-First-Search keeps a Heuristic estimate of how far the goal node is from the vertex it is exploring thus selecting a vertex which is closest to the end node at each iteration. It runs much quickly as it uses the Heuristic function to guide its path.

However, when the map has obstacles the path traced out by Greedy Best-First-Search is not optimal. Dijkstra works harder and is guaranteed to find the shortest path whereas Greedy Best-First-Search scans the map quickly and thus is unable to find the best path.

An interactive and simple implementation of A* Star Algorithm can be found here.

Generation of
Configuration Space

Triangle Collision

In the above method, we have reduced the motion planning problem to planning on a graph where the robot can take on various discrete positions which we can generate and connect by edges. But in the real world, most of the robots that are built can move continuously through its work space. Configuration Space or C-space is a handy mathematical and conceptual tool. Basically, C-space of a robot is set of all configurations that a robot can attain. With no obstacles in the robot’s operational space, a robot can move freely in its task space. Presence of obstacles make certain configurations in the configuration space unattainable. 

The picture below shows one such Configuration Space corresponding to the geometric obstacles in the task space.

Calculation of C-space is done by considering each obstacle and each link of the robot’s arm as set a of connected triangles and we subsequently check for collision between each obstacle’s triangle and each link’s
triangle.

Final Result 

Putting it all together

I have modelled the system such that link 1 on the arm can rotate 180 degrees and link 2 can rotate complete 360 degrees. 

The generated C-space is passed to the A* star algorithm to check if there exists a set of configurations which will allow the arm to move around and reach from the start to the destination point. 

For presentation purpose I have calculated the C-space in advance and fed to the system.
You may use my Github link for the original code.  

Paragraph