Embedded Motion Control 2013 Group 3
Jump to navigation
Jump to search
Contact info
Vissers, Yorrick | 0619897 | y.vissers@student.tue.nl |
Wanders, Matthijs | 0620608 | m.wanders@student.tue.nl |
Gruntjens, Koen | 0760934 | k.g.j.gruntjens@student.tue.nl |
Bouazzaoui, Hicham | 0831797 | h.e.bouazzaoui@student.tue.nl |
Zhu ,Yifan | 0828010 | y.zhu@student.tue.nl |
Meeting hours
Mondays 11:00 --> 17:00
Wednesdays 8:45 --> 10:30
Meet with tutor: Mondays at 14:00
Planning
Ma 09 sept:
- Finish installation of everything
- Go through ROS (beginner) and C++ manual
Wo 11 sept:
- Finish ROS, C++ manuals
- Start thinking about function architecture
Ma 16 sept:
- Design architecture
- Functionality division
- Divide programming tasks
Do 19 sept:
- Finish "state stop" (Koen)
- Finish "drive_parallel" (Matthijs, Yorrick)
- Creating a new "maze/corridor" in Gazebo (Yifan)
- Simulate and build the total code using Gazebo (Hicham)
- Testing with robot at 13:00-14:00
Fr 20 sept:
- Finish "crash_avoidance"
- Coding "gap_detection" (Yifan)
- Coding "dead_end_detection" (Matthijs, Yorrick)
- Coding "maze_finished" (Koen, Hicham)
Ma 23 sept:
- Finish "drive_parallel"
- Putting things together
- Testing with robot at 12:00-13:00
Wo 25 sept:
- Finish clean_rotation
- Finish gap_handling
- Putting things together
- Corridor Challenge
PICO usefull info
- minimal angle = 2,35739
- maximal angle = -2,35739
- angle increment = 0,00436554
- scan.range.size() = 1081
Strategy
We will use one node that "spins" and subscribes to the sensordata, and publishes the velocities.
The main controller can be in six states:
- state_initialize: return initial setpoint??
- state_drive_parallel: Keep the robot at a fixed distance (setpoint) from the right wall while driving.
- state_gap_handling: When arriving at the center of a gap (to the right). Rotate in place untill parallel with new right wall.
- state_stop: Stops the robot when necessary.
- state_finalize: When no longer between two walls and no maze in front, abort.
- state_turn_around: when at a dead end, turn around.
Design approach & conventions
- datastructures.h: put all global variables and datastructures here.
- states: each contains the functionality of a state.
- conditions: each checks a certain condition to determine the next state.
- theseus is name of the package/node to execute
- theseus_controller is the controller that is iterated and runs:
Gather conditions e.g.: crash_avoidance, gap_detection. Based on the information a state will be chosen and executed. Publish velocities.