Embedded Motion Control 2014 Group 12: Difference between revisions
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 | * Corridor | ||
* T-Junction (L+R) | * T-Junction (L+R) | ||
Line 70: | Line 71: | ||
* Dead End | * Dead End | ||
* Exit | * Exit | ||
------------------------------------------------------ | |||
* 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. | ||
Line 77: | Line 79: | ||
------------------------------------------------------ | |||
*13-05 Testing corridor_challenge on Pico. | *13-05 Testing corridor_challenge on Pico. | ||
Updated the corridor_challange.cpp to corridor_challange_v2.cpp. | 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). | 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). |
Revision as of 19:25, 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).