Embedded Motion Control 2013 Group 3: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
Line 66: Line 66:
We will use one node that "spins" and subscribes to the sensordata, and publishes the velocities.
We will use one node that "spins" and subscribes to the sensordata, and publishes the velocities.


The main controller can be in five states:
The main controller can be in six states:
* state_initialize: return initial setpoint??
* state_initialize: return initial setpoint??
* state_drive_parallel: Keep the robot at a fixed distance (setpoint) from the right wall while driving.
* state_drive_parallel: Keep the robot at a fixed distance (setpoint) from the right wall while driving.
Line 72: Line 72:
* state_stop: Stops the robot when necessary.
* state_stop: Stops the robot when necessary.
* state_finalize: When no longer between two walls and no maze in front, abort.
* 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==
==Design approach & conventions==

Revision as of 13:19, 17 September 2013

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 "initialize" (Koen, Hicham, Yifan)
  • Finish "drive_parallel" (Matthijs, Yorrick)
  • Testing with robot at 13:00-14: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.
   At the end of the state, the velocities will be published.