Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

# Modules/TeamBallLocator/TeamBallLocator.h

Go to the documentation of this file.

    00001 /**
    00002 * @file TeamBallLocator.h
    00003 *
    00004 * Interfaces and definition of class TeamBallLocator.
    00005 *
    00006 * @author Martin Lötzsch
    00007 */
    00008
    00009 #ifndef __TeamBallLocator_h_
    00010 #define __TeamBallLocator_h_
    00011
    00012 #include "Tools/Module/Module.h"
    00013
    00014 #include "Representations/Perception/CameraMatrix.h"
    00015 #include "Representations/Cognition/BallModel.h"
    00016 #include "Representations/Cognition/RobotPose.h"
    00017 #include "Representations/WLan/TeamMessageCollection.h"
    00018 #include "Representations/Motion/OdometryData.h"
    00019 #include "Representations/Cognition/SampleSet.h"
    00020 #include "Representations/RoboCup/GameControlData.h"
    00021 #include "Representations/Cognition/RobotPoseCollection.h"
    00022 #include "Representations/Perception/BallPercept.h"
    00023 #include "Representations/Cognition/ObstaclesModel.h"
    00024 #include "Modules/BallLocator/GT2005Particles/GT2005ParticleContainer.h"
    00025
    00026 /**
    00027 * @class TeamBallLocatorInterfaces
    00028 *
    00029 * The interfaces of the TeamBallLocator module.
    00030 */
    00031 class TeamBallLocatorInterfaces
    00032 {
    00033 public:
    00034   /** Constructor.*/
    00035   TeamBallLocatorInterfaces(
    00036     const SeenBallState& seenBallState,
    00037     const OdometryData& odometryData,
    00038     const RobotPose& robotPose,
    00039     const TeamMessageCollection& teamMessageCollection,
    00040     const RobotPoseCollection& robotPoseCollection,
    00041     CommunicatedBallState& communicatedBallState,
    00042     GT2005ParticleContainer& ballLocatorSamples,
    00043     GameControlData& gameControlData,
    00044     const BallPercept& ballPercept,
    00045     const CameraMatrix& cameraMatrix,
    00046     const ObstaclesModel& obstaclesModel
    00047     )
    00048   : seenBallState(seenBallState),
    00049     odometryData(odometryData),
    00050     robotPose(robotPose),
    00051     teamMessageCollection(teamMessageCollection),
    00052     robotPoseCollection(robotPoseCollection),
    00053     communicatedBallState(communicatedBallState),
    00054     ballLocatorSamples(ballLocatorSamples),
    00055     gameControlData(gameControlData),
    00056     ballPercept(ballPercept),
    00057     cameraMatrix(cameraMatrix),
    00058     obstaclesModel(obstaclesModel)
    00059   {}
    00060
    00061   /** The position of the seen ball */
    00062   const SeenBallState& seenBallState;
    00063
    00064   /** The odometry data provided by the motion modules */
    00065   const OdometryData& odometryData;
    00066
    00067   /** The robots position that was calculated last */
    00068   const RobotPose& robotPose;
    00069
    00070   /** Incoming team messages from other robots */
    00071   const TeamMessageCollection& teamMessageCollection;
    00072
    00073   /** the collection of candidate robot poses */
    00074   const RobotPoseCollection& robotPoseCollection;
    00075
    00076   /** The communicated ball position to be calculated by the module */
    00077   CommunicatedBallState& communicatedBallState;
    00078
    00079   /** The samples of the ball locator */
    00080    GT2005ParticleContainer& ballLocatorSamples;
    00081
    00082    /** The GameControlData (to know if the robot is penalized for example) */
    00083    GameControlData& gameControlData;
    00084
    00085    /** The ball percept of the image processor. */
    00086    const BallPercept& ballPercept;
    00087
    00088    /** The offset and the rotation of the camera */
    00089    const CameraMatrix& cameraMatrix;
    00090
    00091    /** The obstacles model */
    00092    const ObstaclesModel& obstaclesModel;
    00093 };
    00094
    00095 /**
    00096 * @class TeamBallLocator
    00097 *
    00098 * The Base class for team ball locators
    00099 *
    00100 * It's task is to integrate ball measurements made by teammates.
    00101 */
    00102 class TeamBallLocator : public Module, public TeamBallLocatorInterfaces
    00103 {
    00104 public:
    00105 /*
    00106 * Constructor.
    00107 * @param interfaces The paramters of the TeamBallLocator module.
    00108   */
    00109   TeamBallLocator(const TeamBallLocatorInterfaces& interfaces)
    00110     : TeamBallLocatorInterfaces(interfaces)
    00111   {}
    00112
    00113   /** Destructor */
    00114   virtual ~TeamBallLocator() {}
    00115 };
    00116
    00117 #endif //__TeamBallLocator_h_