Go to the documentation of this file.00001
00002 #ifndef DMP_SERVICE_GETDMPPLAN_H
00003 #define DMP_SERVICE_GETDMPPLAN_H
00004 #include <string>
00005 #include <vector>
00006 #include <map>
00007 #include <ostream>
00008 #include "ros/serialization.h"
00009 #include "ros/builtin_message_traits.h"
00010 #include "ros/message_operations.h"
00011 #include "ros/time.h"
00012
00013 #include "ros/macros.h"
00014
00015 #include "ros/assert.h"
00016
00017 #include "ros/service_traits.h"
00018
00019
00020
00021 #include "dmp/DMPTraj.h"
00022
00023 namespace dmp
00024 {
00025 template <class ContainerAllocator>
00026 struct GetDMPPlanRequest_ {
00027 typedef GetDMPPlanRequest_<ContainerAllocator> Type;
00028
00029 GetDMPPlanRequest_()
00030 : x_0()
00031 , x_dot_0()
00032 , t_0(0.0)
00033 , goal()
00034 , goal_thresh()
00035 , seg_length(0.0)
00036 , tau(0.0)
00037 , dt(0.0)
00038 , integrate_iter(0)
00039 {
00040 }
00041
00042 GetDMPPlanRequest_(const ContainerAllocator& _alloc)
00043 : x_0(_alloc)
00044 , x_dot_0(_alloc)
00045 , t_0(0.0)
00046 , goal(_alloc)
00047 , goal_thresh(_alloc)
00048 , seg_length(0.0)
00049 , tau(0.0)
00050 , dt(0.0)
00051 , integrate_iter(0)
00052 {
00053 }
00054
00055 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _x_0_type;
00056 std::vector<double, typename ContainerAllocator::template rebind<double>::other > x_0;
00057
00058 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _x_dot_0_type;
00059 std::vector<double, typename ContainerAllocator::template rebind<double>::other > x_dot_0;
00060
00061 typedef double _t_0_type;
00062 double t_0;
00063
00064 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _goal_type;
00065 std::vector<double, typename ContainerAllocator::template rebind<double>::other > goal;
00066
00067 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _goal_thresh_type;
00068 std::vector<double, typename ContainerAllocator::template rebind<double>::other > goal_thresh;
00069
00070 typedef double _seg_length_type;
00071 double seg_length;
00072
00073 typedef double _tau_type;
00074 double tau;
00075
00076 typedef double _dt_type;
00077 double dt;
00078
00079 typedef int32_t _integrate_iter_type;
00080 int32_t integrate_iter;
00081
00082
00083 typedef boost::shared_ptr< ::dmp::GetDMPPlanRequest_<ContainerAllocator> > Ptr;
00084 typedef boost::shared_ptr< ::dmp::GetDMPPlanRequest_<ContainerAllocator> const> ConstPtr;
00085 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00086 };
00087 typedef ::dmp::GetDMPPlanRequest_<std::allocator<void> > GetDMPPlanRequest;
00088
00089 typedef boost::shared_ptr< ::dmp::GetDMPPlanRequest> GetDMPPlanRequestPtr;
00090 typedef boost::shared_ptr< ::dmp::GetDMPPlanRequest const> GetDMPPlanRequestConstPtr;
00091
00092
00093
00094 template <class ContainerAllocator>
00095 struct GetDMPPlanResponse_ {
00096 typedef GetDMPPlanResponse_<ContainerAllocator> Type;
00097
00098 GetDMPPlanResponse_()
00099 : plan()
00100 , at_goal(0)
00101 {
00102 }
00103
00104 GetDMPPlanResponse_(const ContainerAllocator& _alloc)
00105 : plan(_alloc)
00106 , at_goal(0)
00107 {
00108 }
00109
00110 typedef ::dmp::DMPTraj_<ContainerAllocator> _plan_type;
00111 ::dmp::DMPTraj_<ContainerAllocator> plan;
00112
00113 typedef uint8_t _at_goal_type;
00114 uint8_t at_goal;
00115
00116
00117 typedef boost::shared_ptr< ::dmp::GetDMPPlanResponse_<ContainerAllocator> > Ptr;
00118 typedef boost::shared_ptr< ::dmp::GetDMPPlanResponse_<ContainerAllocator> const> ConstPtr;
00119 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00120 };
00121 typedef ::dmp::GetDMPPlanResponse_<std::allocator<void> > GetDMPPlanResponse;
00122
00123 typedef boost::shared_ptr< ::dmp::GetDMPPlanResponse> GetDMPPlanResponsePtr;
00124 typedef boost::shared_ptr< ::dmp::GetDMPPlanResponse const> GetDMPPlanResponseConstPtr;
00125
00126
00127 struct GetDMPPlan
00128 {
00129
00130 typedef GetDMPPlanRequest Request;
00131 typedef GetDMPPlanResponse Response;
00132 Request request;
00133 Response response;
00134
00135 typedef Request RequestType;
00136 typedef Response ResponseType;
00137 };
00138 }
00139
00140 namespace ros
00141 {
00142 namespace message_traits
00143 {
00144 template<class ContainerAllocator> struct IsMessage< ::dmp::GetDMPPlanRequest_<ContainerAllocator> > : public TrueType {};
00145 template<class ContainerAllocator> struct IsMessage< ::dmp::GetDMPPlanRequest_<ContainerAllocator> const> : public TrueType {};
00146 template<class ContainerAllocator>
00147 struct MD5Sum< ::dmp::GetDMPPlanRequest_<ContainerAllocator> > {
00148 static const char* value()
00149 {
00150 return "bae6b051e2f7b80225be1fd25b5b705a";
00151 }
00152
00153 static const char* value(const ::dmp::GetDMPPlanRequest_<ContainerAllocator> &) { return value(); }
00154 static const uint64_t static_value1 = 0xbae6b051e2f7b802ULL;
00155 static const uint64_t static_value2 = 0x25be1fd25b5b705aULL;
00156 };
00157
00158 template<class ContainerAllocator>
00159 struct DataType< ::dmp::GetDMPPlanRequest_<ContainerAllocator> > {
00160 static const char* value()
00161 {
00162 return "dmp/GetDMPPlanRequest";
00163 }
00164
00165 static const char* value(const ::dmp::GetDMPPlanRequest_<ContainerAllocator> &) { return value(); }
00166 };
00167
00168 template<class ContainerAllocator>
00169 struct Definition< ::dmp::GetDMPPlanRequest_<ContainerAllocator> > {
00170 static const char* value()
00171 {
00172 return "\n\
00173 float64[] x_0\n\
00174 \n\
00175 \n\
00176 float64[] x_dot_0\n\
00177 \n\
00178 \n\
00179 \n\
00180 float64 t_0\n\
00181 \n\
00182 \n\
00183 float64[] goal\n\
00184 \n\
00185 \n\
00186 \n\
00187 \n\
00188 \n\
00189 float64[] goal_thresh\n\
00190 \n\
00191 \n\
00192 float64 seg_length\n\
00193 \n\
00194 \n\
00195 float64 tau\n\
00196 \n\
00197 \n\
00198 float64 dt\n\
00199 \n\
00200 \n\
00201 int32 integrate_iter\n\
00202 \n\
00203 \n\
00204 ";
00205 }
00206
00207 static const char* value(const ::dmp::GetDMPPlanRequest_<ContainerAllocator> &) { return value(); }
00208 };
00209
00210 }
00211 }
00212
00213
00214 namespace ros
00215 {
00216 namespace message_traits
00217 {
00218 template<class ContainerAllocator> struct IsMessage< ::dmp::GetDMPPlanResponse_<ContainerAllocator> > : public TrueType {};
00219 template<class ContainerAllocator> struct IsMessage< ::dmp::GetDMPPlanResponse_<ContainerAllocator> const> : public TrueType {};
00220 template<class ContainerAllocator>
00221 struct MD5Sum< ::dmp::GetDMPPlanResponse_<ContainerAllocator> > {
00222 static const char* value()
00223 {
00224 return "dcf9f84a71b2617cf4bbc301a97c05cd";
00225 }
00226
00227 static const char* value(const ::dmp::GetDMPPlanResponse_<ContainerAllocator> &) { return value(); }
00228 static const uint64_t static_value1 = 0xdcf9f84a71b2617cULL;
00229 static const uint64_t static_value2 = 0xf4bbc301a97c05cdULL;
00230 };
00231
00232 template<class ContainerAllocator>
00233 struct DataType< ::dmp::GetDMPPlanResponse_<ContainerAllocator> > {
00234 static const char* value()
00235 {
00236 return "dmp/GetDMPPlanResponse";
00237 }
00238
00239 static const char* value(const ::dmp::GetDMPPlanResponse_<ContainerAllocator> &) { return value(); }
00240 };
00241
00242 template<class ContainerAllocator>
00243 struct Definition< ::dmp::GetDMPPlanResponse_<ContainerAllocator> > {
00244 static const char* value()
00245 {
00246 return "\n\
00247 \n\
00248 DMPTraj plan\n\
00249 \n\
00250 \n\
00251 uint8 at_goal\n\
00252 \n\
00253 \n\
00254 \n\
00255 \n\
00256 \n\
00257 \n\
00258 ================================================================================\n\
00259 MSG: dmp/DMPTraj\n\
00260 # points and times should be the same length\n\
00261 DMPPoint[] points\n\
00262 \n\
00263 # Times of observations, in seconds, starting at zero\n\
00264 float64[] times\n\
00265 \n\
00266 \n\
00267 \n\
00268 ================================================================================\n\
00269 MSG: dmp/DMPPoint\n\
00270 # Positions and velocities of DOFs\n\
00271 #Velocity is only used for movement plans, not for giving demonstrations.\n\
00272 float64[] positions\n\
00273 float64[] velocities\n\
00274 \n\
00275 \n\
00276 \n\
00277 ";
00278 }
00279
00280 static const char* value(const ::dmp::GetDMPPlanResponse_<ContainerAllocator> &) { return value(); }
00281 };
00282
00283 }
00284 }
00285
00286 namespace ros
00287 {
00288 namespace serialization
00289 {
00290
00291 template<class ContainerAllocator> struct Serializer< ::dmp::GetDMPPlanRequest_<ContainerAllocator> >
00292 {
00293 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00294 {
00295 stream.next(m.x_0);
00296 stream.next(m.x_dot_0);
00297 stream.next(m.t_0);
00298 stream.next(m.goal);
00299 stream.next(m.goal_thresh);
00300 stream.next(m.seg_length);
00301 stream.next(m.tau);
00302 stream.next(m.dt);
00303 stream.next(m.integrate_iter);
00304 }
00305
00306 ROS_DECLARE_ALLINONE_SERIALIZER;
00307 };
00308 }
00309 }
00310
00311
00312 namespace ros
00313 {
00314 namespace serialization
00315 {
00316
00317 template<class ContainerAllocator> struct Serializer< ::dmp::GetDMPPlanResponse_<ContainerAllocator> >
00318 {
00319 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00320 {
00321 stream.next(m.plan);
00322 stream.next(m.at_goal);
00323 }
00324
00325 ROS_DECLARE_ALLINONE_SERIALIZER;
00326 };
00327 }
00328 }
00329
00330 namespace ros
00331 {
00332 namespace service_traits
00333 {
00334 template<>
00335 struct MD5Sum<dmp::GetDMPPlan> {
00336 static const char* value()
00337 {
00338 return "5cd79fd80676a4f8f062c5472a3190b1";
00339 }
00340
00341 static const char* value(const dmp::GetDMPPlan&) { return value(); }
00342 };
00343
00344 template<>
00345 struct DataType<dmp::GetDMPPlan> {
00346 static const char* value()
00347 {
00348 return "dmp/GetDMPPlan";
00349 }
00350
00351 static const char* value(const dmp::GetDMPPlan&) { return value(); }
00352 };
00353
00354 template<class ContainerAllocator>
00355 struct MD5Sum<dmp::GetDMPPlanRequest_<ContainerAllocator> > {
00356 static const char* value()
00357 {
00358 return "5cd79fd80676a4f8f062c5472a3190b1";
00359 }
00360
00361 static const char* value(const dmp::GetDMPPlanRequest_<ContainerAllocator> &) { return value(); }
00362 };
00363
00364 template<class ContainerAllocator>
00365 struct DataType<dmp::GetDMPPlanRequest_<ContainerAllocator> > {
00366 static const char* value()
00367 {
00368 return "dmp/GetDMPPlan";
00369 }
00370
00371 static const char* value(const dmp::GetDMPPlanRequest_<ContainerAllocator> &) { return value(); }
00372 };
00373
00374 template<class ContainerAllocator>
00375 struct MD5Sum<dmp::GetDMPPlanResponse_<ContainerAllocator> > {
00376 static const char* value()
00377 {
00378 return "5cd79fd80676a4f8f062c5472a3190b1";
00379 }
00380
00381 static const char* value(const dmp::GetDMPPlanResponse_<ContainerAllocator> &) { return value(); }
00382 };
00383
00384 template<class ContainerAllocator>
00385 struct DataType<dmp::GetDMPPlanResponse_<ContainerAllocator> > {
00386 static const char* value()
00387 {
00388 return "dmp/GetDMPPlan";
00389 }
00390
00391 static const char* value(const dmp::GetDMPPlanResponse_<ContainerAllocator> &) { return value(); }
00392 };
00393
00394 }
00395 }
00396
00397 #endif // DMP_SERVICE_GETDMPPLAN_H
00398