Embedded Motion Control 2014 Group 12: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
Line 61: Line 61:


==Revisions==
==Revisions==
*15-05 Revisited corridor_challange_v2.cpp -> renamed to corridorchallenge_v2.cpp and added some new functions:
*15-05 Revisited corridor_challange_v2.cpp -> renamed to corridorchallenge_v2.cpp and added some new functions: \break
- Extended laser 'vision' with left- and right diagonal view and updated amount of laser data used for each 'vision' vector.  
- Extended laser 'vision' with left- and right diagonal view and updated amount of laser data used for each 'vision' vector.  
- Extended the amount of possible situation PICO can be in to nine. Currently using:  
- Extended the amount of possible situation PICO can be in to nine. Currently using:
* Corridor
* Corridor
* T-Junction (L+R)
* T-Junction (L+R)

Revision as of 20:23, 15 May 2014

Members of group 12

Anthom van Rijn 0737682
Jan Donkers 0724801
Jeroen Willems 0755833
Karel Drenth 0863408

Testing

  • 09-05 Initial testing to familiarize with the operation of Pico.
  • 13-05 Testing corridor_challenge on Pico.

Software architecture corridor challenge

Initially, six functions are to be written to perform specific tasks to complete the corridor challenge.

Function: const_hard

Description: Stop Pico from running into a wall by readjusting if any point in the laser data is under a threshold.
Input: laser data
Output: cmd_vel
Syntax:

Function: readlaser

Description: Reduce the set of laser data to a managable set of variables by only taking the the data from the front, sides and back (from the frame of reference attached to Pico).
Input: laser data
Output: laserfront, laserright, laserback, laserleft
Syntax:

Function: sit_eval

Description: Use the laser data to determine the situation the robot is currently in, corridor (1), T junction left (2) or T junction right (3).
Input: laserfront, laserright, laserback, laserleft
Output: sit_number
Syntax:

Function: corridor

Description: sit_number = 1, attempts to stay in the middle of the corridor and continue straight on.
Input: laserright, laserleft
Output: cmd_vel
Syntax:

Function: t_junction_left

Description: sit_number = 2, drives a set distance forward, turns left and again drives a set distance forward.
Input:
Output: cmd_vel
Syntax:

Function: t_junction_right

Description: sit_number = 3, drives a set distance forward, turns right and again drives a set distance forward.
Input:
Output: cmd_vel
Syntax:


Revisions

  • 15-05 Revisited corridor_challange_v2.cpp -> renamed to corridorchallenge_v2.cpp and added some new functions: \break

- Extended laser 'vision' with left- and right diagonal view and updated amount of laser data used for each 'vision' vector. - Extended the amount of possible situation PICO can be in to nine. Currently using:

  • Corridor
  • T-Junction (L+R)
  • Crossing
  • Corner (L+R)
  • Dead End
  • Exit

- Added a function that compares the left and right laser data and 'strafes' PICO to the middle using the y coordinate. - Included front laser data to this function to ensure 'backup' when PICO comes too close to a wall. - Added corresponding functions to new situations. - Tweaked variables to ensure functioning simulations. (Allowance of some initial angle with reference to wall 'disturbance'). PICO is currently able to pass corridors, T-junctions and corners, for this however, the amount of possible situations PICO can be in is reduced for the sake of simplicity.

  • 13-05 Testing corridor_challenge on Pico.

Updated the corridor_challange.cpp to corridor_challange_v2.cpp. Brought the function sit-eval withing the callback loop for sensor messages. This way, the situation is evaluated and updated whenever new laser data is present. Some minor typo's. Added a situation that when things are to close (hard constraint) pico shuts down. After testing it was revealed that pico is stuck in condition 0 (does not know where he is).