Embedded Motion Control 2014 Group 12: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
Line 64: Line 64:
* 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<br>
- Corridor<br>
- T-Junction (L+R)<br>
- T-Junction (L+R)<br>
Line 71: Line 71:
- Dead End<br>
- Dead End<br>
- Exit<br>
- Exit<br>
------------------------------------------------------
 
* Added a function that compares the left and right laser data and 'strafes' PICO to the middle using the y coordinate.  
* Added a function that compares the left and right laser data and 'strafes' PICO to the middle using the y coordinate.  
* Added an 'integrator'-like function that aligns the front vector of PICO to the walls of the corridor.
* Added an 'integrator'-like function that aligns the front vector of PICO to the walls of the corridor.

Revision as of 20:26, 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:
  • 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.
  • Added an 'integrator'-like function that aligns the front vector of PICO to the walls of the corridor.
  • 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).