Popular Classes
S
ources
-
E
xamples
-
D
iscussions
Project: BioMAV
Explorer
Outline
Vision
standin-module
Vision.java
PoleDetector.java
PoleDetectorOud.java
vision_testing
Java
nl
ru
ai
projects
parrot
poledetection
SimplePoleDetectionModule.java
test
Test01.java
CPPPoleDetector.java
base
src
Java
nl
ru
ai
projects
parrot
dronecontrol
ParrotDroneInterface.java
VideoPollInterface.java
SensorDataObserver.java
ControlInterface.java
SensoryDataInterface.java
PolePositionPollInterface.java
ParrotControl
JavaDroneControl
src
com
codeminders
ardrone
VideoReader.java
VideoReceivedInterface.java
video
uint.java
ImageSlice.java
BufferedVideoImage.java
MacroBlock.java
nl
ru
ai
projects
parrot
dronecontrol
javadronecontrol
ATControlCommandInterface.java
DroneConfigurationChannel.java
VisionStandin.java
test
Test01.java
NavdataPacket.java
NavdataChannelObserver.java
NavdataChannel.java
DroneGroundStation.java
GroundStation
Java
src
nl
ru
ai
projects
parrot
dronecontrol
groundstation
SDLDroneJoystick.java
DroneInputDevice.java
GroundStation.java
ExtDroneInputDevice.java
DroneInputDeviceExtension.java
ParrotSim
Java
src
nl
ru
ai
projects
parrot
dronecontrol
simulator
ExternalTimerSynchronizer.java
Simulator.java
test
Test02.java
Test01.java
SimulatedDrone.java
manualcontrol
Model.java
Main.java
View.java
Control.java
Behavior
src
nl
ru
ai
projects
parrot
biomav
editor
ParameterControlInterface.java
BehaviorEditor.java
FSMEditorSuite.java
EditorFSMFactory.java
FSMExecutor.java
BehaviorVertex.java
transitions
PoleFound.java
OutOfSight.java
Delay.java
CloseToPole.java
states
PassRightState.java
FlyRightState.java
FlyLeftState.java
TurnLeftState.java
BehaviorArray.java
StartState.java
PassLeftState.java
TurnRightState.java
SearchPoleState.java
BehaviorVertexListener.java
TransitionEdge.java
Drone.java
Main.java
BioMAVConfig.java
fsm
StateListener.java
Behavior.java
Transition.java
FSMController.java
State.java
tools
PositionLogger.java
BehaviorModule.java
Sleeper.java
Writer.java
TwitterTweets.java
BehaviorModuleSL.java
TerminatorHasCrashed.java
TwitterAccessBak.java
TerminalCondition.java
BehaviorModuleLB.java
BehaviorModule1.java
TwitterAccess.java
TerminatorNumberOfIterations.java
TerminatorTimer.java
behaviors
InitializeDrone.java
FlyTowardsPole.java
PassLeft.java
TurnRight.java
PassRight.java
TwitterBehavior.java
TurnLeft.java
SearchPole.java
Hover.java
transitions
PoleFound.java
TurnComplete.java
OutOfSight.java
CloseToPole.java
ea2
Test.java
evaluator
EvaluatorMain.java
Sjoerd2EA.java
server
TaskServer.java
ParallelBreeder.java
GenomeFactory.java
TaskParameters.java
GeneticAlgorithm.java
GAServerMain.java
Task.java
DroneGAFactory.java
SjoerdEA.java
LaurieEA.java
client
FSMFactory.java
TaskClient.java
TaskClientMain.java
EvaluationStarter.java
ea
evolve
EASetup.java
EAConfiguration.java
Chromosomes.java
fitness
EAFitness.java
FitnessDrone.java
getLastSensoryDataTimeStamp()
getCurrentRotationVector()
getGroundSpeed()
addSensorDataObserver(SensorDataObserver observer)
droneSleep(long milliseconds)
/*
This file is part of the BioMAV project.
The BioMAV project is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
The BioMAV project is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with The BioMAV project. If not, see <http://www.gnu.org/licenses/>.
*/
package
nl.ru.ai.projects.parrot.dronecontrol;
/**
* <p>
* This interface defines all function necessary to obtain data from the sensors of
* the drone. Only sensors that seemed important for flying eight shapes around poles
* are implemented at the moment, though extensions are possible.
* </p>
*
* <p>
* There is a special function integrated in this interface, which is called
* {@link #droneSleep(long)}. This function was implemented to allow better timer
* integration with the drone simulator. When the simulator is run, the sleep depends on
* the simulation speed, for the real drone the system clock is used.
* </p>
*
* @author Paul Konstantin Gerke
*
*/
public
interface
SensoryDataInterface
{
/**
* Retrieves the time stamp of the last sensory data snapshot
* that has been taken.
* @return
* Timestamp in milliseconds (local system time)
*/
public
long
getLastSensoryDataTimeStamp
();
/**
* (Gyro information)
*
* Returns how many radians the drone has turned since the last call
* to getCurrentRotationVector.
* @return
* A 3-component double array representing a vector. The X, Y,
* and Z component give the accumulated angle (radians) that
* the drone has turned around the X, Y, and Z axis since the
* last call of this function.
*/
public
double
[]
getCurrentRotationVector
();
/**
* Returns the ground speed of the drone - use with care since
* the ground speed data of the real drone seems to be especially
* noisy and dependent on the texture of the ground.
* @return
* A 3-component double array representing a vector. The X, Y,
* and Z component give the movement speed in m/s. Thereby X
* represents forward movement (positive = forward) and
* Y movement sideways (positive = right). Z is always zero.
*/
public
double
[]
getGroundSpeed
();
/**
* Add a new sensor data observer to the drone that is called when
* new sensor data has been received. As long as the observers are
* called, no new seonsory data will be received.
*
* @param observer
* Observer that should be notified about the new sensor data
* received by this SensorydataInterface.
*/
public
void
addSensorDataObserver
(SensorDataObserver observer);
/**
* Does a sleep that is synchronized with the drone timer (especially useful
* for the simulator)
*
* @param milliseconds
*/
public
void
droneSleep
(
long
milliseconds)
throws
InterruptedException;
}