00001
00002 #ifndef HRL_HAPTIC_MANIPULATION_IN_CLUTTER_SRVS_SERVICE_SERVICEBASEDMPC_H
00003 #define HRL_HAPTIC_MANIPULATION_IN_CLUTTER_SRVS_SERVICE_SERVICEBASEDMPC_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
00022 namespace hrl_haptic_manipulation_in_clutter_srvs
00023 {
00024 template <class ContainerAllocator>
00025 struct ServiceBasedMPCRequest_ {
00026 typedef ServiceBasedMPCRequest_<ContainerAllocator> Type;
00027
00028 ServiceBasedMPCRequest_()
00029 : alpha(0.0)
00030 , beta(0.0)
00031 , gamma(0.0)
00032 , delta_x_d()
00033 , J()
00034 , desired_force_decrease()
00035 , x_0()
00036 , KP_t_KP()
00037 , B()
00038 , q_min()
00039 , q_max()
00040 , f_min()
00041 , f_max()
00042 , n_K_ci_J_ci()
00043 , n_K_ci_J_ci_max()
00044 , u_min()
00045 , u_max()
00046 , Q()
00047 {
00048 }
00049
00050 ServiceBasedMPCRequest_(const ContainerAllocator& _alloc)
00051 : alpha(0.0)
00052 , beta(0.0)
00053 , gamma(0.0)
00054 , delta_x_d(_alloc)
00055 , J(_alloc)
00056 , desired_force_decrease(_alloc)
00057 , x_0(_alloc)
00058 , KP_t_KP(_alloc)
00059 , B(_alloc)
00060 , q_min(_alloc)
00061 , q_max(_alloc)
00062 , f_min(_alloc)
00063 , f_max(_alloc)
00064 , n_K_ci_J_ci(_alloc)
00065 , n_K_ci_J_ci_max(_alloc)
00066 , u_min(_alloc)
00067 , u_max(_alloc)
00068 , Q(_alloc)
00069 {
00070 }
00071
00072 typedef double _alpha_type;
00073 double alpha;
00074
00075 typedef double _beta_type;
00076 double beta;
00077
00078 typedef double _gamma_type;
00079 double gamma;
00080
00081 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _delta_x_d_type;
00082 std::vector<double, typename ContainerAllocator::template rebind<double>::other > delta_x_d;
00083
00084 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _J_type;
00085 std::vector<double, typename ContainerAllocator::template rebind<double>::other > J;
00086
00087 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _desired_force_decrease_type;
00088 std::vector<double, typename ContainerAllocator::template rebind<double>::other > desired_force_decrease;
00089
00090 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _x_0_type;
00091 std::vector<double, typename ContainerAllocator::template rebind<double>::other > x_0;
00092
00093 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _KP_t_KP_type;
00094 std::vector<double, typename ContainerAllocator::template rebind<double>::other > KP_t_KP;
00095
00096 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _B_type;
00097 std::vector<double, typename ContainerAllocator::template rebind<double>::other > B;
00098
00099 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _q_min_type;
00100 std::vector<double, typename ContainerAllocator::template rebind<double>::other > q_min;
00101
00102 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _q_max_type;
00103 std::vector<double, typename ContainerAllocator::template rebind<double>::other > q_max;
00104
00105 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _f_min_type;
00106 std::vector<double, typename ContainerAllocator::template rebind<double>::other > f_min;
00107
00108 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _f_max_type;
00109 std::vector<double, typename ContainerAllocator::template rebind<double>::other > f_max;
00110
00111 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _n_K_ci_J_ci_type;
00112 std::vector<double, typename ContainerAllocator::template rebind<double>::other > n_K_ci_J_ci;
00113
00114 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _n_K_ci_J_ci_max_type;
00115 std::vector<double, typename ContainerAllocator::template rebind<double>::other > n_K_ci_J_ci_max;
00116
00117 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _u_min_type;
00118 std::vector<double, typename ContainerAllocator::template rebind<double>::other > u_min;
00119
00120 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _u_max_type;
00121 std::vector<double, typename ContainerAllocator::template rebind<double>::other > u_max;
00122
00123 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _Q_type;
00124 std::vector<double, typename ContainerAllocator::template rebind<double>::other > Q;
00125
00126
00127 typedef boost::shared_ptr< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> > Ptr;
00128 typedef boost::shared_ptr< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> const> ConstPtr;
00129 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00130 };
00131 typedef ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<std::allocator<void> > ServiceBasedMPCRequest;
00132
00133 typedef boost::shared_ptr< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest> ServiceBasedMPCRequestPtr;
00134 typedef boost::shared_ptr< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest const> ServiceBasedMPCRequestConstPtr;
00135
00136
00137 template <class ContainerAllocator>
00138 struct ServiceBasedMPCResponse_ {
00139 typedef ServiceBasedMPCResponse_<ContainerAllocator> Type;
00140
00141 ServiceBasedMPCResponse_()
00142 : delta_phi_opt()
00143 , predicted_joint_angles()
00144 {
00145 delta_phi_opt.assign(0.0);
00146 predicted_joint_angles.assign(0.0);
00147 }
00148
00149 ServiceBasedMPCResponse_(const ContainerAllocator& _alloc)
00150 : delta_phi_opt()
00151 , predicted_joint_angles()
00152 {
00153 delta_phi_opt.assign(0.0);
00154 predicted_joint_angles.assign(0.0);
00155 }
00156
00157 typedef boost::array<double, 7> _delta_phi_opt_type;
00158 boost::array<double, 7> delta_phi_opt;
00159
00160 typedef boost::array<double, 7> _predicted_joint_angles_type;
00161 boost::array<double, 7> predicted_joint_angles;
00162
00163
00164 typedef boost::shared_ptr< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> > Ptr;
00165 typedef boost::shared_ptr< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> const> ConstPtr;
00166 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00167 };
00168 typedef ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<std::allocator<void> > ServiceBasedMPCResponse;
00169
00170 typedef boost::shared_ptr< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse> ServiceBasedMPCResponsePtr;
00171 typedef boost::shared_ptr< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse const> ServiceBasedMPCResponseConstPtr;
00172
00173 struct ServiceBasedMPC
00174 {
00175
00176 typedef ServiceBasedMPCRequest Request;
00177 typedef ServiceBasedMPCResponse Response;
00178 Request request;
00179 Response response;
00180
00181 typedef Request RequestType;
00182 typedef Response ResponseType;
00183 };
00184 }
00185
00186 namespace ros
00187 {
00188 namespace message_traits
00189 {
00190 template<class ContainerAllocator> struct IsMessage< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> > : public TrueType {};
00191 template<class ContainerAllocator> struct IsMessage< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> const> : public TrueType {};
00192 template<class ContainerAllocator>
00193 struct MD5Sum< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> > {
00194 static const char* value()
00195 {
00196 return "ff2d5410ce473a73156a5162cbdc78d0";
00197 }
00198
00199 static const char* value(const ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> &) { return value(); }
00200 static const uint64_t static_value1 = 0xff2d5410ce473a73ULL;
00201 static const uint64_t static_value2 = 0x156a5162cbdc78d0ULL;
00202 };
00203
00204 template<class ContainerAllocator>
00205 struct DataType< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> > {
00206 static const char* value()
00207 {
00208 return "hrl_haptic_manipulation_in_clutter_srvs/ServiceBasedMPCRequest";
00209 }
00210
00211 static const char* value(const ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> &) { return value(); }
00212 };
00213
00214 template<class ContainerAllocator>
00215 struct Definition< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> > {
00216 static const char* value()
00217 {
00218 return "float64 alpha\n\
00219 float64 beta\n\
00220 float64 gamma\n\
00221 float64[] delta_x_d\n\
00222 float64[] J\n\
00223 float64[] desired_force_decrease\n\
00224 float64[] x_0\n\
00225 float64[] KP_t_KP\n\
00226 float64[] B\n\
00227 float64[] q_min\n\
00228 float64[] q_max\n\
00229 float64[] f_min\n\
00230 float64[] f_max\n\
00231 float64[] n_K_ci_J_ci\n\
00232 float64[] n_K_ci_J_ci_max\n\
00233 float64[] u_min\n\
00234 float64[] u_max\n\
00235 float64[] Q\n\
00236 \n\
00237 ";
00238 }
00239
00240 static const char* value(const ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> &) { return value(); }
00241 };
00242
00243 }
00244 }
00245
00246
00247 namespace ros
00248 {
00249 namespace message_traits
00250 {
00251 template<class ContainerAllocator> struct IsMessage< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> > : public TrueType {};
00252 template<class ContainerAllocator> struct IsMessage< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> const> : public TrueType {};
00253 template<class ContainerAllocator>
00254 struct MD5Sum< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> > {
00255 static const char* value()
00256 {
00257 return "00475d6b4b4fc3a6b932afa7b8502db3";
00258 }
00259
00260 static const char* value(const ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> &) { return value(); }
00261 static const uint64_t static_value1 = 0x00475d6b4b4fc3a6ULL;
00262 static const uint64_t static_value2 = 0xb932afa7b8502db3ULL;
00263 };
00264
00265 template<class ContainerAllocator>
00266 struct DataType< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> > {
00267 static const char* value()
00268 {
00269 return "hrl_haptic_manipulation_in_clutter_srvs/ServiceBasedMPCResponse";
00270 }
00271
00272 static const char* value(const ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> &) { return value(); }
00273 };
00274
00275 template<class ContainerAllocator>
00276 struct Definition< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> > {
00277 static const char* value()
00278 {
00279 return "float64[7] delta_phi_opt\n\
00280 float64[7] predicted_joint_angles\n\
00281 \n\
00282 \n\
00283 \n\
00284 \n\
00285 \n\
00286 \n\
00287 ";
00288 }
00289
00290 static const char* value(const ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> &) { return value(); }
00291 };
00292
00293 template<class ContainerAllocator> struct IsFixedSize< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> > : public TrueType {};
00294 }
00295 }
00296
00297 namespace ros
00298 {
00299 namespace serialization
00300 {
00301
00302 template<class ContainerAllocator> struct Serializer< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> >
00303 {
00304 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00305 {
00306 stream.next(m.alpha);
00307 stream.next(m.beta);
00308 stream.next(m.gamma);
00309 stream.next(m.delta_x_d);
00310 stream.next(m.J);
00311 stream.next(m.desired_force_decrease);
00312 stream.next(m.x_0);
00313 stream.next(m.KP_t_KP);
00314 stream.next(m.B);
00315 stream.next(m.q_min);
00316 stream.next(m.q_max);
00317 stream.next(m.f_min);
00318 stream.next(m.f_max);
00319 stream.next(m.n_K_ci_J_ci);
00320 stream.next(m.n_K_ci_J_ci_max);
00321 stream.next(m.u_min);
00322 stream.next(m.u_max);
00323 stream.next(m.Q);
00324 }
00325
00326 ROS_DECLARE_ALLINONE_SERIALIZER;
00327 };
00328 }
00329 }
00330
00331
00332 namespace ros
00333 {
00334 namespace serialization
00335 {
00336
00337 template<class ContainerAllocator> struct Serializer< ::hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> >
00338 {
00339 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00340 {
00341 stream.next(m.delta_phi_opt);
00342 stream.next(m.predicted_joint_angles);
00343 }
00344
00345 ROS_DECLARE_ALLINONE_SERIALIZER;
00346 };
00347 }
00348 }
00349
00350 namespace ros
00351 {
00352 namespace service_traits
00353 {
00354 template<>
00355 struct MD5Sum<hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPC> {
00356 static const char* value()
00357 {
00358 return "67c7bceb584229e1de3a6ec4552d4994";
00359 }
00360
00361 static const char* value(const hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPC&) { return value(); }
00362 };
00363
00364 template<>
00365 struct DataType<hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPC> {
00366 static const char* value()
00367 {
00368 return "hrl_haptic_manipulation_in_clutter_srvs/ServiceBasedMPC";
00369 }
00370
00371 static const char* value(const hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPC&) { return value(); }
00372 };
00373
00374 template<class ContainerAllocator>
00375 struct MD5Sum<hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> > {
00376 static const char* value()
00377 {
00378 return "67c7bceb584229e1de3a6ec4552d4994";
00379 }
00380
00381 static const char* value(const hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> &) { return value(); }
00382 };
00383
00384 template<class ContainerAllocator>
00385 struct DataType<hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> > {
00386 static const char* value()
00387 {
00388 return "hrl_haptic_manipulation_in_clutter_srvs/ServiceBasedMPC";
00389 }
00390
00391 static const char* value(const hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCRequest_<ContainerAllocator> &) { return value(); }
00392 };
00393
00394 template<class ContainerAllocator>
00395 struct MD5Sum<hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> > {
00396 static const char* value()
00397 {
00398 return "67c7bceb584229e1de3a6ec4552d4994";
00399 }
00400
00401 static const char* value(const hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> &) { return value(); }
00402 };
00403
00404 template<class ContainerAllocator>
00405 struct DataType<hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> > {
00406 static const char* value()
00407 {
00408 return "hrl_haptic_manipulation_in_clutter_srvs/ServiceBasedMPC";
00409 }
00410
00411 static const char* value(const hrl_haptic_manipulation_in_clutter_srvs::ServiceBasedMPCResponse_<ContainerAllocator> &) { return value(); }
00412 };
00413
00414 }
00415 }
00416
00417 #endif // HRL_HAPTIC_MANIPULATION_IN_CLUTTER_SRVS_SERVICE_SERVICEBASEDMPC_H
00418