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/Cognition/BallModel.h" 00015 #include "Representations/Cognition/RobotPose.h" 00016 #include "Representations/WLan/TeamMessageCollection.h" 00017 #include "Representations/Motion/OdometryData.h" 00018 00019 /** 00020 * @class TeamBallLocatorInterfaces 00021 * 00022 * The interfaces of the TeamBallLocator module. 00023 */ 00024 class TeamBallLocatorInterfaces 00025 { 00026 public: 00027 /** Constructor.*/ 00028 TeamBallLocatorInterfaces( 00029 const SeenBallPosition& seenBallPosition, 00030 const OdometryData& odometryData, 00031 const RobotPose& robotPose, 00032 const TeamMessageCollection& teamMessageCollection, 00033 CommunicatedBallPosition& communicatedBallPosition) 00034 : 00035 seenBallPosition(seenBallPosition), 00036 odometryData(odometryData), 00037 robotPose(robotPose), 00038 teamMessageCollection(teamMessageCollection), 00039 communicatedBallPosition(communicatedBallPosition) 00040 {} 00041 00042 /** The position of the seen ball */ 00043 const SeenBallPosition& seenBallPosition; 00044 00045 /** The odometry data provided by the motion modules */ 00046 const OdometryData& odometryData; 00047 00048 /** The robots position that was calculated last */ 00049 const RobotPose& robotPose; 00050 00051 /** Incoming team messages from other robots */ 00052 const TeamMessageCollection& teamMessageCollection; 00053 00054 /** The communicated ball position to be calculated by the module */ 00055 CommunicatedBallPosition& communicatedBallPosition; 00056 }; 00057 00058 /** 00059 * @class TeamBallLocator 00060 * 00061 * The Base class for team ball locators 00062 * 00063 * It's task is to integrate ball measurements made by teammates. 00064 */ 00065 class TeamBallLocator : public Module, public TeamBallLocatorInterfaces 00066 { 00067 public: 00068 /* 00069 * Constructor. 00070 * @param interfaces The paramters of the TeamBallLocator module. 00071 */ 00072 TeamBallLocator(const TeamBallLocatorInterfaces& interfaces) 00073 : TeamBallLocatorInterfaces(interfaces) 00074 {} 00075 00076 /** Destructor */ 00077 virtual ~TeamBallLocator() {} 00078 }; 00079 00080 #endif //__TeamBallLocator_h_ 00081 00082 /* 00083 * Change log : 00084 * 00085 * $Log: TeamBallLocator.h,v $ 00086 * Revision 1.1.1.1 2004/05/22 17:22:26 cvsadm 00087 * created new repository GT2004_WM 00088 * 00089 * Revision 1.3 2004/03/08 02:11:54 roefer 00090 * Interfaces should be const 00091 * 00092 * Revision 1.2 2004/02/03 13:19:50 spranger 00093 * renamed all references to class BallPosition to BallModel 00094 * 00095 * Revision 1.1 2003/10/06 14:10:14 cvsadm 00096 * Created GT2004 (M.J.) 00097 * 00098 * Revision 1.2 2003/09/26 15:27:49 juengel 00099 * Renamed DataTypes to representations. 00100 * 00101 * Revision 1.1.1.1 2003/07/02 09:40:24 cvsadm 00102 * created new repository for the competitions in Padova from the 00103 * tamara CVS (Tuesday 2:00 pm) 00104 * 00105 * removed unused solutions 00106 * 00107 * Revision 1.1 2003/05/01 17:09:08 loetzsch 00108 * Redesign of ball modeling: 00109 * - Modularized class BallPosition 00110 * - splitted up module "BallLocator" into "BallLocator" for modeling of percepts 00111 * and "TeamBallLocator" for modelling communicated positions 00112 * - Removed solution JumpingBallLocator 00113 * - Splitted Solution DefaultBallLocator into DefaultBallLocator and DefaultTeamBallLocator 00114 * - Renamed SensorFusionBallLocator to GaussBellTeamBallLocator 00115 * 00116 */