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 template <class ContainerAllocator>
00094 struct GetDMPPlanResponse_ {
00095 typedef GetDMPPlanResponse_<ContainerAllocator> Type;
00096
00097 GetDMPPlanResponse_()
00098 : plan()
00099 , at_goal(0)
00100 {
00101 }
00102
00103 GetDMPPlanResponse_(const ContainerAllocator& _alloc)
00104 : plan(_alloc)
00105 , at_goal(0)
00106 {
00107 }
00108
00109 typedef ::dmp::DMPTraj_<ContainerAllocator> _plan_type;
00110 ::dmp::DMPTraj_<ContainerAllocator> plan;
00111
00112 typedef uint8_t _at_goal_type;
00113 uint8_t at_goal;
00114
00115
00116 typedef boost::shared_ptr< ::dmp::GetDMPPlanResponse_<ContainerAllocator> > Ptr;
00117 typedef boost::shared_ptr< ::dmp::GetDMPPlanResponse_<ContainerAllocator> const> ConstPtr;
00118 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00119 };
00120 typedef ::dmp::GetDMPPlanResponse_<std::allocator<void> > GetDMPPlanResponse;
00121
00122 typedef boost::shared_ptr< ::dmp::GetDMPPlanResponse> GetDMPPlanResponsePtr;
00123 typedef boost::shared_ptr< ::dmp::GetDMPPlanResponse const> GetDMPPlanResponseConstPtr;
00124
00125 struct GetDMPPlan
00126 {
00127
00128 typedef GetDMPPlanRequest Request;
00129 typedef GetDMPPlanResponse Response;
00130 Request request;
00131 Response response;
00132
00133 typedef Request RequestType;
00134 typedef Response ResponseType;
00135 };
00136 }
00137
00138 namespace ros
00139 {
00140 namespace message_traits
00141 {
00142 template<class ContainerAllocator> struct IsMessage< ::dmp::GetDMPPlanRequest_<ContainerAllocator> > : public TrueType {};
00143 template<class ContainerAllocator> struct IsMessage< ::dmp::GetDMPPlanRequest_<ContainerAllocator> const> : public TrueType {};
00144 template<class ContainerAllocator>
00145 struct MD5Sum< ::dmp::GetDMPPlanRequest_<ContainerAllocator> > {
00146 static const char* value()
00147 {
00148 return "bae6b051e2f7b80225be1fd25b5b705a";
00149 }
00150
00151 static const char* value(const ::dmp::GetDMPPlanRequest_<ContainerAllocator> &) { return value(); }
00152 static const uint64_t static_value1 = 0xbae6b051e2f7b802ULL;
00153 static const uint64_t static_value2 = 0x25be1fd25b5b705aULL;
00154 };
00155
00156 template<class ContainerAllocator>
00157 struct DataType< ::dmp::GetDMPPlanRequest_<ContainerAllocator> > {
00158 static const char* value()
00159 {
00160 return "dmp/GetDMPPlanRequest";
00161 }
00162
00163 static const char* value(const ::dmp::GetDMPPlanRequest_<ContainerAllocator> &) { return value(); }
00164 };
00165
00166 template<class ContainerAllocator>
00167 struct Definition< ::dmp::GetDMPPlanRequest_<ContainerAllocator> > {
00168 static const char* value()
00169 {
00170 return "\n\
00171 float64[] x_0\n\
00172 \n\
00173 \n\
00174 float64[] x_dot_0\n\
00175 \n\
00176 \n\
00177 \n\
00178 float64 t_0\n\
00179 \n\
00180 \n\
00181 float64[] goal\n\
00182 \n\
00183 \n\
00184 \n\
00185 \n\
00186 \n\
00187 float64[] goal_thresh\n\
00188 \n\
00189 \n\
00190 float64 seg_length\n\
00191 \n\
00192 \n\
00193 float64 tau\n\
00194 \n\
00195 \n\
00196 float64 dt\n\
00197 \n\
00198 \n\
00199 int32 integrate_iter\n\
00200 \n\
00201 \n\
00202 ";
00203 }
00204
00205 static const char* value(const ::dmp::GetDMPPlanRequest_<ContainerAllocator> &) { return value(); }
00206 };
00207
00208 }
00209 }
00210
00211
00212 namespace ros
00213 {
00214 namespace message_traits
00215 {
00216 template<class ContainerAllocator> struct IsMessage< ::dmp::GetDMPPlanResponse_<ContainerAllocator> > : public TrueType {};
00217 template<class ContainerAllocator> struct IsMessage< ::dmp::GetDMPPlanResponse_<ContainerAllocator> const> : public TrueType {};
00218 template<class ContainerAllocator>
00219 struct MD5Sum< ::dmp::GetDMPPlanResponse_<ContainerAllocator> > {
00220 static const char* value()
00221 {
00222 return "dcf9f84a71b2617cf4bbc301a97c05cd";
00223 }
00224
00225 static const char* value(const ::dmp::GetDMPPlanResponse_<ContainerAllocator> &) { return value(); }
00226 static const uint64_t static_value1 = 0xdcf9f84a71b2617cULL;
00227 static const uint64_t static_value2 = 0xf4bbc301a97c05cdULL;
00228 };
00229
00230 template<class ContainerAllocator>
00231 struct DataType< ::dmp::GetDMPPlanResponse_<ContainerAllocator> > {
00232 static const char* value()
00233 {
00234 return "dmp/GetDMPPlanResponse";
00235 }
00236
00237 static const char* value(const ::dmp::GetDMPPlanResponse_<ContainerAllocator> &) { return value(); }
00238 };
00239
00240 template<class ContainerAllocator>
00241 struct Definition< ::dmp::GetDMPPlanResponse_<ContainerAllocator> > {
00242 static const char* value()
00243 {
00244 return "\n\
00245 \n\
00246 DMPTraj plan\n\
00247 \n\
00248 \n\
00249 uint8 at_goal\n\
00250 \n\
00251 \n\
00252 \n\
00253 \n\
00254 \n\
00255 \n\
00256 ================================================================================\n\
00257 MSG: dmp/DMPTraj\n\
00258 # points and times should be the same length\n\
00259 DMPPoint[] points\n\
00260 \n\
00261 # Times of observations, in seconds, starting at zero\n\
00262 float64[] times\n\
00263 \n\
00264 \n\
00265 \n\
00266 ================================================================================\n\
00267 MSG: dmp/DMPPoint\n\
00268 # Positions and velocities of DOFs\n\
00269 #Velocity is only used for movement plans, not for giving demonstrations.\n\
00270 float64[] positions\n\
00271 float64[] velocities\n\
00272 \n\
00273 \n\
00274 \n\
00275 ";
00276 }
00277
00278 static const char* value(const ::dmp::GetDMPPlanResponse_<ContainerAllocator> &) { return value(); }
00279 };
00280
00281 }
00282 }
00283
00284 namespace ros
00285 {
00286 namespace serialization
00287 {
00288
00289 template<class ContainerAllocator> struct Serializer< ::dmp::GetDMPPlanRequest_<ContainerAllocator> >
00290 {
00291 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00292 {
00293 stream.next(m.x_0);
00294 stream.next(m.x_dot_0);
00295 stream.next(m.t_0);
00296 stream.next(m.goal);
00297 stream.next(m.goal_thresh);
00298 stream.next(m.seg_length);
00299 stream.next(m.tau);
00300 stream.next(m.dt);
00301 stream.next(m.integrate_iter);
00302 }
00303
00304 ROS_DECLARE_ALLINONE_SERIALIZER;
00305 };
00306 }
00307 }
00308
00309
00310 namespace ros
00311 {
00312 namespace serialization
00313 {
00314
00315 template<class ContainerAllocator> struct Serializer< ::dmp::GetDMPPlanResponse_<ContainerAllocator> >
00316 {
00317 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00318 {
00319 stream.next(m.plan);
00320 stream.next(m.at_goal);
00321 }
00322
00323 ROS_DECLARE_ALLINONE_SERIALIZER;
00324 };
00325 }
00326 }
00327
00328 namespace ros
00329 {
00330 namespace service_traits
00331 {
00332 template<>
00333 struct MD5Sum<dmp::GetDMPPlan> {
00334 static const char* value()
00335 {
00336 return "5cd79fd80676a4f8f062c5472a3190b1";
00337 }
00338
00339 static const char* value(const dmp::GetDMPPlan&) { return value(); }
00340 };
00341
00342 template<>
00343 struct DataType<dmp::GetDMPPlan> {
00344 static const char* value()
00345 {
00346 return "dmp/GetDMPPlan";
00347 }
00348
00349 static const char* value(const dmp::GetDMPPlan&) { return value(); }
00350 };
00351
00352 template<class ContainerAllocator>
00353 struct MD5Sum<dmp::GetDMPPlanRequest_<ContainerAllocator> > {
00354 static const char* value()
00355 {
00356 return "5cd79fd80676a4f8f062c5472a3190b1";
00357 }
00358
00359 static const char* value(const dmp::GetDMPPlanRequest_<ContainerAllocator> &) { return value(); }
00360 };
00361
00362 template<class ContainerAllocator>
00363 struct DataType<dmp::GetDMPPlanRequest_<ContainerAllocator> > {
00364 static const char* value()
00365 {
00366 return "dmp/GetDMPPlan";
00367 }
00368
00369 static const char* value(const dmp::GetDMPPlanRequest_<ContainerAllocator> &) { return value(); }
00370 };
00371
00372 template<class ContainerAllocator>
00373 struct MD5Sum<dmp::GetDMPPlanResponse_<ContainerAllocator> > {
00374 static const char* value()
00375 {
00376 return "5cd79fd80676a4f8f062c5472a3190b1";
00377 }
00378
00379 static const char* value(const dmp::GetDMPPlanResponse_<ContainerAllocator> &) { return value(); }
00380 };
00381
00382 template<class ContainerAllocator>
00383 struct DataType<dmp::GetDMPPlanResponse_<ContainerAllocator> > {
00384 static const char* value()
00385 {
00386 return "dmp/GetDMPPlan";
00387 }
00388
00389 static const char* value(const dmp::GetDMPPlanResponse_<ContainerAllocator> &) { return value(); }
00390 };
00391
00392 }
00393 }
00394
00395 #endif // DMP_SERVICE_GETDMPPLAN_H
00396