00001 /** 00002 * @file RobotVertices.h 00003 * 00004 * Definition of RobotVertices struct. 00005 * 00006 * @author Uwe Düffert 00007 */ 00008 #ifndef __ROBOTVERTICES_H__ 00009 #define __ROBOTVERTICES_H__ 00010 00011 #include "Tools/Streams/InOut.h" 00012 #include "Tools/Math/Vector3.h" 00013 #include "Tools/RobotConfiguration.h" 00014 00015 /** 00016 * The RobotVertices struct contains the 3D position of important 00017 * points of the robot like the shoulder, knee and foot positions. 00018 * All positions are relative to the neck or a point below the neck. 00019 * So the coordinate of the neck will always be (0,0,z) 00020 * @author Uwe Düffert 00021 */ 00022 struct RobotVertices 00023 { 00024 public: 00025 Vector3<double> neck; 00026 //order is the same as in Kinematics::LegIndex{fr,fl,hr,hl}: 00027 Vector3<double> shoulderPosition[4]; 00028 Vector3<double> kneePosition[4]; 00029 Vector3<double> footPosition[4]; 00030 double bodyTilt; 00031 double bodyRoll; 00032 double neckHeight; 00033 unsigned frameNumber; 00034 00035 /** Default constructor */ 00036 RobotVertices() : bodyTilt(0), bodyRoll(0), neckHeight(0), frameNumber(0) {} 00037 00038 /** Constructor. 00039 * Constructs vertices for a robot with all joints set to 0. 00040 * @param r The dimensions of the robot. 00041 */ 00042 RobotVertices(const RobotDimensions& r); 00043 }; 00044 00045 /** 00046 * Streaming operator that reads a RobotVertices from a stream. 00047 * @param stream The stream from which is read. 00048 * @param robotVertices The RobotVertices object. 00049 * @return The stream. 00050 */ 00051 In& operator>>(In& stream,RobotVertices& robotVertices); 00052 00053 /** 00054 * Streaming operator that writes a RobotVertices to a stream. 00055 * @param stream The stream to write on. 00056 * @param robotVertices The RobotVertices object. 00057 * @return The stream. 00058 */ 00059 Out& operator<<(Out& stream, const RobotVertices& robotVertices); 00060 00061 #endif //__ROBOTVERTICES_H__ 00062 00063 /* 00064 * Change log : 00065 * 00066 * $Log: RobotVertices.h,v $ 00067 * Revision 1.1.1.1 2004/05/22 17:36:01 cvsadm 00068 * created new repository GT2004_WM 00069 * 00070 * Revision 1.3 2004/03/20 09:55:28 roefer 00071 * Preparation for improved odometry 00072 * 00073 * Revision 1.2 2004/01/28 21:55:50 roefer 00074 * RobotDimensions revised 00075 * 00076 * Revision 1.1 2003/10/07 10:13:21 cvsadm 00077 * Created GT2004 (M.J.) 00078 * 00079 * Revision 1.1 2003/09/26 11:40:40 juengel 00080 * - sorted tools 00081 * - clean-up in DataTypes 00082 * 00083 * Revision 1.2 2003/09/16 11:08:52 dueffert 00084 * doxygen comments improved 00085 * 00086 * Revision 1.1 2003/09/15 20:37:07 dueffert 00087 * new DataType added 00088 * 00089 */