https://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control_2017_Group_5&feed=atom&action=historyEmbedded Motion Control 2017 Group 5 - Revision history2024-03-29T10:19:04ZRevision history for this page on the wikiMediaWiki 1.39.5https://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control_2017_Group_5&diff=44550&oldid=prevS092626: /* Code Excerpts */2017-06-21T20:00:15Z<p><span dir="auto"><span class="autocomment">Code Excerpts</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 21:00, 21 June 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l522">Line 522:</td>
<td colspan="2" class="diff-lineno">Line 522:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>This section contains some excerpts of the code from the PICO Maze Controller. Code that was considered to give an overview of the system is listed below:</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>This section contains some excerpts of the code from the PICO Maze Controller. Code that was considered to give an overview of the system is listed below:</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*The code for the alignment function, which is used to align PICO after every turn, can be found '''[https://gitlab.com/emc2017/group5/snippets/1665376 here]'''. </div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*The code for the alignment function, which is used to align PICO after every turn, can be found '''[https://gitlab.com/emc2017/group5/snippets/1665376 <ins style="font-weight: bold; text-decoration: none;">here]'''.</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">*The code for the potential field function, which is used to prevent PICO from bumping into walls, can be found '''[https://gitlab.com/emc2017/group5/snippets/1665475 </ins>here]'''. </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*The code for the main.cpp file, which includes the Action Manager state machine, can be found '''[https://gitlab.com/emc2017/group5/snippets/1665569 here]'''.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*The code for the main.cpp file, which includes the Action Manager state machine, can be found '''[https://gitlab.com/emc2017/group5/snippets/1665569 here]'''.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
</table>S092626https://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control_2017_Group_5&diff=44549&oldid=prevS102490: /* Plan & Expectations */2017-06-21T19:59:06Z<p><span dir="auto"><span class="autocomment">Plan & Expectations</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 20:59, 21 June 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l408">Line 408:</td>
<td colspan="2" class="diff-lineno">Line 408:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The strategy for the corridor challenge was to drive forward as fast as possible with potential field as controller to keep PICO in the middle of the corridor. While driving through the corridor the sides are continuously checked for gaps using ranges of laser data to the left and right of PICO. These ranges are tuned during experiment sessions. When a gap is detected PICO stops for a moment and has to turn 90 degrees to the side of the gap.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The strategy for the corridor challenge was to drive forward as fast as possible with potential field as controller to keep PICO in the middle of the corridor. While driving through the corridor the sides are continuously checked for gaps using ranges of laser data to the left and right of PICO. These ranges are tuned during experiment sessions. When a gap is detected PICO stops for a moment and has to turn 90 degrees to the side of the gap.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The initial idea was to use the odometry data for this purpose, but from testing results it seemed that this data was not reliable enough to let PICO turn. For this reason it is chosen to implement turning that is based on time delay using a for loop (see below) and that PICO would be stopped as soon as he detected that his front was clear, facing the exit corridor. The amount of iterations is also tuned in simulation. When the turn is completed PICO will drive forward again as it did before the turn. In Figure 25, the simulation of PICO driving through the corridor, finding an exit and exiting it is shown.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The initial idea was to use the odometry data for this purpose, but from testing results it seemed that this data was not reliable enough to let PICO turn. For this reason it is chosen to implement turning that is based on time delay using a for loop (see <ins style="font-weight: bold; text-decoration: none;">the code </ins>below) and that PICO would be stopped as soon as he detected that his front was clear, facing the exit corridor. The amount of iterations is also tuned in simulation. When the turn is completed PICO will drive forward again as it did before the turn. In Figure 25, the simulation of PICO driving through the corridor, finding an exit and exiting it is shown.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
</table>S102490https://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control_2017_Group_5&diff=44544&oldid=prevS092626: /* Recommendations for Future Work */2017-06-21T19:53:29Z<p><span dir="auto"><span class="autocomment">Recommendations for Future Work</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 20:53, 21 June 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l509">Line 509:</td>
<td colspan="2" class="diff-lineno">Line 509:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The deadlock state in which PICO gets when it is nearing the exit of the maze can be declared by an incorrect implementation of the detection dead ends. At the point where PICO gets into the deadlock state, this implementation possibly influenced the Pledge algorithm by detecting dead ends instead of 90° corners. During the second attempt PICO finally gets out of the deadlock state, which can be explained by a little different position compared to the first attempt, which then causes PICO to deploy an alignment maneuver. After this, the Pledge algorithm continued with the right-hand following.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The deadlock state in which PICO gets when it is nearing the exit of the maze can be declared by an incorrect implementation of the detection dead ends. At the point where PICO gets into the deadlock state, this implementation possibly influenced the Pledge algorithm by detecting dead ends instead of 90° corners. During the second attempt PICO finally gets out of the deadlock state, which can be explained by a little different position compared to the first attempt, which then causes PICO to deploy an alignment maneuver. After this, the Pledge algorithm continued with the right-hand following.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>= Recommendations for <del style="font-weight: bold; text-decoration: none;">Future Work </del>=</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>= Recommendations for <ins style="font-weight: bold; text-decoration: none;">future work </ins>=</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>After analyzing the results from the Corridor and Maze challenges, opportunities for future work can be identified.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>After analyzing the results from the Corridor and Maze challenges, opportunities for future work can be identified.</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l517">Line 517:</td>
<td colspan="2" class="diff-lineno">Line 517:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A more optimal algorithm would allow PICO to exit the maze faster. Therefore, the next step would be to implement more advanced techniques such as the Trémaux Algorithm explained above. Of course this would require an additional level of abstraction in which the WorldSkills evolve into a WorldMap which is able to identify those intersections that have been visited already. This would also require mapping techniques such as Simultaneous Localization and Mapping and possibly the use of a Kalman filter to integrate the input from odometry, laser, and a mathematical model to derive a more accurate estimation of the robot's position.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A more optimal algorithm would allow PICO to exit the maze faster. Therefore, the next step would be to implement more advanced techniques such as the Trémaux Algorithm explained above. Of course this would require an additional level of abstraction in which the WorldSkills evolve into a WorldMap which is able to identify those intersections that have been visited already. This would also require mapping techniques such as Simultaneous Localization and Mapping and possibly the use of a Kalman filter to integrate the input from odometry, laser, and a mathematical model to derive a more accurate estimation of the robot's position.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Further testing to better tune the artificial potential field could also be helpful. This would allow to implement more aggressive <del style="font-weight: bold; text-decoration: none;">manouvers </del>without the risk of bumping into walls. As of now, longitudinal and angular displacements were not used simultaneously. The current implementation of the artificial potential field allows for the computation of a desired angular speed based on the summation of all artificial forces. This could be used to drive the robot around corners just by placing the attractive force around the corner, instead of splitting the <del style="font-weight: bold; text-decoration: none;">manouver </del>into turning and then driving forward. This would also require <del style="font-weight: bold; text-decoration: none;">corner-</del>detection from <del style="font-weight: bold; text-decoration: none;">WorldSkills </del>so as to place the target point in an adequate position around the corner. Combining angular and forward speed will reduce the time required to take corners but it also increases the chance of hitting the corners if not tuned and tested thoroughly.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Further testing to better tune the artificial potential field could also be helpful. This would allow to implement more aggressive <ins style="font-weight: bold; text-decoration: none;">maneuvers </ins>without the risk of bumping into walls. As of now, longitudinal and angular displacements were not used simultaneously. The current implementation of the artificial potential field allows for the computation of a desired angular speed based on the summation of all artificial forces. This could be used to drive the robot around corners just by placing the attractive force around the corner, instead of splitting the <ins style="font-weight: bold; text-decoration: none;">maneuver </ins>into turning and then driving forward. This would also require <ins style="font-weight: bold; text-decoration: none;">the </ins>detection <ins style="font-weight: bold; text-decoration: none;">of corners </ins>from <ins style="font-weight: bold; text-decoration: none;">World Skills </ins>so as to place the target point in an adequate position around the corner. Combining angular and forward speed will reduce the time required to take corners but it also increases the chance of hitting the corners if not tuned and tested thoroughly.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Code Excerpts =</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Code Excerpts =</div></td></tr>
</table>S092626https://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control_2017_Group_5&diff=44499&oldid=prevS092626: /* Plan & Expectations */2017-06-21T18:58:32Z<p><span dir="auto"><span class="autocomment">Plan & Expectations</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:58, 21 June 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l411">Line 411:</td>
<td colspan="2" class="diff-lineno">Line 411:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><code><del style="font-weight: bold; text-decoration: none;">Pico </del>start turning{</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><code><ins style="font-weight: bold; text-decoration: none;">PICO </ins>start turning{</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:For x iterations (where x is around 25000)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:For x iterations (where x is around 25000)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>::Keep turning</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>::Keep turning</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>:<del style="font-weight: bold; text-decoration: none;">Pico </del>stop turning</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>:<ins style="font-weight: bold; text-decoration: none;">PICO </ins>stop turning</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}</code></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}</code></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
</table>S092626https://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control_2017_Group_5&diff=44498&oldid=prevS092626: /* Phase 2: Pre-maze challenge */2017-06-21T18:57:47Z<p><span dir="auto"><span class="autocomment">Phase 2: Pre-maze challenge</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:57, 21 June 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l390">Line 390:</td>
<td colspan="2" class="diff-lineno">Line 390:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>During the corridor challenge, it was observed that using time delays for rotations was not a good option in real-life testing. Hence, instead of using time-delays, odometry data was decided to be used to achieve 90° rotations. </div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>During the corridor challenge, it was observed that using time delays for rotations was not a good option in real-life testing. Hence, instead of using time-delays, odometry data was decided to be used to achieve 90° rotations. </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The very first test in Phase 2 was to test rotations with odometry data. In order to do so, a program was prepared such that <del style="font-weight: bold; text-decoration: none;">Pico </del>rotates 90° around itself and stops. By repeating this test, some parameters were tuned and it was observed that in spite of some error, odometry worked good enough to make rotations. Then, another program was run in order to test corridor challenge with odometry data rotations and <del style="font-weight: bold; text-decoration: none;">Pico </del>solved corridor challenge. Even though corridor challenge was done, there were some problems regarding the position where <del style="font-weight: bold; text-decoration: none;">Pico </del>stopped and the amount of rotation <del style="font-weight: bold; text-decoration: none;">Pico </del>made while turning to right or left. The problem related with stopping position was originated from gap detection algorithm and the problem related with the amount of rotation was coming from odometry data. </div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The very first test in Phase 2 was to test rotations with odometry data. In order to do so, a program was prepared such that <ins style="font-weight: bold; text-decoration: none;">PICO </ins>rotates 90° around itself and stops. By repeating this test, some parameters were tuned and it was observed that in spite of some error, odometry worked good enough to make rotations. Then, another program was run in order to test corridor challenge with odometry data rotations and <ins style="font-weight: bold; text-decoration: none;">PICO </ins>solved corridor challenge. Even though corridor challenge was done, there were some problems regarding the position where <ins style="font-weight: bold; text-decoration: none;">PICO </ins>stopped and the amount of rotation <ins style="font-weight: bold; text-decoration: none;">PICO </ins>made while turning to right or left. The problem related with stopping position was originated from gap detection algorithm and the problem related with the amount of rotation was coming from odometry data. </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>In order to solve problem related with stopping position, several tests were done to tune the parameters that are related with Laser Range Finder. During the tests, <del style="font-weight: bold; text-decoration: none;">Pico </del>was detecting the exit either too early or too late and stopping at that wrong position. By trial and error, optimum parameters were found and this problem was solved. Also gap detection range was adjusted in one of the test sessions by building a tapered maze with increasing width of a corridor. In this test, different parameters were tried and the best-fit was found.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>In order to solve problem related with stopping position, several tests were done to tune the parameters that are related with Laser Range Finder. During the tests, <ins style="font-weight: bold; text-decoration: none;">PICO </ins>was detecting the exit either too early or too late and stopping at that wrong position. By trial and error, optimum parameters were found and this problem was solved. Also gap detection range was adjusted in one of the test sessions by building a tapered maze with increasing width of a corridor. In this test, different parameters were tried and the best-fit was found.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>In order to solve problem related with error in rotation, a new function called allignment was created and this function was tested. During the tests, first <del style="font-weight: bold; text-decoration: none;">Pico </del>was placed in between two walls and the function worked properly. Then <del style="font-weight: bold; text-decoration: none;">Pico </del>was placed into a T-junction but this time the function made <del style="font-weight: bold; text-decoration: none;">Pico </del>wobbling continously. Furthermore, <del style="font-weight: bold; text-decoration: none;">Pico </del>was placed in between a corridor and a T-junction but again there was a problem and <del style="font-weight: bold; text-decoration: none;">Pico </del>stopped moving. The same problem was also observed when <del style="font-weight: bold; text-decoration: none;">Pico </del>was placed next to a one wall. Lastly, <del style="font-weight: bold; text-decoration: none;">Pico </del>was placed in a dead end and the function worked properly. After trying almost all the possible situations, lessons were learned and the allignment function was improved accordingly.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>In order to solve problem related with error in rotation, a new function called allignment was created and this function was tested. During the tests, first <ins style="font-weight: bold; text-decoration: none;">PICO </ins>was placed in between two walls and the function worked properly. Then <ins style="font-weight: bold; text-decoration: none;">PICO </ins>was placed into a T-junction but this time the function made <ins style="font-weight: bold; text-decoration: none;">PICO </ins>wobbling continously. Furthermore, <ins style="font-weight: bold; text-decoration: none;">PICO </ins>was placed in between a corridor and a T-junction but again there was a problem and <ins style="font-weight: bold; text-decoration: none;">PICO </ins>stopped moving. The same problem was also observed when <ins style="font-weight: bold; text-decoration: none;">PICO </ins>was placed next to a one wall. Lastly, <ins style="font-weight: bold; text-decoration: none;">PICO </ins>was placed in a dead end and the function worked properly. After trying almost all the possible situations, lessons were learned and the allignment function was improved accordingly.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>As the maze challenge has a door that has to be opened to finish the maze, a functionality is required. The requirement is the following. <del style="font-weight: bold; text-decoration: none;">Pico </del>should be able to detect a dead end and request a possible door to be opened. When the door is opened, it should pass on and when no door is opened in time <del style="font-weight: bold; text-decoration: none;">Pico </del>should turn around and continue the algorithm. After this function is created, a test was executed in two stages. First, <del style="font-weight: bold; text-decoration: none;">Pico </del>drives through a corridor and encounter a dead end. <del style="font-weight: bold; text-decoration: none;">Pico </del>should stop and request the door to be opened. After 5 seconds, <del style="font-weight: bold; text-decoration: none;">Pico </del>turns around and exit the corridor on the other side. In the second scenario <del style="font-weight: bold; text-decoration: none;">Pico </del>drives up to the dead end, which is removed when the request is issued. As soon as the object is removed, <del style="font-weight: bold; text-decoration: none;">Pico </del>should drive forward and continue the corridor. When the second dead end is encountered, <del style="font-weight: bold; text-decoration: none;">Pico </del>will turn around immediately without requesting and he will exit the corridor at the other end. This plan was applied in testing with doors placed to both left and right with different depths (20-40-60 cm wide) Fortunately, door detection worked properly.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>As the maze challenge has a door that has to be opened to finish the maze, a functionality is required. The requirement is the following. <ins style="font-weight: bold; text-decoration: none;">PICO </ins>should be able to detect a dead end and request a possible door to be opened. When the door is opened, it should pass on and when no door is opened in time <ins style="font-weight: bold; text-decoration: none;">PICO </ins>should turn around and continue the algorithm. After this function is created, a test was executed in two stages. First, <ins style="font-weight: bold; text-decoration: none;">PICO </ins>drives through a corridor and encounter a dead end. <ins style="font-weight: bold; text-decoration: none;">PICO </ins>should stop and request the door to be opened. After 5 seconds, <ins style="font-weight: bold; text-decoration: none;">PICO </ins>turns around and exit the corridor on the other side. In the second scenario <ins style="font-weight: bold; text-decoration: none;">PICO </ins>drives up to the dead end, which is removed when the request is issued. As soon as the object is removed, <ins style="font-weight: bold; text-decoration: none;">PICO </ins>should drive forward and continue the corridor. When the second dead end is encountered, <ins style="font-weight: bold; text-decoration: none;">PICO </ins>will turn around immediately without requesting and he will exit the corridor at the other end. This plan was applied in testing with doors placed to both left and right with different depths (20-40-60 cm wide) Fortunately, door detection worked properly.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Potential field is used in the movement controller of <del style="font-weight: bold; text-decoration: none;">Pico </del>and until the last week of tests, parameters related with potential field were tuned. The reason of tuning these parameters during many testing sessions was that <del style="font-weight: bold; text-decoration: none;">Pico </del>in real testings was not behaving as in simulations. Hence, continous development in potential field was required and the major development was achieved by tuning the parameters related with the effect of repulsive forces on the speed of <del style="font-weight: bold; text-decoration: none;">Pico</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Potential field is used in the movement controller of <ins style="font-weight: bold; text-decoration: none;">PICO </ins>and until the last week of tests, parameters related with potential field were tuned. The reason of tuning these parameters during many testing sessions was that <ins style="font-weight: bold; text-decoration: none;">PICO </ins>in real testings was not behaving as in simulations. Hence, continous development in potential field was required and the major development was achieved by tuning the parameters related with the effect of repulsive forces on the speed of <ins style="font-weight: bold; text-decoration: none;">PICO</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Final rehersal was done one day before the maze challenge and the complete code was run in a maze that was built by our group. Fortunately, <del style="font-weight: bold; text-decoration: none;">Pico </del>solved the maze several times with all functions were working almost perfectly.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Final rehersal was done one day before the maze challenge and the complete code was run in a maze that was built by our group. Fortunately, <ins style="font-weight: bold; text-decoration: none;">PICO </ins>solved the maze several times with all functions were working almost perfectly.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Corridor Challenge =</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Corridor Challenge =</div></td></tr>
</table>S092626https://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control_2017_Group_5&diff=44497&oldid=prevS092626: /* Requirements & Specifications */2017-06-21T18:56:18Z<p><span dir="auto"><span class="autocomment">Requirements & Specifications</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:56, 21 June 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l53">Line 53:</td>
<td colspan="2" class="diff-lineno">Line 53:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Requirements & Specifications==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Requirements & Specifications==</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The requirements for the system are deducted from the '''[http://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control course page]''' and established from a brainstorm session. The FURPS model is used to group the requirements together in the following aspects:</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The requirements for the system are deducted from the '''[http://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control course page]''' and established from a brainstorm session. The <ins style="font-weight: bold; text-decoration: none;">'''</ins>FURPS<ins style="font-weight: bold; text-decoration: none;">''' </ins>model is used to group the requirements together in the following aspects:</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* <del style="font-weight: bold; text-decoration: none;">Functionality</del></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*<ins style="font-weight: bold; text-decoration: none;">'''F'''unctionality</ins></div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* <del style="font-weight: bold; text-decoration: none;">Usability</del></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*<ins style="font-weight: bold; text-decoration: none;">'''U'''sability</ins></div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* <del style="font-weight: bold; text-decoration: none;">Reliability</del></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*<ins style="font-weight: bold; text-decoration: none;">'''R'''eliability</ins></div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* <del style="font-weight: bold; text-decoration: none;">Performance</del></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*<ins style="font-weight: bold; text-decoration: none;">'''P'''erformance</ins></div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* <del style="font-weight: bold; text-decoration: none;">Supportability</del></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*<ins style="font-weight: bold; text-decoration: none;">'''S'''upportability</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A complete list of all requirements can be found in the '''[http://cstwiki.wtb.tue.nl/index.php?title=Requirements_overview requirements and specification overview]'''.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A complete list of all requirements can be found in the '''[http://cstwiki.wtb.tue.nl/index.php?title=Requirements_overview requirements and specification overview]'''.</div></td></tr>
</table>S092626https://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control_2017_Group_5&diff=44496&oldid=prevS092626: /* Results & Discussion */2017-06-21T18:55:33Z<p><span dir="auto"><span class="autocomment">Results & Discussion</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:55, 21 June 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l497">Line 497:</td>
<td colspan="2" class="diff-lineno">Line 497:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Below the differences between the simulation with the maze challenge code '''''without''''' improvements and recording of the maze challenge are depicted:</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Below the differences between the simulation with the maze challenge code '''''without''''' improvements and recording of the maze challenge are depicted:</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*In the beginning of the simulation PICO detects a fake door to the right, compared to <del style="font-weight: bold; text-decoration: none;">a fake dead end detected </del>in the real maze.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*In the beginning of the simulation PICO detects a fake door to the right <ins style="font-weight: bold; text-decoration: none;">(0:04)</ins>, compared to <ins style="font-weight: bold; text-decoration: none;">nothing </ins>in the real maze <ins style="font-weight: bold; text-decoration: none;">(0:04)</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*When PICO has found its way out of the <del style="font-weight: bold; text-decoration: none;">inner space</del>, PICO <del style="font-weight: bold; text-decoration: none;">turns '''right''' </del>in the simulation and <del style="font-weight: bold; text-decoration: none;">'''</del>left<del style="font-weight: bold; text-decoration: none;">''' </del>during the maze challenge for both attempts. </div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*When PICO has found its way out of the <ins style="font-weight: bold; text-decoration: none;">internal square</ins>, PICO <ins style="font-weight: bold; text-decoration: none;">moves sidewards </ins>in the simulation <ins style="font-weight: bold; text-decoration: none;">(0:19) </ins>and <ins style="font-weight: bold; text-decoration: none;">turns </ins>left during the maze challenge for both attempts <ins style="font-weight: bold; text-decoration: none;">(0:48 and 4:32)</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*<del style="font-weight: bold; text-decoration: none;">Furthermore, </del>PICO <del style="font-weight: bold; text-decoration: none;">gets in a deadlock state when </del>it <del style="font-weight: bold; text-decoration: none;">almost has reached the exit </del>of <del style="font-weight: bold; text-decoration: none;">the maze. This makes the robot decide to go back into the maze and repeats this several times until </del>it <del style="font-weight: bold; text-decoration: none;">is stopped by the user</del>. During the <del style="font-weight: bold; text-decoration: none;">second attempt the same happens twice</del>, <del style="font-weight: bold; text-decoration: none;">after which </del>PICO <del style="font-weight: bold; text-decoration: none;">gets out of </del>the <del style="font-weight: bold; text-decoration: none;">deadlock state </del>and <del style="font-weight: bold; text-decoration: none;">continues its way. Unfortunately, the challenge is stopped due to the time limit</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*<ins style="font-weight: bold; text-decoration: none;">In the simulation </ins>PICO <ins style="font-weight: bold; text-decoration: none;">opens the first door and ignores </ins>it <ins style="font-weight: bold; text-decoration: none;">instead </ins>of <ins style="font-weight: bold; text-decoration: none;">driving through </ins>it <ins style="font-weight: bold; text-decoration: none;">(0:33)</ins>. During the <ins style="font-weight: bold; text-decoration: none;">maze challenge</ins>, PICO <ins style="font-weight: bold; text-decoration: none;">opens </ins>the <ins style="font-weight: bold; text-decoration: none;">same door </ins>and <ins style="font-weight: bold; text-decoration: none;">drives through it in both attempts (attempt 1: 1:24 and attempt 2: 5:11)</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">A reason for </del>PICO <del style="font-weight: bold; text-decoration: none;">behaving the way as </del>it <del style="font-weight: bold; text-decoration: none;">did during the maze challenge is that the initial direction is reset after a door </del>has <del style="font-weight: bold; text-decoration: none;">been detected. As can be seen in the recordings, PICO detects a door and rings the bell in both attempts just before exiting </del>the <del style="font-weight: bold; text-decoration: none;">internal square </del>of the maze <del style="font-weight: bold; text-decoration: none;">(attempt 1: 0:48 seconds and attempt 2: 4:32 seconds)</del>. <del style="font-weight: bold; text-decoration: none;">When </del>the robot <del style="font-weight: bold; text-decoration: none;">moves through this fake door, </del>the <del style="font-weight: bold; text-decoration: none;">'North direction' is reset </del>and <del style="font-weight: bold; text-decoration: none;">PICO drives forward </del>until <del style="font-weight: bold; text-decoration: none;">the next wall in front </del>is <del style="font-weight: bold; text-decoration: none;">reached and </del>the <del style="font-weight: bold; text-decoration: none;">right-hand following is started</del>. <del style="font-weight: bold; text-decoration: none;">In </del>the <del style="font-weight: bold; text-decoration: none;">simulation simulation</del>, PICO <del style="font-weight: bold; text-decoration: none;">does not detect a door here </del>and <del style="font-weight: bold; text-decoration: none;">therefore </del>continues to <del style="font-weight: bold; text-decoration: none;">follow </del>the <del style="font-weight: bold; text-decoration: none;">wall to its right</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">*Furthermore, </ins>PICO <ins style="font-weight: bold; text-decoration: none;">gets in a deadlock state when </ins>it <ins style="font-weight: bold; text-decoration: none;">almost </ins>has <ins style="font-weight: bold; text-decoration: none;">reached </ins>the <ins style="font-weight: bold; text-decoration: none;">exit </ins>of the maze. <ins style="font-weight: bold; text-decoration: none;">This makes </ins>the robot <ins style="font-weight: bold; text-decoration: none;">decide to go back into </ins>the <ins style="font-weight: bold; text-decoration: none;">maze </ins>and <ins style="font-weight: bold; text-decoration: none;">repeats this several times </ins>until <ins style="font-weight: bold; text-decoration: none;">it </ins>is <ins style="font-weight: bold; text-decoration: none;">stopped by </ins>the <ins style="font-weight: bold; text-decoration: none;">user</ins>. <ins style="font-weight: bold; text-decoration: none;">During the second attempt </ins>the <ins style="font-weight: bold; text-decoration: none;">same happens twice</ins>, <ins style="font-weight: bold; text-decoration: none;">after which </ins>PICO <ins style="font-weight: bold; text-decoration: none;">gets out of the deadlock state (6:37) </ins>and continues <ins style="font-weight: bold; text-decoration: none;">its way. Unfortunately, the challenge is stopped due </ins>to the <ins style="font-weight: bold; text-decoration: none;">time limit</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The deadlock state in which PICO gets when it is nearing the exit of the maze can be declared by an incorrect implementation of the detection dead ends. At the point where PICO gets into the deadlock state, this implementation possibly influenced the Pledge algorithm by detecting dead ends instead of <del style="font-weight: bold; text-decoration: none;">L-</del>corners. During the second attempt PICO finally gets out of the deadlock state, which can be explained by a little different position compared to the first attempt, which then causes PICO to deploy an alignment maneuver. After this, <del style="font-weight: bold; text-decoration: none;"> </del>the Pledge algorithm continued with the right-hand following .</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">A reason for PICO behaving the way as it did during the maze challenge is that the initial direction is reset after a door has been detected. As can be seen in the recordings, PICO detects a door and rings the bell in both attempts just before exiting the internal square of the maze (attempt 1: 0:48 and attempt 2: 4:32). When the robot moves through this fake door, the 'North direction' is reset and PICO drives forward until the next wall in front is reached and the right-hand following is started. In the simulation simulation, PICO does not detect a door here and therefore continues to follow the wall to its right.</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The deadlock state in which PICO gets when it is nearing the exit of the maze can be declared by an incorrect implementation of the detection dead ends. At the point where PICO gets into the deadlock state, this implementation possibly influenced the Pledge algorithm by detecting dead ends instead of <ins style="font-weight: bold; text-decoration: none;">90° </ins>corners. During the second attempt PICO finally gets out of the deadlock state, which can be explained by a little different position compared to the first attempt, which then causes PICO to deploy an alignment maneuver. After this, the Pledge algorithm continued with the right-hand following.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Recommendations for Future Work =</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Recommendations for Future Work =</div></td></tr>
</table>S092626https://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control_2017_Group_5&diff=44495&oldid=prevS092626 at 18:53, 21 June 20172017-06-21T18:53:40Z<p></p>
<a href="https://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control_2017_Group_5&diff=44495&oldid=44494">Show changes</a>S092626https://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control_2017_Group_5&diff=44494&oldid=prevS092626: /* Results & Discussion */2017-06-21T18:49:56Z<p><span dir="auto"><span class="autocomment">Results & Discussion</span></span></p>
<a href="https://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control_2017_Group_5&diff=44494&oldid=44493">Show changes</a>S092626https://cstwiki.wtb.tue.nl/index.php?title=Embedded_Motion_Control_2017_Group_5&diff=44493&oldid=prevS117413: /* Phase 1: Pre-corridor challenge */2017-06-21T18:47:42Z<p><span dir="auto"><span class="autocomment">Phase 1: Pre-corridor challenge</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:47, 21 June 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l381">Line 381:</td>
<td colspan="2" class="diff-lineno">Line 381:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* turn towards this exit and continue forward.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* turn towards this exit and continue forward.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>It turned out that keeping PICO from bumping into the maze’s walls could be achieved relatively easy by the use of the potential fields. More issues were encountered in making PICO detect the side gaps and making him stop approximately in the center of the junction. Initially, an algorithm was used that would give a trigger the instant that a gap is detected, which happened tens of centimeters before the actual junction <del style="font-weight: bold; text-decoration: none;">[REF]</del>. After adapting the algorithm to only use a part of the LRF’s range and iteratively tuning its parameters, PICO was able to stop before the center of the exit <del style="font-weight: bold; text-decoration: none;">[REF]</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>It turned out that keeping PICO from bumping into the maze’s walls could be achieved relatively easy by the use of the potential fields. More issues were encountered in making PICO detect the side gaps and making him stop approximately in the center of the junction. Initially, an algorithm was used that would give a trigger the instant that a gap is detected, which happened tens of centimeters before the actual junction. After adapting the algorithm to only use a part of the LRF’s range and iteratively tuning its parameters, PICO was able to stop before the center of the exit.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>When the corner had been detected, PICO was commanded to turn 90 degrees to the left or right. This maneuver, however, turned out to be more difficult than expected; It seemed that PICO’s rotated angle could range between approximately 70 and 110 degrees, when the movement was based on the odometry data <del style="font-weight: bold; text-decoration: none;">[REF]</del>. This kind of misalignments would cause PICO to crash into the side walls, hence different approaches were tried. Finally, an algorithm that would make PICO start rotating on command and stop rotating when it detects that the beams in front of him read a minimum distance, seemed the most suitable in simulation.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>When the corner had been detected, PICO was commanded to turn 90 degrees to the left or right. This maneuver, however, turned out to be more difficult than expected; It seemed that PICO’s rotated angle could range between approximately 70 and 110 degrees, when the movement was based on the odometry data. This kind of misalignments would cause PICO to crash into the side walls, hence different approaches were tried. Finally, an algorithm that would make PICO start rotating on command and stop rotating when it detects that the beams in front of him read a minimum distance, seemed the most suitable in simulation.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The code for the action manager was fairly simple, as its only job was to give the turn left or right command depending on where the gap was detected. No problems or struggles occurred during any test session with this module.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The code for the action manager was fairly simple, as its only job was to give the turn left or right command depending on where the gap was detected. No problems or struggles occurred during any test session with this module.</div></td></tr>
</table>S117413