00001
00002 #ifndef NASA_R2_COMMON_MSGS_MESSAGE_JOINTCOMMAND_H
00003 #define NASA_R2_COMMON_MSGS_MESSAGE_JOINTCOMMAND_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 nasa_r2_common_msgs
00020 {
00021 template <class ContainerAllocator>
00022 struct JointCommand_ {
00023 typedef JointCommand_<ContainerAllocator> Type;
00024
00025 JointCommand_()
00026 : header()
00027 , name()
00028 , desiredPosition()
00029 , desiredPositionVelocityLimit()
00030 , feedForwardTorque()
00031 , proportionalGain()
00032 , derivativeGain()
00033 , integralGain()
00034 , positionLoopTorqueLimit()
00035 , positionLoopWindupLimit()
00036 , torqueLoopVelocityLimit()
00037 {
00038 }
00039
00040 JointCommand_(const ContainerAllocator& _alloc)
00041 : header(_alloc)
00042 , name(_alloc)
00043 , desiredPosition(_alloc)
00044 , desiredPositionVelocityLimit(_alloc)
00045 , feedForwardTorque(_alloc)
00046 , proportionalGain(_alloc)
00047 , derivativeGain(_alloc)
00048 , integralGain(_alloc)
00049 , positionLoopTorqueLimit(_alloc)
00050 , positionLoopWindupLimit(_alloc)
00051 , torqueLoopVelocityLimit(_alloc)
00052 {
00053 }
00054
00055 typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
00056 ::std_msgs::Header_<ContainerAllocator> header;
00057
00058 typedef std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > _name_type;
00059 std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > name;
00060
00061 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _desiredPosition_type;
00062 std::vector<double, typename ContainerAllocator::template rebind<double>::other > desiredPosition;
00063
00064 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _desiredPositionVelocityLimit_type;
00065 std::vector<double, typename ContainerAllocator::template rebind<double>::other > desiredPositionVelocityLimit;
00066
00067 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _feedForwardTorque_type;
00068 std::vector<double, typename ContainerAllocator::template rebind<double>::other > feedForwardTorque;
00069
00070 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _proportionalGain_type;
00071 std::vector<double, typename ContainerAllocator::template rebind<double>::other > proportionalGain;
00072
00073 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _derivativeGain_type;
00074 std::vector<double, typename ContainerAllocator::template rebind<double>::other > derivativeGain;
00075
00076 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _integralGain_type;
00077 std::vector<double, typename ContainerAllocator::template rebind<double>::other > integralGain;
00078
00079 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _positionLoopTorqueLimit_type;
00080 std::vector<double, typename ContainerAllocator::template rebind<double>::other > positionLoopTorqueLimit;
00081
00082 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _positionLoopWindupLimit_type;
00083 std::vector<double, typename ContainerAllocator::template rebind<double>::other > positionLoopWindupLimit;
00084
00085 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _torqueLoopVelocityLimit_type;
00086 std::vector<double, typename ContainerAllocator::template rebind<double>::other > torqueLoopVelocityLimit;
00087
00088 static const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > FULL;
00089 static const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > GRAVITY;
00090 static const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > INERTIA;
00091 static const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > NONE;
00092
00093 typedef boost::shared_ptr< ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> > Ptr;
00094 typedef boost::shared_ptr< ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> const> ConstPtr;
00095 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00096 };
00097 typedef ::nasa_r2_common_msgs::JointCommand_<std::allocator<void> > JointCommand;
00098
00099 typedef boost::shared_ptr< ::nasa_r2_common_msgs::JointCommand> JointCommandPtr;
00100 typedef boost::shared_ptr< ::nasa_r2_common_msgs::JointCommand const> JointCommandConstPtr;
00101
00102 template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > JointCommand_<ContainerAllocator>::FULL = "full";
00103 template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > JointCommand_<ContainerAllocator>::GRAVITY = "gravity";
00104 template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > JointCommand_<ContainerAllocator>::INERTIA = "inertia";
00105 template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > JointCommand_<ContainerAllocator>::NONE = "none";
00106
00107 template<typename ContainerAllocator>
00108 std::ostream& operator<<(std::ostream& s, const ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> & v)
00109 {
00110 ros::message_operations::Printer< ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> >::stream(s, "", v);
00111 return s;}
00112
00113 }
00114
00115 namespace ros
00116 {
00117 namespace message_traits
00118 {
00119 template<class ContainerAllocator> struct IsMessage< ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> > : public TrueType {};
00120 template<class ContainerAllocator> struct IsMessage< ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> const> : public TrueType {};
00121 template<class ContainerAllocator>
00122 struct MD5Sum< ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> > {
00123 static const char* value()
00124 {
00125 return "c56e7e90d9ba9be819e9e813c2544894";
00126 }
00127
00128 static const char* value(const ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> &) { return value(); }
00129 static const uint64_t static_value1 = 0xc56e7e90d9ba9be8ULL;
00130 static const uint64_t static_value2 = 0x19e9e813c2544894ULL;
00131 };
00132
00133 template<class ContainerAllocator>
00134 struct DataType< ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> > {
00135 static const char* value()
00136 {
00137 return "nasa_r2_common_msgs/JointCommand";
00138 }
00139
00140 static const char* value(const ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> &) { return value(); }
00141 };
00142
00143 template<class ContainerAllocator>
00144 struct Definition< ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> > {
00145 static const char* value()
00146 {
00147 return "Header header\n\
00148 string[] name\n\
00149 float64[] desiredPosition\n\
00150 float64[] desiredPositionVelocityLimit\n\
00151 float64[] feedForwardTorque\n\
00152 float64[] proportionalGain\n\
00153 float64[] derivativeGain\n\
00154 float64[] integralGain\n\
00155 float64[] positionLoopTorqueLimit\n\
00156 float64[] positionLoopWindupLimit\n\
00157 float64[] torqueLoopVelocityLimit\n\
00158 \n\
00159 string FULL =full\n\
00160 string GRAVITY =gravity\n\
00161 string INERTIA =inertia\n\
00162 string NONE =none\n\
00163 \n\
00164 ================================================================================\n\
00165 MSG: std_msgs/Header\n\
00166 # Standard metadata for higher-level stamped data types.\n\
00167 # This is generally used to communicate timestamped data \n\
00168 # in a particular coordinate frame.\n\
00169 # \n\
00170 # sequence ID: consecutively increasing ID \n\
00171 uint32 seq\n\
00172 #Two-integer timestamp that is expressed as:\n\
00173 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00174 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00175 # time-handling sugar is provided by the client library\n\
00176 time stamp\n\
00177 #Frame this data is associated with\n\
00178 # 0: no frame\n\
00179 # 1: global frame\n\
00180 string frame_id\n\
00181 \n\
00182 ";
00183 }
00184
00185 static const char* value(const ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> &) { return value(); }
00186 };
00187
00188 template<class ContainerAllocator> struct HasHeader< ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> > : public TrueType {};
00189 template<class ContainerAllocator> struct HasHeader< const ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> > : public TrueType {};
00190 }
00191 }
00192
00193 namespace ros
00194 {
00195 namespace serialization
00196 {
00197
00198 template<class ContainerAllocator> struct Serializer< ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> >
00199 {
00200 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00201 {
00202 stream.next(m.header);
00203 stream.next(m.name);
00204 stream.next(m.desiredPosition);
00205 stream.next(m.desiredPositionVelocityLimit);
00206 stream.next(m.feedForwardTorque);
00207 stream.next(m.proportionalGain);
00208 stream.next(m.derivativeGain);
00209 stream.next(m.integralGain);
00210 stream.next(m.positionLoopTorqueLimit);
00211 stream.next(m.positionLoopWindupLimit);
00212 stream.next(m.torqueLoopVelocityLimit);
00213 }
00214
00215 ROS_DECLARE_ALLINONE_SERIALIZER;
00216 };
00217 }
00218 }
00219
00220 namespace ros
00221 {
00222 namespace message_operations
00223 {
00224
00225 template<class ContainerAllocator>
00226 struct Printer< ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> >
00227 {
00228 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::nasa_r2_common_msgs::JointCommand_<ContainerAllocator> & v)
00229 {
00230 s << indent << "header: ";
00231 s << std::endl;
00232 Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + " ", v.header);
00233 s << indent << "name[]" << std::endl;
00234 for (size_t i = 0; i < v.name.size(); ++i)
00235 {
00236 s << indent << " name[" << i << "]: ";
00237 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.name[i]);
00238 }
00239 s << indent << "desiredPosition[]" << std::endl;
00240 for (size_t i = 0; i < v.desiredPosition.size(); ++i)
00241 {
00242 s << indent << " desiredPosition[" << i << "]: ";
00243 Printer<double>::stream(s, indent + " ", v.desiredPosition[i]);
00244 }
00245 s << indent << "desiredPositionVelocityLimit[]" << std::endl;
00246 for (size_t i = 0; i < v.desiredPositionVelocityLimit.size(); ++i)
00247 {
00248 s << indent << " desiredPositionVelocityLimit[" << i << "]: ";
00249 Printer<double>::stream(s, indent + " ", v.desiredPositionVelocityLimit[i]);
00250 }
00251 s << indent << "feedForwardTorque[]" << std::endl;
00252 for (size_t i = 0; i < v.feedForwardTorque.size(); ++i)
00253 {
00254 s << indent << " feedForwardTorque[" << i << "]: ";
00255 Printer<double>::stream(s, indent + " ", v.feedForwardTorque[i]);
00256 }
00257 s << indent << "proportionalGain[]" << std::endl;
00258 for (size_t i = 0; i < v.proportionalGain.size(); ++i)
00259 {
00260 s << indent << " proportionalGain[" << i << "]: ";
00261 Printer<double>::stream(s, indent + " ", v.proportionalGain[i]);
00262 }
00263 s << indent << "derivativeGain[]" << std::endl;
00264 for (size_t i = 0; i < v.derivativeGain.size(); ++i)
00265 {
00266 s << indent << " derivativeGain[" << i << "]: ";
00267 Printer<double>::stream(s, indent + " ", v.derivativeGain[i]);
00268 }
00269 s << indent << "integralGain[]" << std::endl;
00270 for (size_t i = 0; i < v.integralGain.size(); ++i)
00271 {
00272 s << indent << " integralGain[" << i << "]: ";
00273 Printer<double>::stream(s, indent + " ", v.integralGain[i]);
00274 }
00275 s << indent << "positionLoopTorqueLimit[]" << std::endl;
00276 for (size_t i = 0; i < v.positionLoopTorqueLimit.size(); ++i)
00277 {
00278 s << indent << " positionLoopTorqueLimit[" << i << "]: ";
00279 Printer<double>::stream(s, indent + " ", v.positionLoopTorqueLimit[i]);
00280 }
00281 s << indent << "positionLoopWindupLimit[]" << std::endl;
00282 for (size_t i = 0; i < v.positionLoopWindupLimit.size(); ++i)
00283 {
00284 s << indent << " positionLoopWindupLimit[" << i << "]: ";
00285 Printer<double>::stream(s, indent + " ", v.positionLoopWindupLimit[i]);
00286 }
00287 s << indent << "torqueLoopVelocityLimit[]" << std::endl;
00288 for (size_t i = 0; i < v.torqueLoopVelocityLimit.size(); ++i)
00289 {
00290 s << indent << " torqueLoopVelocityLimit[" << i << "]: ";
00291 Printer<double>::stream(s, indent + " ", v.torqueLoopVelocityLimit[i]);
00292 }
00293 }
00294 };
00295
00296
00297 }
00298 }
00299
00300 #endif // NASA_R2_COMMON_MSGS_MESSAGE_JOINTCOMMAND_H
00301