00001
00002 #ifndef HRL_HAPTIC_MANIPULATION_IN_CLUTTER_MSGS_MESSAGE_MPC_FORMATTEDDATA_H
00003 #define HRL_HAPTIC_MANIPULATION_IN_CLUTTER_MSGS_MESSAGE_MPC_FORMATTEDDATA_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 "std_msgs/Header.h"
00018
00019 namespace hrl_haptic_manipulation_in_clutter_msgs
00020 {
00021 template <class ContainerAllocator>
00022 struct MPC_FormattedData_ {
00023 typedef MPC_FormattedData_<ContainerAllocator> Type;
00024
00025 MPC_FormattedData_()
00026 : header()
00027 , alpha(0.0)
00028 , beta(0.0)
00029 , gamma(0.0)
00030 , delta_x_d()
00031 , J()
00032 , desired_dist_increase()
00033 , x_0()
00034 , KP_t_KP()
00035 , q_min()
00036 , q_max()
00037 , dist_min()
00038 , dist_max()
00039 , n_J_ci()
00040 , n_J_ci_max()
00041 , u_min()
00042 , u_max()
00043 , Q()
00044 {
00045 }
00046
00047 MPC_FormattedData_(const ContainerAllocator& _alloc)
00048 : header(_alloc)
00049 , alpha(0.0)
00050 , beta(0.0)
00051 , gamma(0.0)
00052 , delta_x_d(_alloc)
00053 , J(_alloc)
00054 , desired_dist_increase(_alloc)
00055 , x_0(_alloc)
00056 , KP_t_KP(_alloc)
00057 , q_min(_alloc)
00058 , q_max(_alloc)
00059 , dist_min(_alloc)
00060 , dist_max(_alloc)
00061 , n_J_ci(_alloc)
00062 , n_J_ci_max(_alloc)
00063 , u_min(_alloc)
00064 , u_max(_alloc)
00065 , Q(_alloc)
00066 {
00067 }
00068
00069 typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
00070 ::std_msgs::Header_<ContainerAllocator> header;
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_dist_increase_type;
00088 std::vector<double, typename ContainerAllocator::template rebind<double>::other > desired_dist_increase;
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 > _q_min_type;
00097 std::vector<double, typename ContainerAllocator::template rebind<double>::other > q_min;
00098
00099 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _q_max_type;
00100 std::vector<double, typename ContainerAllocator::template rebind<double>::other > q_max;
00101
00102 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _dist_min_type;
00103 std::vector<double, typename ContainerAllocator::template rebind<double>::other > dist_min;
00104
00105 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _dist_max_type;
00106 std::vector<double, typename ContainerAllocator::template rebind<double>::other > dist_max;
00107
00108 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _n_J_ci_type;
00109 std::vector<double, typename ContainerAllocator::template rebind<double>::other > n_J_ci;
00110
00111 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _n_J_ci_max_type;
00112 std::vector<double, typename ContainerAllocator::template rebind<double>::other > n_J_ci_max;
00113
00114 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _u_min_type;
00115 std::vector<double, typename ContainerAllocator::template rebind<double>::other > u_min;
00116
00117 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _u_max_type;
00118 std::vector<double, typename ContainerAllocator::template rebind<double>::other > u_max;
00119
00120 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _Q_type;
00121 std::vector<double, typename ContainerAllocator::template rebind<double>::other > Q;
00122
00123
00124 typedef boost::shared_ptr< ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> > Ptr;
00125 typedef boost::shared_ptr< ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> const> ConstPtr;
00126 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00127 };
00128 typedef ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<std::allocator<void> > MPC_FormattedData;
00129
00130 typedef boost::shared_ptr< ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData> MPC_FormattedDataPtr;
00131 typedef boost::shared_ptr< ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData const> MPC_FormattedDataConstPtr;
00132
00133
00134 template<typename ContainerAllocator>
00135 std::ostream& operator<<(std::ostream& s, const ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> & v)
00136 {
00137 ros::message_operations::Printer< ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> >::stream(s, "", v);
00138 return s;}
00139
00140 }
00141
00142 namespace ros
00143 {
00144 namespace message_traits
00145 {
00146 template<class ContainerAllocator> struct IsMessage< ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> > : public TrueType {};
00147 template<class ContainerAllocator> struct IsMessage< ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> const> : public TrueType {};
00148 template<class ContainerAllocator>
00149 struct MD5Sum< ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> > {
00150 static const char* value()
00151 {
00152 return "35ec73a5af9869a7ed35470b92764e75";
00153 }
00154
00155 static const char* value(const ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> &) { return value(); }
00156 static const uint64_t static_value1 = 0x35ec73a5af9869a7ULL;
00157 static const uint64_t static_value2 = 0xed35470b92764e75ULL;
00158 };
00159
00160 template<class ContainerAllocator>
00161 struct DataType< ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> > {
00162 static const char* value()
00163 {
00164 return "hrl_haptic_manipulation_in_clutter_msgs/MPC_FormattedData";
00165 }
00166
00167 static const char* value(const ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> &) { return value(); }
00168 };
00169
00170 template<class ContainerAllocator>
00171 struct Definition< ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> > {
00172 static const char* value()
00173 {
00174 return "Header header\n\
00175 \n\
00176 float64 alpha\n\
00177 float64 beta\n\
00178 float64 gamma\n\
00179 float64[] delta_x_d\n\
00180 float64[] J\n\
00181 float64[] desired_dist_increase\n\
00182 float64[] x_0\n\
00183 float64[] KP_t_KP\n\
00184 float64[] q_min\n\
00185 float64[] q_max\n\
00186 float64[] dist_min\n\
00187 float64[] dist_max\n\
00188 float64[] n_J_ci\n\
00189 float64[] n_J_ci_max\n\
00190 float64[] u_min\n\
00191 float64[] u_max\n\
00192 float64[] Q\n\
00193 \n\
00194 \n\
00195 \n\
00196 \n\
00197 \n\
00198 ================================================================================\n\
00199 MSG: std_msgs/Header\n\
00200 # Standard metadata for higher-level stamped data types.\n\
00201 # This is generally used to communicate timestamped data \n\
00202 # in a particular coordinate frame.\n\
00203 # \n\
00204 # sequence ID: consecutively increasing ID \n\
00205 uint32 seq\n\
00206 #Two-integer timestamp that is expressed as:\n\
00207 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00208 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00209 # time-handling sugar is provided by the client library\n\
00210 time stamp\n\
00211 #Frame this data is associated with\n\
00212 # 0: no frame\n\
00213 # 1: global frame\n\
00214 string frame_id\n\
00215 \n\
00216 ";
00217 }
00218
00219 static const char* value(const ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> &) { return value(); }
00220 };
00221
00222 template<class ContainerAllocator> struct HasHeader< ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> > : public TrueType {};
00223 template<class ContainerAllocator> struct HasHeader< const ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> > : public TrueType {};
00224 }
00225 }
00226
00227 namespace ros
00228 {
00229 namespace serialization
00230 {
00231
00232 template<class ContainerAllocator> struct Serializer< ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> >
00233 {
00234 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00235 {
00236 stream.next(m.header);
00237 stream.next(m.alpha);
00238 stream.next(m.beta);
00239 stream.next(m.gamma);
00240 stream.next(m.delta_x_d);
00241 stream.next(m.J);
00242 stream.next(m.desired_dist_increase);
00243 stream.next(m.x_0);
00244 stream.next(m.KP_t_KP);
00245 stream.next(m.q_min);
00246 stream.next(m.q_max);
00247 stream.next(m.dist_min);
00248 stream.next(m.dist_max);
00249 stream.next(m.n_J_ci);
00250 stream.next(m.n_J_ci_max);
00251 stream.next(m.u_min);
00252 stream.next(m.u_max);
00253 stream.next(m.Q);
00254 }
00255
00256 ROS_DECLARE_ALLINONE_SERIALIZER;
00257 };
00258 }
00259 }
00260
00261 namespace ros
00262 {
00263 namespace message_operations
00264 {
00265
00266 template<class ContainerAllocator>
00267 struct Printer< ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> >
00268 {
00269 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::hrl_haptic_manipulation_in_clutter_msgs::MPC_FormattedData_<ContainerAllocator> & v)
00270 {
00271 s << indent << "header: ";
00272 s << std::endl;
00273 Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + " ", v.header);
00274 s << indent << "alpha: ";
00275 Printer<double>::stream(s, indent + " ", v.alpha);
00276 s << indent << "beta: ";
00277 Printer<double>::stream(s, indent + " ", v.beta);
00278 s << indent << "gamma: ";
00279 Printer<double>::stream(s, indent + " ", v.gamma);
00280 s << indent << "delta_x_d[]" << std::endl;
00281 for (size_t i = 0; i < v.delta_x_d.size(); ++i)
00282 {
00283 s << indent << " delta_x_d[" << i << "]: ";
00284 Printer<double>::stream(s, indent + " ", v.delta_x_d[i]);
00285 }
00286 s << indent << "J[]" << std::endl;
00287 for (size_t i = 0; i < v.J.size(); ++i)
00288 {
00289 s << indent << " J[" << i << "]: ";
00290 Printer<double>::stream(s, indent + " ", v.J[i]);
00291 }
00292 s << indent << "desired_dist_increase[]" << std::endl;
00293 for (size_t i = 0; i < v.desired_dist_increase.size(); ++i)
00294 {
00295 s << indent << " desired_dist_increase[" << i << "]: ";
00296 Printer<double>::stream(s, indent + " ", v.desired_dist_increase[i]);
00297 }
00298 s << indent << "x_0[]" << std::endl;
00299 for (size_t i = 0; i < v.x_0.size(); ++i)
00300 {
00301 s << indent << " x_0[" << i << "]: ";
00302 Printer<double>::stream(s, indent + " ", v.x_0[i]);
00303 }
00304 s << indent << "KP_t_KP[]" << std::endl;
00305 for (size_t i = 0; i < v.KP_t_KP.size(); ++i)
00306 {
00307 s << indent << " KP_t_KP[" << i << "]: ";
00308 Printer<double>::stream(s, indent + " ", v.KP_t_KP[i]);
00309 }
00310 s << indent << "q_min[]" << std::endl;
00311 for (size_t i = 0; i < v.q_min.size(); ++i)
00312 {
00313 s << indent << " q_min[" << i << "]: ";
00314 Printer<double>::stream(s, indent + " ", v.q_min[i]);
00315 }
00316 s << indent << "q_max[]" << std::endl;
00317 for (size_t i = 0; i < v.q_max.size(); ++i)
00318 {
00319 s << indent << " q_max[" << i << "]: ";
00320 Printer<double>::stream(s, indent + " ", v.q_max[i]);
00321 }
00322 s << indent << "dist_min[]" << std::endl;
00323 for (size_t i = 0; i < v.dist_min.size(); ++i)
00324 {
00325 s << indent << " dist_min[" << i << "]: ";
00326 Printer<double>::stream(s, indent + " ", v.dist_min[i]);
00327 }
00328 s << indent << "dist_max[]" << std::endl;
00329 for (size_t i = 0; i < v.dist_max.size(); ++i)
00330 {
00331 s << indent << " dist_max[" << i << "]: ";
00332 Printer<double>::stream(s, indent + " ", v.dist_max[i]);
00333 }
00334 s << indent << "n_J_ci[]" << std::endl;
00335 for (size_t i = 0; i < v.n_J_ci.size(); ++i)
00336 {
00337 s << indent << " n_J_ci[" << i << "]: ";
00338 Printer<double>::stream(s, indent + " ", v.n_J_ci[i]);
00339 }
00340 s << indent << "n_J_ci_max[]" << std::endl;
00341 for (size_t i = 0; i < v.n_J_ci_max.size(); ++i)
00342 {
00343 s << indent << " n_J_ci_max[" << i << "]: ";
00344 Printer<double>::stream(s, indent + " ", v.n_J_ci_max[i]);
00345 }
00346 s << indent << "u_min[]" << std::endl;
00347 for (size_t i = 0; i < v.u_min.size(); ++i)
00348 {
00349 s << indent << " u_min[" << i << "]: ";
00350 Printer<double>::stream(s, indent + " ", v.u_min[i]);
00351 }
00352 s << indent << "u_max[]" << std::endl;
00353 for (size_t i = 0; i < v.u_max.size(); ++i)
00354 {
00355 s << indent << " u_max[" << i << "]: ";
00356 Printer<double>::stream(s, indent + " ", v.u_max[i]);
00357 }
00358 s << indent << "Q[]" << std::endl;
00359 for (size_t i = 0; i < v.Q.size(); ++i)
00360 {
00361 s << indent << " Q[" << i << "]: ";
00362 Printer<double>::stream(s, indent + " ", v.Q[i]);
00363 }
00364 }
00365 };
00366
00367
00368 }
00369 }
00370
00371 #endif // HRL_HAPTIC_MANIPULATION_IN_CLUTTER_MSGS_MESSAGE_MPC_FORMATTEDDATA_H
00372