A controller that steers the robot away from obstacles to avoid a collision. Implemented as part of a Georgia Tech Mobile Robotics course project.
Simiam is a MATLAB-based educational bridge between theory and practice in robotics created at Georgia Tech GRITS Lab.
A robot is seen from the world's perspective. To avoid obstacles, they need to be observed on this world reference frame on which the robot is located. To achieve this, obstacle coordinates for each InfraRed sensor are transformed from their local sensor frame to the robot reference frame, and then from the robot frame to the world frame.
After successfully doing these transformations, the points detected by each of the five IR sensors can be located on the world frame:
Vectors are computed from the center of the robot to each of the transformed IR sensor points, then weighed and summed to produce a resultant vector, u_ao, that points in the direction of free space (away from the obstacle). A heading, theta_ao, is then computed using this vector and the PID controller used to steer the robot to this heading to avoid a collision.