Embedded Motion Control 2017 Group 3 / Corridor Challenge

From Control Systems Technology Group
Revision as of 11:46, 21 June 2017 by S127922 (talk | contribs)
Jump to navigation Jump to search

This page is part of the Embedded Motion Control Group 3 of 2017.

Figure 1: Typical Corridor

This page is about the design made from the initial design up to the moment of the the Corridor Challenge. For this challenge is PICO should drive itself through a corridor which is constructed with parallel walls, detect the first exit and take a turn. First the design steps are described, followed by notable algorithms used and there software implementation and concluding with the functioning of the code in the simulation. In figure 1, a typical corridor used in the Corridor Challenge is visible, however, the opening could also be at the left side.

Design steps

From the requirements we designed we wanted PICO to never hit any walls, but also prevent PICO from going into deadlocks. With this decision we excluded the use of the potential field, where the walls give a distance dependent rejecting force towards PICO. Although this is a very robust way to avoid walls, it will have a lot of deadlocks problems (mostly for the maze). In stead we used a PID controller to keep PICO always in the middle of a corridor, which is more in line with the Pledge algorithm that uses wall following. We used the filtered information from the laser data for this.

This controller only operates in the actual corridors, when PICO moved out of a corridor, PID is be turned off and he would turn 90 degrees (left or right). After turning, PICO would move back into the corridor, back in the corridor the PID controller turn back on.

Because turning on odometry data gave no guarantees about turned angle in real life, we couldn't just turn without looking. By use of a corner detection, we could PICO align in the middle of the new corridor after turning.

Notable Algorithms

In this section a few algorithms used for the corridor challenge are described, together with there software implementation, to show how our code differentiated from the other groups.

Initial Alignment

Figure 2