Prezi

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in the manual

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Action Pilot

No description
by Aswin Bouwmeester on 24 March 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Action Pilot

Action Pilot
How does it work?
What is the robot like?
Describe the robot to the model builder
How?
Number of wheels
Size of the wheels
The gear train
Position of the wheels
Orientation of the wheels
The encoders
Using polar coordinates
Using Cartesian coordinates
Kinematics
The model builder generates kinematic models
The kinematic model translates robot speed into wheel speed.
The kinematic model is represented in a matrix.
The Kinematic model
The inverse kinematic model translates changes in motor position into changes in robot position.
The inverse kinematic model is represented as a matrix
The inverse kinematic model
Kinematics are used to calculate motor speed from robot speed and back
Where is the robot?
Use the motor encoders to calculate displacement
Odometry
The odometer class maintains a Pose

A pose is the robots position ad orientation in a space.
Position is the location (x, y) of the robot in respect to the origin
Orientation is the angle (a) of the robot in respect to the reference frame

Pose
it runs in its own thread and queries the motor encoders at a regular interval to
calculate displacement and to update pose
How to move?
Two kind of moves
Linear move
(x,y)
Angular move
(a)
X
Y
A
Holonomic move
Define speed at a given moment
Move classes
Move based on geometric function.
Line, Arc, Rotation, Sinus, etc.
Geometrical primitives
These moves are non adaptive
Time span of the move is known a beforehand
Speed at any moment during the move is know beforehand
Move is based on reaching a goal.
GoTo, Follow, TurnTo, etc.
Distance to target
Adaptive
It is not know how long the move takes to finish
Speed changes as the position of the robot or the goal changes
Linear moves can be combined with angular moves.
A holonomic robot can spin while driving in a straight line

Combining moves
A combined move is called an action
Action Pilot
Executes actions
Functions

Combine moves to actions
Stack actions in action queue
Execute actions
Mixes actions when in blend mode
Get moves from governing class
actionPilot.addAction ( line , rotate )
Stack actions in action queue
{
( line , rotate ),
(arc ),
( line, aim ),
( goto )
}
Execute action
while ( action.isbusy() ) {
speed = action.getSpeed(time)
chassis.setSpeed(speed)
}
Blend actions
Mix a finishing action into the next action to get smooth movement of the robot
weight = getWeight( time )
currentSpeed = weight * currentAction.getSpeed( time )
nextSpeed = (1 - weight) * nextAction.getSpeed( time )
speed = currentSpeed + nextSpeed
Only when blendMode is enabled
Object Model
Two ways to describe the robot
See the full transcript