Aim
The project has been completed to understand the PID controls for the mobile robotic systems. This will be applicable in my first ongoing project and also useful to control any autonomous robot. The other aim is to study the V-REP and Gazebo simulation environment.
|
Gazebo & ROS Simulation of epuck robot
|
V-REP Simulation of Pioneer2dx
This video shows the implementation of controls on mobile robot to make the mobile robot follow a certain desired trajectory using go-to-goal behavior. PID is used to control the mobile robot. This algorithm can be implemented on the mobile robot with a sensor which is giving position of robot w.r.t. its initial co-ordinates. V-Rep is used for the dynamic simulation of the Pioneer2dx robot and MATLAB is used for the implementation and control of it.
|
|
Control of Mobile Robot
Task:
Moving the robot on the given trajectory using sensors which will give the position of robot with respect to some frame of reference. (like initial point) Selection of Environment: In this project, basically I have used Pioneer2dx as my robot for simulation. Choice of this robot is due to its differential drive system. As we know, differential drive system has only two inputs which are angular velocities of left and right wheel. V-REP has been used just for the dynamics and visualization purpose. Complete control signal and actuator commands for robot are given using MATLAB. There are certain APIs which allow MATLAB to connect with V-REP. Why V-Rep with MATLAB? V-Rep also has its own programming language called 'Lua' to write the scripts to publish commands to the robot. But MATLAB is basically much better in handling the control systems and it is always very easy to write a program for any new user in MATLAB as compared to learn Lua scripting language. Implementation: To follow certain trajectory, we first need the equation of that trajectory. Then we need some discrete points of that trajectory so as to reconstruct it. Here the shape of the symbol for infinity in maths is used as the trajectory for the robot. Some of the points are chosen for trajectory tracking and these points are used as the goal points for the robot. It starts from the initial point and heads toward first goal. As soon as it reaches to its 1st goal, the 1st goal becomes its initial position and 2nd point of trajectory becomes the new goal. In this way, trajectory tracking algorithm works. Results are there in video. |
Suppose robot wants to go to certain goal position (xg, yg) and let us consider that its initial position is (xi, yi). So my initial heading angle of robot should be tan inverse of (yg-yi,xg-xi).
e_in=0 (initial error) e=error I=accumulation of error E=initial error difference v=linear velocity of robot
|