$search
00001 /* Auto-generated by genmsg_cpp for file /home/rosbuild/hudson/workspace/doc-electric-arm_navigation/doc_stacks/2013-03-01_14-05-03.553953/arm_navigation/arm_navigation_msgs/msg/MoveArmAction.msg */ 00002 #ifndef ARM_NAVIGATION_MSGS_MESSAGE_MOVEARMACTION_H 00003 #define ARM_NAVIGATION_MSGS_MESSAGE_MOVEARMACTION_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 "arm_navigation_msgs/MoveArmActionGoal.h" 00018 #include "arm_navigation_msgs/MoveArmActionResult.h" 00019 #include "arm_navigation_msgs/MoveArmActionFeedback.h" 00020 00021 namespace arm_navigation_msgs 00022 { 00023 template <class ContainerAllocator> 00024 struct MoveArmAction_ { 00025 typedef MoveArmAction_<ContainerAllocator> Type; 00026 00027 MoveArmAction_() 00028 : action_goal() 00029 , action_result() 00030 , action_feedback() 00031 { 00032 } 00033 00034 MoveArmAction_(const ContainerAllocator& _alloc) 00035 : action_goal(_alloc) 00036 , action_result(_alloc) 00037 , action_feedback(_alloc) 00038 { 00039 } 00040 00041 typedef ::arm_navigation_msgs::MoveArmActionGoal_<ContainerAllocator> _action_goal_type; 00042 ::arm_navigation_msgs::MoveArmActionGoal_<ContainerAllocator> action_goal; 00043 00044 typedef ::arm_navigation_msgs::MoveArmActionResult_<ContainerAllocator> _action_result_type; 00045 ::arm_navigation_msgs::MoveArmActionResult_<ContainerAllocator> action_result; 00046 00047 typedef ::arm_navigation_msgs::MoveArmActionFeedback_<ContainerAllocator> _action_feedback_type; 00048 ::arm_navigation_msgs::MoveArmActionFeedback_<ContainerAllocator> action_feedback; 00049 00050 00051 private: 00052 static const char* __s_getDataType_() { return "arm_navigation_msgs/MoveArmAction"; } 00053 public: 00054 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); } 00055 00056 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); } 00057 00058 private: 00059 static const char* __s_getMD5Sum_() { return "6a991a3116cabdf4675f6b122822116b"; } 00060 public: 00061 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); } 00062 00063 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); } 00064 00065 private: 00066 static const char* __s_getMessageDefinition_() { return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 00067 \n\ 00068 MoveArmActionGoal action_goal\n\ 00069 MoveArmActionResult action_result\n\ 00070 MoveArmActionFeedback action_feedback\n\ 00071 \n\ 00072 ================================================================================\n\ 00073 MSG: arm_navigation_msgs/MoveArmActionGoal\n\ 00074 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 00075 \n\ 00076 Header header\n\ 00077 actionlib_msgs/GoalID goal_id\n\ 00078 MoveArmGoal goal\n\ 00079 \n\ 00080 ================================================================================\n\ 00081 MSG: std_msgs/Header\n\ 00082 # Standard metadata for higher-level stamped data types.\n\ 00083 # This is generally used to communicate timestamped data \n\ 00084 # in a particular coordinate frame.\n\ 00085 # \n\ 00086 # sequence ID: consecutively increasing ID \n\ 00087 uint32 seq\n\ 00088 #Two-integer timestamp that is expressed as:\n\ 00089 # * stamp.secs: seconds (stamp_secs) since epoch\n\ 00090 # * stamp.nsecs: nanoseconds since stamp_secs\n\ 00091 # time-handling sugar is provided by the client library\n\ 00092 time stamp\n\ 00093 #Frame this data is associated with\n\ 00094 # 0: no frame\n\ 00095 # 1: global frame\n\ 00096 string frame_id\n\ 00097 \n\ 00098 ================================================================================\n\ 00099 MSG: actionlib_msgs/GoalID\n\ 00100 # The stamp should store the time at which this goal was requested.\n\ 00101 # It is used by an action server when it tries to preempt all\n\ 00102 # goals that were requested before a certain time\n\ 00103 time stamp\n\ 00104 \n\ 00105 # The id provides a way to associate feedback and\n\ 00106 # result message with specific goal requests. The id\n\ 00107 # specified must be unique.\n\ 00108 string id\n\ 00109 \n\ 00110 \n\ 00111 ================================================================================\n\ 00112 MSG: arm_navigation_msgs/MoveArmGoal\n\ 00113 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 00114 # Service name to call for getting a motion plan\n\ 00115 # Move arm will call a service on this service name \n\ 00116 # using the MotionPlanRequest specified here\n\ 00117 string planner_service_name\n\ 00118 \n\ 00119 # A planning scene diff\n\ 00120 PlanningScene planning_scene_diff\n\ 00121 \n\ 00122 # A motion planning request\n\ 00123 MotionPlanRequest motion_plan_request\n\ 00124 \n\ 00125 # OPTIONAL: Diff uses ordered collision operations in addition to allowed_collision_matrix\n\ 00126 arm_navigation_msgs/OrderedCollisionOperations operations\n\ 00127 \n\ 00128 # OPTIONAL flag\n\ 00129 # Setting this flag to true will allow move_arm to accept plans that do not go all the way to the goal\n\ 00130 bool accept_partial_plans\n\ 00131 \n\ 00132 # OPTIONAL flag\n\ 00133 # Setting this flag to true will allow move_arm to accept invalid goals\n\ 00134 # This is useful if you are using a planner like CHOMP along with a noisy rapidly changing collision map\n\ 00135 # and you would like to plan to a goal near an object.\n\ 00136 bool accept_invalid_goals\n\ 00137 \n\ 00138 # OPTIONAL flag\n\ 00139 # Setting this flag to true will disable the call to IK for a pose goal\n\ 00140 bool disable_ik\n\ 00141 \n\ 00142 # OPTIONAL flag\n\ 00143 # Setting this flag to true will disable collision monitoring during execution of a trajectory\n\ 00144 bool disable_collision_monitoring\n\ 00145 \n\ 00146 ================================================================================\n\ 00147 MSG: arm_navigation_msgs/PlanningScene\n\ 00148 #full robot state\n\ 00149 arm_navigation_msgs/RobotState robot_state\n\ 00150 \n\ 00151 #additional frames for duplicating tf\n\ 00152 geometry_msgs/TransformStamped[] fixed_frame_transforms\n\ 00153 \n\ 00154 #full allowed collision matrix\n\ 00155 AllowedCollisionMatrix allowed_collision_matrix\n\ 00156 \n\ 00157 #allowed contacts\n\ 00158 arm_navigation_msgs/AllowedContactSpecification[] allowed_contacts\n\ 00159 \n\ 00160 #all link paddings\n\ 00161 arm_navigation_msgs/LinkPadding[] link_padding\n\ 00162 \n\ 00163 #collision objects\n\ 00164 arm_navigation_msgs/CollisionObject[] collision_objects\n\ 00165 arm_navigation_msgs/AttachedCollisionObject[] attached_collision_objects\n\ 00166 \n\ 00167 #the collision map\n\ 00168 arm_navigation_msgs/CollisionMap collision_map\n\ 00169 \n\ 00170 ================================================================================\n\ 00171 MSG: arm_navigation_msgs/RobotState\n\ 00172 # This message contains information about the robot state, i.e. the positions of its joints and links\n\ 00173 sensor_msgs/JointState joint_state\n\ 00174 arm_navigation_msgs/MultiDOFJointState multi_dof_joint_state\n\ 00175 \n\ 00176 ================================================================================\n\ 00177 MSG: sensor_msgs/JointState\n\ 00178 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\ 00179 #\n\ 00180 # The state of each joint (revolute or prismatic) is defined by:\n\ 00181 # * the position of the joint (rad or m),\n\ 00182 # * the velocity of the joint (rad/s or m/s) and \n\ 00183 # * the effort that is applied in the joint (Nm or N).\n\ 00184 #\n\ 00185 # Each joint is uniquely identified by its name\n\ 00186 # The header specifies the time at which the joint states were recorded. All the joint states\n\ 00187 # in one message have to be recorded at the same time.\n\ 00188 #\n\ 00189 # This message consists of a multiple arrays, one for each part of the joint state. \n\ 00190 # The goal is to make each of the fields optional. When e.g. your joints have no\n\ 00191 # effort associated with them, you can leave the effort array empty. \n\ 00192 #\n\ 00193 # All arrays in this message should have the same size, or be empty.\n\ 00194 # This is the only way to uniquely associate the joint name with the correct\n\ 00195 # states.\n\ 00196 \n\ 00197 \n\ 00198 Header header\n\ 00199 \n\ 00200 string[] name\n\ 00201 float64[] position\n\ 00202 float64[] velocity\n\ 00203 float64[] effort\n\ 00204 \n\ 00205 ================================================================================\n\ 00206 MSG: arm_navigation_msgs/MultiDOFJointState\n\ 00207 #A representation of a multi-dof joint state\n\ 00208 time stamp\n\ 00209 string[] joint_names\n\ 00210 string[] frame_ids\n\ 00211 string[] child_frame_ids\n\ 00212 geometry_msgs/Pose[] poses\n\ 00213 \n\ 00214 ================================================================================\n\ 00215 MSG: geometry_msgs/Pose\n\ 00216 # A representation of pose in free space, composed of postion and orientation. \n\ 00217 Point position\n\ 00218 Quaternion orientation\n\ 00219 \n\ 00220 ================================================================================\n\ 00221 MSG: geometry_msgs/Point\n\ 00222 # This contains the position of a point in free space\n\ 00223 float64 x\n\ 00224 float64 y\n\ 00225 float64 z\n\ 00226 \n\ 00227 ================================================================================\n\ 00228 MSG: geometry_msgs/Quaternion\n\ 00229 # This represents an orientation in free space in quaternion form.\n\ 00230 \n\ 00231 float64 x\n\ 00232 float64 y\n\ 00233 float64 z\n\ 00234 float64 w\n\ 00235 \n\ 00236 ================================================================================\n\ 00237 MSG: geometry_msgs/TransformStamped\n\ 00238 # This expresses a transform from coordinate frame header.frame_id\n\ 00239 # to the coordinate frame child_frame_id\n\ 00240 #\n\ 00241 # This message is mostly used by the \n\ 00242 # <a href=\"http://www.ros.org/wiki/tf\">tf</a> package. \n\ 00243 # See it's documentation for more information.\n\ 00244 \n\ 00245 Header header\n\ 00246 string child_frame_id # the frame id of the child frame\n\ 00247 Transform transform\n\ 00248 \n\ 00249 ================================================================================\n\ 00250 MSG: geometry_msgs/Transform\n\ 00251 # This represents the transform between two coordinate frames in free space.\n\ 00252 \n\ 00253 Vector3 translation\n\ 00254 Quaternion rotation\n\ 00255 \n\ 00256 ================================================================================\n\ 00257 MSG: geometry_msgs/Vector3\n\ 00258 # This represents a vector in free space. \n\ 00259 \n\ 00260 float64 x\n\ 00261 float64 y\n\ 00262 float64 z\n\ 00263 ================================================================================\n\ 00264 MSG: arm_navigation_msgs/AllowedCollisionMatrix\n\ 00265 # the list of link names in the matrix\n\ 00266 string[] link_names\n\ 00267 \n\ 00268 # the individual entries in the allowed collision matrix\n\ 00269 # symmetric, with same order as link_names\n\ 00270 AllowedCollisionEntry[] entries\n\ 00271 \n\ 00272 ================================================================================\n\ 00273 MSG: arm_navigation_msgs/AllowedCollisionEntry\n\ 00274 # whether or not collision checking is enabled\n\ 00275 bool[] enabled\n\ 00276 \n\ 00277 ================================================================================\n\ 00278 MSG: arm_navigation_msgs/AllowedContactSpecification\n\ 00279 # The names of the regions\n\ 00280 string name\n\ 00281 \n\ 00282 # The shape of the region in the environment\n\ 00283 arm_navigation_msgs/Shape shape\n\ 00284 \n\ 00285 # The pose of the space defining the region\n\ 00286 geometry_msgs/PoseStamped pose_stamped\n\ 00287 \n\ 00288 # The set of links that will be allowed to have penetration contact within this region\n\ 00289 string[] link_names\n\ 00290 \n\ 00291 # The maximum penetration depth allowed for every link\n\ 00292 float64 penetration_depth\n\ 00293 \n\ 00294 ================================================================================\n\ 00295 MSG: arm_navigation_msgs/Shape\n\ 00296 byte SPHERE=0\n\ 00297 byte BOX=1\n\ 00298 byte CYLINDER=2\n\ 00299 byte MESH=3\n\ 00300 \n\ 00301 byte type\n\ 00302 \n\ 00303 \n\ 00304 #### define sphere, box, cylinder ####\n\ 00305 # the origin of each shape is considered at the shape's center\n\ 00306 \n\ 00307 # for sphere\n\ 00308 # radius := dimensions[0]\n\ 00309 \n\ 00310 # for cylinder\n\ 00311 # radius := dimensions[0]\n\ 00312 # length := dimensions[1]\n\ 00313 # the length is along the Z axis\n\ 00314 \n\ 00315 # for box\n\ 00316 # size_x := dimensions[0]\n\ 00317 # size_y := dimensions[1]\n\ 00318 # size_z := dimensions[2]\n\ 00319 float64[] dimensions\n\ 00320 \n\ 00321 \n\ 00322 #### define mesh ####\n\ 00323 \n\ 00324 # list of triangles; triangle k is defined by tre vertices located\n\ 00325 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\ 00326 int32[] triangles\n\ 00327 geometry_msgs/Point[] vertices\n\ 00328 \n\ 00329 ================================================================================\n\ 00330 MSG: geometry_msgs/PoseStamped\n\ 00331 # A Pose with reference coordinate frame and timestamp\n\ 00332 Header header\n\ 00333 Pose pose\n\ 00334 \n\ 00335 ================================================================================\n\ 00336 MSG: arm_navigation_msgs/LinkPadding\n\ 00337 #name for the link\n\ 00338 string link_name\n\ 00339 \n\ 00340 # padding to apply to the link\n\ 00341 float64 padding\n\ 00342 \n\ 00343 ================================================================================\n\ 00344 MSG: arm_navigation_msgs/CollisionObject\n\ 00345 # a header, used for interpreting the poses\n\ 00346 Header header\n\ 00347 \n\ 00348 # the id of the object\n\ 00349 string id\n\ 00350 \n\ 00351 # The padding used for filtering points near the object.\n\ 00352 # This does not affect collision checking for the object. \n\ 00353 # Set to negative to get zero padding.\n\ 00354 float32 padding\n\ 00355 \n\ 00356 #This contains what is to be done with the object\n\ 00357 CollisionObjectOperation operation\n\ 00358 \n\ 00359 #the shapes associated with the object\n\ 00360 arm_navigation_msgs/Shape[] shapes\n\ 00361 \n\ 00362 #the poses associated with the shapes - will be transformed using the header\n\ 00363 geometry_msgs/Pose[] poses\n\ 00364 \n\ 00365 ================================================================================\n\ 00366 MSG: arm_navigation_msgs/CollisionObjectOperation\n\ 00367 #Puts the object into the environment\n\ 00368 #or updates the object if already added\n\ 00369 byte ADD=0\n\ 00370 \n\ 00371 #Removes the object from the environment entirely\n\ 00372 byte REMOVE=1\n\ 00373 \n\ 00374 #Only valid within the context of a CollisionAttachedObject message\n\ 00375 #Will be ignored if sent with an CollisionObject message\n\ 00376 #Takes an attached object, detaches from the attached link\n\ 00377 #But adds back in as regular object\n\ 00378 byte DETACH_AND_ADD_AS_OBJECT=2\n\ 00379 \n\ 00380 #Only valid within the context of a CollisionAttachedObject message\n\ 00381 #Will be ignored if sent with an CollisionObject message\n\ 00382 #Takes current object in the environment and removes it as\n\ 00383 #a regular object\n\ 00384 byte ATTACH_AND_REMOVE_AS_OBJECT=3\n\ 00385 \n\ 00386 # Byte code for operation\n\ 00387 byte operation\n\ 00388 \n\ 00389 ================================================================================\n\ 00390 MSG: arm_navigation_msgs/AttachedCollisionObject\n\ 00391 # The CollisionObject will be attached with a fixed joint to this link\n\ 00392 # If link name is set to REMOVE_ALL_ATTACHED_OBJECTS and object.operation \n\ 00393 # is set to REMOVE will remove all attached bodies attached to any object\n\ 00394 string link_name\n\ 00395 \n\ 00396 #Reserved for indicating that all attached objects should be removed\n\ 00397 string REMOVE_ALL_ATTACHED_OBJECTS = \"all\"\n\ 00398 \n\ 00399 #This contains the actual shapes and poses for the CollisionObject\n\ 00400 #to be attached to the link\n\ 00401 #If action is remove and no object.id is set, all objects\n\ 00402 #attached to the link indicated by link_name will be removed\n\ 00403 CollisionObject object\n\ 00404 \n\ 00405 # The set of links that the attached objects are allowed to touch\n\ 00406 # by default - the link_name is included by default\n\ 00407 string[] touch_links\n\ 00408 \n\ 00409 ================================================================================\n\ 00410 MSG: arm_navigation_msgs/CollisionMap\n\ 00411 #header for interpreting box positions\n\ 00412 Header header\n\ 00413 \n\ 00414 #boxes for use in collision testing\n\ 00415 OrientedBoundingBox[] boxes\n\ 00416 \n\ 00417 ================================================================================\n\ 00418 MSG: arm_navigation_msgs/OrientedBoundingBox\n\ 00419 #the center of the box\n\ 00420 geometry_msgs/Point32 center\n\ 00421 \n\ 00422 #the extents of the box, assuming the center is at the point\n\ 00423 geometry_msgs/Point32 extents\n\ 00424 \n\ 00425 #the axis of the box\n\ 00426 geometry_msgs/Point32 axis\n\ 00427 \n\ 00428 #the angle of rotation around the axis\n\ 00429 float32 angle\n\ 00430 \n\ 00431 ================================================================================\n\ 00432 MSG: geometry_msgs/Point32\n\ 00433 # This contains the position of a point in free space(with 32 bits of precision).\n\ 00434 # It is recommeded to use Point wherever possible instead of Point32. \n\ 00435 # \n\ 00436 # This recommendation is to promote interoperability. \n\ 00437 #\n\ 00438 # This message is designed to take up less space when sending\n\ 00439 # lots of points at once, as in the case of a PointCloud. \n\ 00440 \n\ 00441 float32 x\n\ 00442 float32 y\n\ 00443 float32 z\n\ 00444 ================================================================================\n\ 00445 MSG: arm_navigation_msgs/MotionPlanRequest\n\ 00446 # This service contains the definition for a request to the motion\n\ 00447 # planner and the output it provides\n\ 00448 \n\ 00449 # Parameters for the workspace that the planner should work inside\n\ 00450 arm_navigation_msgs/WorkspaceParameters workspace_parameters\n\ 00451 \n\ 00452 # Starting state updates. If certain joints should be considered\n\ 00453 # at positions other than the current ones, these positions should\n\ 00454 # be set here\n\ 00455 arm_navigation_msgs/RobotState start_state\n\ 00456 \n\ 00457 # The goal state for the model to plan for. The goal is achieved\n\ 00458 # if all constraints are satisfied\n\ 00459 arm_navigation_msgs/Constraints goal_constraints\n\ 00460 \n\ 00461 # No state at any point along the path in the produced motion plan will violate these constraints\n\ 00462 arm_navigation_msgs/Constraints path_constraints\n\ 00463 \n\ 00464 # The name of the motion planner to use. If no name is specified,\n\ 00465 # a default motion planner will be used\n\ 00466 string planner_id\n\ 00467 \n\ 00468 # The name of the group of joints on which this planner is operating\n\ 00469 string group_name\n\ 00470 \n\ 00471 # The number of times this plan is to be computed. Shortest solution\n\ 00472 # will be reported.\n\ 00473 int32 num_planning_attempts\n\ 00474 \n\ 00475 # The maximum amount of time the motion planner is allowed to plan for\n\ 00476 duration allowed_planning_time\n\ 00477 \n\ 00478 # An expected path duration (in seconds) along with an expected discretization of the path allows the planner to determine the discretization of the trajectory that it returns\n\ 00479 duration expected_path_duration\n\ 00480 duration expected_path_dt\n\ 00481 \n\ 00482 ================================================================================\n\ 00483 MSG: arm_navigation_msgs/WorkspaceParameters\n\ 00484 # This message contains a set of parameters useful in\n\ 00485 # setting up the workspace for planning\n\ 00486 arm_navigation_msgs/Shape workspace_region_shape\n\ 00487 geometry_msgs/PoseStamped workspace_region_pose\n\ 00488 \n\ 00489 \n\ 00490 ================================================================================\n\ 00491 MSG: arm_navigation_msgs/Constraints\n\ 00492 # This message contains a list of motion planning constraints.\n\ 00493 \n\ 00494 arm_navigation_msgs/JointConstraint[] joint_constraints\n\ 00495 arm_navigation_msgs/PositionConstraint[] position_constraints\n\ 00496 arm_navigation_msgs/OrientationConstraint[] orientation_constraints\n\ 00497 arm_navigation_msgs/VisibilityConstraint[] visibility_constraints\n\ 00498 \n\ 00499 ================================================================================\n\ 00500 MSG: arm_navigation_msgs/JointConstraint\n\ 00501 # Constrain the position of a joint to be within a certain bound\n\ 00502 string joint_name\n\ 00503 \n\ 00504 # the bound to be achieved is [position - tolerance_below, position + tolerance_above]\n\ 00505 float64 position\n\ 00506 float64 tolerance_above\n\ 00507 float64 tolerance_below\n\ 00508 \n\ 00509 # A weighting factor for this constraint\n\ 00510 float64 weight\n\ 00511 ================================================================================\n\ 00512 MSG: arm_navigation_msgs/PositionConstraint\n\ 00513 # This message contains the definition of a position constraint.\n\ 00514 Header header\n\ 00515 \n\ 00516 # The robot link this constraint refers to\n\ 00517 string link_name\n\ 00518 \n\ 00519 # The offset (in the link frame) for the target point on the link we are planning for\n\ 00520 geometry_msgs/Point target_point_offset\n\ 00521 \n\ 00522 # The nominal/target position for the point we are planning for\n\ 00523 geometry_msgs/Point position\n\ 00524 \n\ 00525 # The shape of the bounded region that constrains the position of the end-effector\n\ 00526 # This region is always centered at the position defined above\n\ 00527 arm_navigation_msgs/Shape constraint_region_shape\n\ 00528 \n\ 00529 # The orientation of the bounded region that constrains the position of the end-effector. \n\ 00530 # This allows the specification of non-axis aligned constraints\n\ 00531 geometry_msgs/Quaternion constraint_region_orientation\n\ 00532 \n\ 00533 # Constraint weighting factor - a weight for this constraint\n\ 00534 float64 weight\n\ 00535 \n\ 00536 ================================================================================\n\ 00537 MSG: arm_navigation_msgs/OrientationConstraint\n\ 00538 # This message contains the definition of an orientation constraint.\n\ 00539 Header header\n\ 00540 \n\ 00541 # The robot link this constraint refers to\n\ 00542 string link_name\n\ 00543 \n\ 00544 # The type of the constraint\n\ 00545 int32 type\n\ 00546 int32 LINK_FRAME=0\n\ 00547 int32 HEADER_FRAME=1\n\ 00548 \n\ 00549 # The desired orientation of the robot link specified as a quaternion\n\ 00550 geometry_msgs/Quaternion orientation\n\ 00551 \n\ 00552 # optional RPY error tolerances specified if \n\ 00553 float64 absolute_roll_tolerance\n\ 00554 float64 absolute_pitch_tolerance\n\ 00555 float64 absolute_yaw_tolerance\n\ 00556 \n\ 00557 # Constraint weighting factor - a weight for this constraint\n\ 00558 float64 weight\n\ 00559 \n\ 00560 ================================================================================\n\ 00561 MSG: arm_navigation_msgs/VisibilityConstraint\n\ 00562 # This message contains the definition of a visibility constraint.\n\ 00563 Header header\n\ 00564 \n\ 00565 # The point stamped target that needs to be kept within view of the sensor\n\ 00566 geometry_msgs/PointStamped target\n\ 00567 \n\ 00568 # The local pose of the frame in which visibility is to be maintained\n\ 00569 # The frame id should represent the robot link to which the sensor is attached\n\ 00570 # The visual axis of the sensor is assumed to be along the X axis of this frame\n\ 00571 geometry_msgs/PoseStamped sensor_pose\n\ 00572 \n\ 00573 # The deviation (in radians) that will be tolerated\n\ 00574 # Constraint error will be measured as the solid angle between the \n\ 00575 # X axis of the frame defined above and the vector between the origin \n\ 00576 # of the frame defined above and the target location\n\ 00577 float64 absolute_tolerance\n\ 00578 \n\ 00579 \n\ 00580 ================================================================================\n\ 00581 MSG: geometry_msgs/PointStamped\n\ 00582 # This represents a Point with reference coordinate frame and timestamp\n\ 00583 Header header\n\ 00584 Point point\n\ 00585 \n\ 00586 ================================================================================\n\ 00587 MSG: arm_navigation_msgs/OrderedCollisionOperations\n\ 00588 # A set of collision operations that will be performed in the order they are specified\n\ 00589 CollisionOperation[] collision_operations\n\ 00590 ================================================================================\n\ 00591 MSG: arm_navigation_msgs/CollisionOperation\n\ 00592 # A definition of a collision operation\n\ 00593 # E.g. (\"gripper\",COLLISION_SET_ALL,ENABLE) will enable collisions \n\ 00594 # between the gripper and all objects in the collision space\n\ 00595 \n\ 00596 string object1\n\ 00597 string object2\n\ 00598 string COLLISION_SET_ALL=\"all\"\n\ 00599 string COLLISION_SET_OBJECTS=\"objects\"\n\ 00600 string COLLISION_SET_ATTACHED_OBJECTS=\"attached\"\n\ 00601 \n\ 00602 # The penetration distance to which collisions are allowed. This is 0.0 by default.\n\ 00603 float64 penetration_distance\n\ 00604 \n\ 00605 # Flag that determines whether collisions will be enabled or disabled for the pair of objects specified above\n\ 00606 int32 operation\n\ 00607 int32 DISABLE=0\n\ 00608 int32 ENABLE=1\n\ 00609 \n\ 00610 ================================================================================\n\ 00611 MSG: arm_navigation_msgs/MoveArmActionResult\n\ 00612 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 00613 \n\ 00614 Header header\n\ 00615 actionlib_msgs/GoalStatus status\n\ 00616 MoveArmResult result\n\ 00617 \n\ 00618 ================================================================================\n\ 00619 MSG: actionlib_msgs/GoalStatus\n\ 00620 GoalID goal_id\n\ 00621 uint8 status\n\ 00622 uint8 PENDING = 0 # The goal has yet to be processed by the action server\n\ 00623 uint8 ACTIVE = 1 # The goal is currently being processed by the action server\n\ 00624 uint8 PREEMPTED = 2 # The goal received a cancel request after it started executing\n\ 00625 # and has since completed its execution (Terminal State)\n\ 00626 uint8 SUCCEEDED = 3 # The goal was achieved successfully by the action server (Terminal State)\n\ 00627 uint8 ABORTED = 4 # The goal was aborted during execution by the action server due\n\ 00628 # to some failure (Terminal State)\n\ 00629 uint8 REJECTED = 5 # The goal was rejected by the action server without being processed,\n\ 00630 # because the goal was unattainable or invalid (Terminal State)\n\ 00631 uint8 PREEMPTING = 6 # The goal received a cancel request after it started executing\n\ 00632 # and has not yet completed execution\n\ 00633 uint8 RECALLING = 7 # The goal received a cancel request before it started executing,\n\ 00634 # but the action server has not yet confirmed that the goal is canceled\n\ 00635 uint8 RECALLED = 8 # The goal received a cancel request before it started executing\n\ 00636 # and was successfully cancelled (Terminal State)\n\ 00637 uint8 LOST = 9 # An action client can determine that a goal is LOST. This should not be\n\ 00638 # sent over the wire by an action server\n\ 00639 \n\ 00640 #Allow for the user to associate a string with GoalStatus for debugging\n\ 00641 string text\n\ 00642 \n\ 00643 \n\ 00644 ================================================================================\n\ 00645 MSG: arm_navigation_msgs/MoveArmResult\n\ 00646 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 00647 # An error code reflecting what went wrong\n\ 00648 ArmNavigationErrorCodes error_code\n\ 00649 \n\ 00650 ContactInformation[] contacts\n\ 00651 \n\ 00652 ================================================================================\n\ 00653 MSG: arm_navigation_msgs/ArmNavigationErrorCodes\n\ 00654 int32 val\n\ 00655 \n\ 00656 # overall behavior\n\ 00657 int32 PLANNING_FAILED=-1\n\ 00658 int32 SUCCESS=1\n\ 00659 int32 TIMED_OUT=-2\n\ 00660 \n\ 00661 # start state errors\n\ 00662 int32 START_STATE_IN_COLLISION=-3\n\ 00663 int32 START_STATE_VIOLATES_PATH_CONSTRAINTS=-4\n\ 00664 \n\ 00665 # goal errors\n\ 00666 int32 GOAL_IN_COLLISION=-5\n\ 00667 int32 GOAL_VIOLATES_PATH_CONSTRAINTS=-6\n\ 00668 \n\ 00669 # robot state\n\ 00670 int32 INVALID_ROBOT_STATE=-7\n\ 00671 int32 INCOMPLETE_ROBOT_STATE=-8\n\ 00672 \n\ 00673 # planning request errors\n\ 00674 int32 INVALID_PLANNER_ID=-9\n\ 00675 int32 INVALID_NUM_PLANNING_ATTEMPTS=-10\n\ 00676 int32 INVALID_ALLOWED_PLANNING_TIME=-11\n\ 00677 int32 INVALID_GROUP_NAME=-12\n\ 00678 int32 INVALID_GOAL_JOINT_CONSTRAINTS=-13\n\ 00679 int32 INVALID_GOAL_POSITION_CONSTRAINTS=-14\n\ 00680 int32 INVALID_GOAL_ORIENTATION_CONSTRAINTS=-15\n\ 00681 int32 INVALID_PATH_JOINT_CONSTRAINTS=-16\n\ 00682 int32 INVALID_PATH_POSITION_CONSTRAINTS=-17\n\ 00683 int32 INVALID_PATH_ORIENTATION_CONSTRAINTS=-18\n\ 00684 \n\ 00685 # state/trajectory monitor errors\n\ 00686 int32 INVALID_TRAJECTORY=-19\n\ 00687 int32 INVALID_INDEX=-20\n\ 00688 int32 JOINT_LIMITS_VIOLATED=-21\n\ 00689 int32 PATH_CONSTRAINTS_VIOLATED=-22\n\ 00690 int32 COLLISION_CONSTRAINTS_VIOLATED=-23\n\ 00691 int32 GOAL_CONSTRAINTS_VIOLATED=-24\n\ 00692 int32 JOINTS_NOT_MOVING=-25\n\ 00693 int32 TRAJECTORY_CONTROLLER_FAILED=-26\n\ 00694 \n\ 00695 # system errors\n\ 00696 int32 FRAME_TRANSFORM_FAILURE=-27\n\ 00697 int32 COLLISION_CHECKING_UNAVAILABLE=-28\n\ 00698 int32 ROBOT_STATE_STALE=-29\n\ 00699 int32 SENSOR_INFO_STALE=-30\n\ 00700 \n\ 00701 # kinematics errors\n\ 00702 int32 NO_IK_SOLUTION=-31\n\ 00703 int32 INVALID_LINK_NAME=-32\n\ 00704 int32 IK_LINK_IN_COLLISION=-33\n\ 00705 int32 NO_FK_SOLUTION=-34\n\ 00706 int32 KINEMATICS_STATE_IN_COLLISION=-35\n\ 00707 \n\ 00708 # general errors\n\ 00709 int32 INVALID_TIMEOUT=-36\n\ 00710 \n\ 00711 \n\ 00712 ================================================================================\n\ 00713 MSG: arm_navigation_msgs/ContactInformation\n\ 00714 # Standard ROS header contains information \n\ 00715 # about the frame in which this \n\ 00716 # contact is specified\n\ 00717 Header header\n\ 00718 \n\ 00719 # Position of the contact point\n\ 00720 geometry_msgs/Point position\n\ 00721 \n\ 00722 # Normal corresponding to the contact point\n\ 00723 geometry_msgs/Vector3 normal \n\ 00724 \n\ 00725 # Depth of contact point\n\ 00726 float64 depth\n\ 00727 \n\ 00728 # Name of the first body that is in contact\n\ 00729 # This could be a link or a namespace that represents a body\n\ 00730 string contact_body_1\n\ 00731 string attached_body_1\n\ 00732 uint32 body_type_1\n\ 00733 \n\ 00734 # Name of the second body that is in contact\n\ 00735 # This could be a link or a namespace that represents a body\n\ 00736 string contact_body_2\n\ 00737 string attached_body_2\n\ 00738 uint32 body_type_2\n\ 00739 \n\ 00740 uint32 ROBOT_LINK=0\n\ 00741 uint32 OBJECT=1\n\ 00742 uint32 ATTACHED_BODY=2\n\ 00743 ================================================================================\n\ 00744 MSG: arm_navigation_msgs/MoveArmActionFeedback\n\ 00745 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 00746 \n\ 00747 Header header\n\ 00748 actionlib_msgs/GoalStatus status\n\ 00749 MoveArmFeedback feedback\n\ 00750 \n\ 00751 ================================================================================\n\ 00752 MSG: arm_navigation_msgs/MoveArmFeedback\n\ 00753 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 00754 # The internal state that the move arm action currently is in\n\ 00755 string state\n\ 00756 \n\ 00757 # Time to completion - this is a combination of requested planning time and trajectory completion time\n\ 00758 duration time_to_completion\n\ 00759 \n\ 00760 \n\ 00761 "; } 00762 public: 00763 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); } 00764 00765 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); } 00766 00767 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const 00768 { 00769 ros::serialization::OStream stream(write_ptr, 1000000000); 00770 ros::serialization::serialize(stream, action_goal); 00771 ros::serialization::serialize(stream, action_result); 00772 ros::serialization::serialize(stream, action_feedback); 00773 return stream.getData(); 00774 } 00775 00776 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr) 00777 { 00778 ros::serialization::IStream stream(read_ptr, 1000000000); 00779 ros::serialization::deserialize(stream, action_goal); 00780 ros::serialization::deserialize(stream, action_result); 00781 ros::serialization::deserialize(stream, action_feedback); 00782 return stream.getData(); 00783 } 00784 00785 ROS_DEPRECATED virtual uint32_t serializationLength() const 00786 { 00787 uint32_t size = 0; 00788 size += ros::serialization::serializationLength(action_goal); 00789 size += ros::serialization::serializationLength(action_result); 00790 size += ros::serialization::serializationLength(action_feedback); 00791 return size; 00792 } 00793 00794 typedef boost::shared_ptr< ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> > Ptr; 00795 typedef boost::shared_ptr< ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> const> ConstPtr; 00796 boost::shared_ptr<std::map<std::string, std::string> > __connection_header; 00797 }; // struct MoveArmAction 00798 typedef ::arm_navigation_msgs::MoveArmAction_<std::allocator<void> > MoveArmAction; 00799 00800 typedef boost::shared_ptr< ::arm_navigation_msgs::MoveArmAction> MoveArmActionPtr; 00801 typedef boost::shared_ptr< ::arm_navigation_msgs::MoveArmAction const> MoveArmActionConstPtr; 00802 00803 00804 template<typename ContainerAllocator> 00805 std::ostream& operator<<(std::ostream& s, const ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> & v) 00806 { 00807 ros::message_operations::Printer< ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> >::stream(s, "", v); 00808 return s;} 00809 00810 } // namespace arm_navigation_msgs 00811 00812 namespace ros 00813 { 00814 namespace message_traits 00815 { 00816 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> > : public TrueType {}; 00817 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> const> : public TrueType {}; 00818 template<class ContainerAllocator> 00819 struct MD5Sum< ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> > { 00820 static const char* value() 00821 { 00822 return "6a991a3116cabdf4675f6b122822116b"; 00823 } 00824 00825 static const char* value(const ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> &) { return value(); } 00826 static const uint64_t static_value1 = 0x6a991a3116cabdf4ULL; 00827 static const uint64_t static_value2 = 0x675f6b122822116bULL; 00828 }; 00829 00830 template<class ContainerAllocator> 00831 struct DataType< ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> > { 00832 static const char* value() 00833 { 00834 return "arm_navigation_msgs/MoveArmAction"; 00835 } 00836 00837 static const char* value(const ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> &) { return value(); } 00838 }; 00839 00840 template<class ContainerAllocator> 00841 struct Definition< ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> > { 00842 static const char* value() 00843 { 00844 return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 00845 \n\ 00846 MoveArmActionGoal action_goal\n\ 00847 MoveArmActionResult action_result\n\ 00848 MoveArmActionFeedback action_feedback\n\ 00849 \n\ 00850 ================================================================================\n\ 00851 MSG: arm_navigation_msgs/MoveArmActionGoal\n\ 00852 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 00853 \n\ 00854 Header header\n\ 00855 actionlib_msgs/GoalID goal_id\n\ 00856 MoveArmGoal goal\n\ 00857 \n\ 00858 ================================================================================\n\ 00859 MSG: std_msgs/Header\n\ 00860 # Standard metadata for higher-level stamped data types.\n\ 00861 # This is generally used to communicate timestamped data \n\ 00862 # in a particular coordinate frame.\n\ 00863 # \n\ 00864 # sequence ID: consecutively increasing ID \n\ 00865 uint32 seq\n\ 00866 #Two-integer timestamp that is expressed as:\n\ 00867 # * stamp.secs: seconds (stamp_secs) since epoch\n\ 00868 # * stamp.nsecs: nanoseconds since stamp_secs\n\ 00869 # time-handling sugar is provided by the client library\n\ 00870 time stamp\n\ 00871 #Frame this data is associated with\n\ 00872 # 0: no frame\n\ 00873 # 1: global frame\n\ 00874 string frame_id\n\ 00875 \n\ 00876 ================================================================================\n\ 00877 MSG: actionlib_msgs/GoalID\n\ 00878 # The stamp should store the time at which this goal was requested.\n\ 00879 # It is used by an action server when it tries to preempt all\n\ 00880 # goals that were requested before a certain time\n\ 00881 time stamp\n\ 00882 \n\ 00883 # The id provides a way to associate feedback and\n\ 00884 # result message with specific goal requests. The id\n\ 00885 # specified must be unique.\n\ 00886 string id\n\ 00887 \n\ 00888 \n\ 00889 ================================================================================\n\ 00890 MSG: arm_navigation_msgs/MoveArmGoal\n\ 00891 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 00892 # Service name to call for getting a motion plan\n\ 00893 # Move arm will call a service on this service name \n\ 00894 # using the MotionPlanRequest specified here\n\ 00895 string planner_service_name\n\ 00896 \n\ 00897 # A planning scene diff\n\ 00898 PlanningScene planning_scene_diff\n\ 00899 \n\ 00900 # A motion planning request\n\ 00901 MotionPlanRequest motion_plan_request\n\ 00902 \n\ 00903 # OPTIONAL: Diff uses ordered collision operations in addition to allowed_collision_matrix\n\ 00904 arm_navigation_msgs/OrderedCollisionOperations operations\n\ 00905 \n\ 00906 # OPTIONAL flag\n\ 00907 # Setting this flag to true will allow move_arm to accept plans that do not go all the way to the goal\n\ 00908 bool accept_partial_plans\n\ 00909 \n\ 00910 # OPTIONAL flag\n\ 00911 # Setting this flag to true will allow move_arm to accept invalid goals\n\ 00912 # This is useful if you are using a planner like CHOMP along with a noisy rapidly changing collision map\n\ 00913 # and you would like to plan to a goal near an object.\n\ 00914 bool accept_invalid_goals\n\ 00915 \n\ 00916 # OPTIONAL flag\n\ 00917 # Setting this flag to true will disable the call to IK for a pose goal\n\ 00918 bool disable_ik\n\ 00919 \n\ 00920 # OPTIONAL flag\n\ 00921 # Setting this flag to true will disable collision monitoring during execution of a trajectory\n\ 00922 bool disable_collision_monitoring\n\ 00923 \n\ 00924 ================================================================================\n\ 00925 MSG: arm_navigation_msgs/PlanningScene\n\ 00926 #full robot state\n\ 00927 arm_navigation_msgs/RobotState robot_state\n\ 00928 \n\ 00929 #additional frames for duplicating tf\n\ 00930 geometry_msgs/TransformStamped[] fixed_frame_transforms\n\ 00931 \n\ 00932 #full allowed collision matrix\n\ 00933 AllowedCollisionMatrix allowed_collision_matrix\n\ 00934 \n\ 00935 #allowed contacts\n\ 00936 arm_navigation_msgs/AllowedContactSpecification[] allowed_contacts\n\ 00937 \n\ 00938 #all link paddings\n\ 00939 arm_navigation_msgs/LinkPadding[] link_padding\n\ 00940 \n\ 00941 #collision objects\n\ 00942 arm_navigation_msgs/CollisionObject[] collision_objects\n\ 00943 arm_navigation_msgs/AttachedCollisionObject[] attached_collision_objects\n\ 00944 \n\ 00945 #the collision map\n\ 00946 arm_navigation_msgs/CollisionMap collision_map\n\ 00947 \n\ 00948 ================================================================================\n\ 00949 MSG: arm_navigation_msgs/RobotState\n\ 00950 # This message contains information about the robot state, i.e. the positions of its joints and links\n\ 00951 sensor_msgs/JointState joint_state\n\ 00952 arm_navigation_msgs/MultiDOFJointState multi_dof_joint_state\n\ 00953 \n\ 00954 ================================================================================\n\ 00955 MSG: sensor_msgs/JointState\n\ 00956 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\ 00957 #\n\ 00958 # The state of each joint (revolute or prismatic) is defined by:\n\ 00959 # * the position of the joint (rad or m),\n\ 00960 # * the velocity of the joint (rad/s or m/s) and \n\ 00961 # * the effort that is applied in the joint (Nm or N).\n\ 00962 #\n\ 00963 # Each joint is uniquely identified by its name\n\ 00964 # The header specifies the time at which the joint states were recorded. All the joint states\n\ 00965 # in one message have to be recorded at the same time.\n\ 00966 #\n\ 00967 # This message consists of a multiple arrays, one for each part of the joint state. \n\ 00968 # The goal is to make each of the fields optional. When e.g. your joints have no\n\ 00969 # effort associated with them, you can leave the effort array empty. \n\ 00970 #\n\ 00971 # All arrays in this message should have the same size, or be empty.\n\ 00972 # This is the only way to uniquely associate the joint name with the correct\n\ 00973 # states.\n\ 00974 \n\ 00975 \n\ 00976 Header header\n\ 00977 \n\ 00978 string[] name\n\ 00979 float64[] position\n\ 00980 float64[] velocity\n\ 00981 float64[] effort\n\ 00982 \n\ 00983 ================================================================================\n\ 00984 MSG: arm_navigation_msgs/MultiDOFJointState\n\ 00985 #A representation of a multi-dof joint state\n\ 00986 time stamp\n\ 00987 string[] joint_names\n\ 00988 string[] frame_ids\n\ 00989 string[] child_frame_ids\n\ 00990 geometry_msgs/Pose[] poses\n\ 00991 \n\ 00992 ================================================================================\n\ 00993 MSG: geometry_msgs/Pose\n\ 00994 # A representation of pose in free space, composed of postion and orientation. \n\ 00995 Point position\n\ 00996 Quaternion orientation\n\ 00997 \n\ 00998 ================================================================================\n\ 00999 MSG: geometry_msgs/Point\n\ 01000 # This contains the position of a point in free space\n\ 01001 float64 x\n\ 01002 float64 y\n\ 01003 float64 z\n\ 01004 \n\ 01005 ================================================================================\n\ 01006 MSG: geometry_msgs/Quaternion\n\ 01007 # This represents an orientation in free space in quaternion form.\n\ 01008 \n\ 01009 float64 x\n\ 01010 float64 y\n\ 01011 float64 z\n\ 01012 float64 w\n\ 01013 \n\ 01014 ================================================================================\n\ 01015 MSG: geometry_msgs/TransformStamped\n\ 01016 # This expresses a transform from coordinate frame header.frame_id\n\ 01017 # to the coordinate frame child_frame_id\n\ 01018 #\n\ 01019 # This message is mostly used by the \n\ 01020 # <a href=\"http://www.ros.org/wiki/tf\">tf</a> package. \n\ 01021 # See it's documentation for more information.\n\ 01022 \n\ 01023 Header header\n\ 01024 string child_frame_id # the frame id of the child frame\n\ 01025 Transform transform\n\ 01026 \n\ 01027 ================================================================================\n\ 01028 MSG: geometry_msgs/Transform\n\ 01029 # This represents the transform between two coordinate frames in free space.\n\ 01030 \n\ 01031 Vector3 translation\n\ 01032 Quaternion rotation\n\ 01033 \n\ 01034 ================================================================================\n\ 01035 MSG: geometry_msgs/Vector3\n\ 01036 # This represents a vector in free space. \n\ 01037 \n\ 01038 float64 x\n\ 01039 float64 y\n\ 01040 float64 z\n\ 01041 ================================================================================\n\ 01042 MSG: arm_navigation_msgs/AllowedCollisionMatrix\n\ 01043 # the list of link names in the matrix\n\ 01044 string[] link_names\n\ 01045 \n\ 01046 # the individual entries in the allowed collision matrix\n\ 01047 # symmetric, with same order as link_names\n\ 01048 AllowedCollisionEntry[] entries\n\ 01049 \n\ 01050 ================================================================================\n\ 01051 MSG: arm_navigation_msgs/AllowedCollisionEntry\n\ 01052 # whether or not collision checking is enabled\n\ 01053 bool[] enabled\n\ 01054 \n\ 01055 ================================================================================\n\ 01056 MSG: arm_navigation_msgs/AllowedContactSpecification\n\ 01057 # The names of the regions\n\ 01058 string name\n\ 01059 \n\ 01060 # The shape of the region in the environment\n\ 01061 arm_navigation_msgs/Shape shape\n\ 01062 \n\ 01063 # The pose of the space defining the region\n\ 01064 geometry_msgs/PoseStamped pose_stamped\n\ 01065 \n\ 01066 # The set of links that will be allowed to have penetration contact within this region\n\ 01067 string[] link_names\n\ 01068 \n\ 01069 # The maximum penetration depth allowed for every link\n\ 01070 float64 penetration_depth\n\ 01071 \n\ 01072 ================================================================================\n\ 01073 MSG: arm_navigation_msgs/Shape\n\ 01074 byte SPHERE=0\n\ 01075 byte BOX=1\n\ 01076 byte CYLINDER=2\n\ 01077 byte MESH=3\n\ 01078 \n\ 01079 byte type\n\ 01080 \n\ 01081 \n\ 01082 #### define sphere, box, cylinder ####\n\ 01083 # the origin of each shape is considered at the shape's center\n\ 01084 \n\ 01085 # for sphere\n\ 01086 # radius := dimensions[0]\n\ 01087 \n\ 01088 # for cylinder\n\ 01089 # radius := dimensions[0]\n\ 01090 # length := dimensions[1]\n\ 01091 # the length is along the Z axis\n\ 01092 \n\ 01093 # for box\n\ 01094 # size_x := dimensions[0]\n\ 01095 # size_y := dimensions[1]\n\ 01096 # size_z := dimensions[2]\n\ 01097 float64[] dimensions\n\ 01098 \n\ 01099 \n\ 01100 #### define mesh ####\n\ 01101 \n\ 01102 # list of triangles; triangle k is defined by tre vertices located\n\ 01103 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\ 01104 int32[] triangles\n\ 01105 geometry_msgs/Point[] vertices\n\ 01106 \n\ 01107 ================================================================================\n\ 01108 MSG: geometry_msgs/PoseStamped\n\ 01109 # A Pose with reference coordinate frame and timestamp\n\ 01110 Header header\n\ 01111 Pose pose\n\ 01112 \n\ 01113 ================================================================================\n\ 01114 MSG: arm_navigation_msgs/LinkPadding\n\ 01115 #name for the link\n\ 01116 string link_name\n\ 01117 \n\ 01118 # padding to apply to the link\n\ 01119 float64 padding\n\ 01120 \n\ 01121 ================================================================================\n\ 01122 MSG: arm_navigation_msgs/CollisionObject\n\ 01123 # a header, used for interpreting the poses\n\ 01124 Header header\n\ 01125 \n\ 01126 # the id of the object\n\ 01127 string id\n\ 01128 \n\ 01129 # The padding used for filtering points near the object.\n\ 01130 # This does not affect collision checking for the object. \n\ 01131 # Set to negative to get zero padding.\n\ 01132 float32 padding\n\ 01133 \n\ 01134 #This contains what is to be done with the object\n\ 01135 CollisionObjectOperation operation\n\ 01136 \n\ 01137 #the shapes associated with the object\n\ 01138 arm_navigation_msgs/Shape[] shapes\n\ 01139 \n\ 01140 #the poses associated with the shapes - will be transformed using the header\n\ 01141 geometry_msgs/Pose[] poses\n\ 01142 \n\ 01143 ================================================================================\n\ 01144 MSG: arm_navigation_msgs/CollisionObjectOperation\n\ 01145 #Puts the object into the environment\n\ 01146 #or updates the object if already added\n\ 01147 byte ADD=0\n\ 01148 \n\ 01149 #Removes the object from the environment entirely\n\ 01150 byte REMOVE=1\n\ 01151 \n\ 01152 #Only valid within the context of a CollisionAttachedObject message\n\ 01153 #Will be ignored if sent with an CollisionObject message\n\ 01154 #Takes an attached object, detaches from the attached link\n\ 01155 #But adds back in as regular object\n\ 01156 byte DETACH_AND_ADD_AS_OBJECT=2\n\ 01157 \n\ 01158 #Only valid within the context of a CollisionAttachedObject message\n\ 01159 #Will be ignored if sent with an CollisionObject message\n\ 01160 #Takes current object in the environment and removes it as\n\ 01161 #a regular object\n\ 01162 byte ATTACH_AND_REMOVE_AS_OBJECT=3\n\ 01163 \n\ 01164 # Byte code for operation\n\ 01165 byte operation\n\ 01166 \n\ 01167 ================================================================================\n\ 01168 MSG: arm_navigation_msgs/AttachedCollisionObject\n\ 01169 # The CollisionObject will be attached with a fixed joint to this link\n\ 01170 # If link name is set to REMOVE_ALL_ATTACHED_OBJECTS and object.operation \n\ 01171 # is set to REMOVE will remove all attached bodies attached to any object\n\ 01172 string link_name\n\ 01173 \n\ 01174 #Reserved for indicating that all attached objects should be removed\n\ 01175 string REMOVE_ALL_ATTACHED_OBJECTS = \"all\"\n\ 01176 \n\ 01177 #This contains the actual shapes and poses for the CollisionObject\n\ 01178 #to be attached to the link\n\ 01179 #If action is remove and no object.id is set, all objects\n\ 01180 #attached to the link indicated by link_name will be removed\n\ 01181 CollisionObject object\n\ 01182 \n\ 01183 # The set of links that the attached objects are allowed to touch\n\ 01184 # by default - the link_name is included by default\n\ 01185 string[] touch_links\n\ 01186 \n\ 01187 ================================================================================\n\ 01188 MSG: arm_navigation_msgs/CollisionMap\n\ 01189 #header for interpreting box positions\n\ 01190 Header header\n\ 01191 \n\ 01192 #boxes for use in collision testing\n\ 01193 OrientedBoundingBox[] boxes\n\ 01194 \n\ 01195 ================================================================================\n\ 01196 MSG: arm_navigation_msgs/OrientedBoundingBox\n\ 01197 #the center of the box\n\ 01198 geometry_msgs/Point32 center\n\ 01199 \n\ 01200 #the extents of the box, assuming the center is at the point\n\ 01201 geometry_msgs/Point32 extents\n\ 01202 \n\ 01203 #the axis of the box\n\ 01204 geometry_msgs/Point32 axis\n\ 01205 \n\ 01206 #the angle of rotation around the axis\n\ 01207 float32 angle\n\ 01208 \n\ 01209 ================================================================================\n\ 01210 MSG: geometry_msgs/Point32\n\ 01211 # This contains the position of a point in free space(with 32 bits of precision).\n\ 01212 # It is recommeded to use Point wherever possible instead of Point32. \n\ 01213 # \n\ 01214 # This recommendation is to promote interoperability. \n\ 01215 #\n\ 01216 # This message is designed to take up less space when sending\n\ 01217 # lots of points at once, as in the case of a PointCloud. \n\ 01218 \n\ 01219 float32 x\n\ 01220 float32 y\n\ 01221 float32 z\n\ 01222 ================================================================================\n\ 01223 MSG: arm_navigation_msgs/MotionPlanRequest\n\ 01224 # This service contains the definition for a request to the motion\n\ 01225 # planner and the output it provides\n\ 01226 \n\ 01227 # Parameters for the workspace that the planner should work inside\n\ 01228 arm_navigation_msgs/WorkspaceParameters workspace_parameters\n\ 01229 \n\ 01230 # Starting state updates. If certain joints should be considered\n\ 01231 # at positions other than the current ones, these positions should\n\ 01232 # be set here\n\ 01233 arm_navigation_msgs/RobotState start_state\n\ 01234 \n\ 01235 # The goal state for the model to plan for. The goal is achieved\n\ 01236 # if all constraints are satisfied\n\ 01237 arm_navigation_msgs/Constraints goal_constraints\n\ 01238 \n\ 01239 # No state at any point along the path in the produced motion plan will violate these constraints\n\ 01240 arm_navigation_msgs/Constraints path_constraints\n\ 01241 \n\ 01242 # The name of the motion planner to use. If no name is specified,\n\ 01243 # a default motion planner will be used\n\ 01244 string planner_id\n\ 01245 \n\ 01246 # The name of the group of joints on which this planner is operating\n\ 01247 string group_name\n\ 01248 \n\ 01249 # The number of times this plan is to be computed. Shortest solution\n\ 01250 # will be reported.\n\ 01251 int32 num_planning_attempts\n\ 01252 \n\ 01253 # The maximum amount of time the motion planner is allowed to plan for\n\ 01254 duration allowed_planning_time\n\ 01255 \n\ 01256 # An expected path duration (in seconds) along with an expected discretization of the path allows the planner to determine the discretization of the trajectory that it returns\n\ 01257 duration expected_path_duration\n\ 01258 duration expected_path_dt\n\ 01259 \n\ 01260 ================================================================================\n\ 01261 MSG: arm_navigation_msgs/WorkspaceParameters\n\ 01262 # This message contains a set of parameters useful in\n\ 01263 # setting up the workspace for planning\n\ 01264 arm_navigation_msgs/Shape workspace_region_shape\n\ 01265 geometry_msgs/PoseStamped workspace_region_pose\n\ 01266 \n\ 01267 \n\ 01268 ================================================================================\n\ 01269 MSG: arm_navigation_msgs/Constraints\n\ 01270 # This message contains a list of motion planning constraints.\n\ 01271 \n\ 01272 arm_navigation_msgs/JointConstraint[] joint_constraints\n\ 01273 arm_navigation_msgs/PositionConstraint[] position_constraints\n\ 01274 arm_navigation_msgs/OrientationConstraint[] orientation_constraints\n\ 01275 arm_navigation_msgs/VisibilityConstraint[] visibility_constraints\n\ 01276 \n\ 01277 ================================================================================\n\ 01278 MSG: arm_navigation_msgs/JointConstraint\n\ 01279 # Constrain the position of a joint to be within a certain bound\n\ 01280 string joint_name\n\ 01281 \n\ 01282 # the bound to be achieved is [position - tolerance_below, position + tolerance_above]\n\ 01283 float64 position\n\ 01284 float64 tolerance_above\n\ 01285 float64 tolerance_below\n\ 01286 \n\ 01287 # A weighting factor for this constraint\n\ 01288 float64 weight\n\ 01289 ================================================================================\n\ 01290 MSG: arm_navigation_msgs/PositionConstraint\n\ 01291 # This message contains the definition of a position constraint.\n\ 01292 Header header\n\ 01293 \n\ 01294 # The robot link this constraint refers to\n\ 01295 string link_name\n\ 01296 \n\ 01297 # The offset (in the link frame) for the target point on the link we are planning for\n\ 01298 geometry_msgs/Point target_point_offset\n\ 01299 \n\ 01300 # The nominal/target position for the point we are planning for\n\ 01301 geometry_msgs/Point position\n\ 01302 \n\ 01303 # The shape of the bounded region that constrains the position of the end-effector\n\ 01304 # This region is always centered at the position defined above\n\ 01305 arm_navigation_msgs/Shape constraint_region_shape\n\ 01306 \n\ 01307 # The orientation of the bounded region that constrains the position of the end-effector. \n\ 01308 # This allows the specification of non-axis aligned constraints\n\ 01309 geometry_msgs/Quaternion constraint_region_orientation\n\ 01310 \n\ 01311 # Constraint weighting factor - a weight for this constraint\n\ 01312 float64 weight\n\ 01313 \n\ 01314 ================================================================================\n\ 01315 MSG: arm_navigation_msgs/OrientationConstraint\n\ 01316 # This message contains the definition of an orientation constraint.\n\ 01317 Header header\n\ 01318 \n\ 01319 # The robot link this constraint refers to\n\ 01320 string link_name\n\ 01321 \n\ 01322 # The type of the constraint\n\ 01323 int32 type\n\ 01324 int32 LINK_FRAME=0\n\ 01325 int32 HEADER_FRAME=1\n\ 01326 \n\ 01327 # The desired orientation of the robot link specified as a quaternion\n\ 01328 geometry_msgs/Quaternion orientation\n\ 01329 \n\ 01330 # optional RPY error tolerances specified if \n\ 01331 float64 absolute_roll_tolerance\n\ 01332 float64 absolute_pitch_tolerance\n\ 01333 float64 absolute_yaw_tolerance\n\ 01334 \n\ 01335 # Constraint weighting factor - a weight for this constraint\n\ 01336 float64 weight\n\ 01337 \n\ 01338 ================================================================================\n\ 01339 MSG: arm_navigation_msgs/VisibilityConstraint\n\ 01340 # This message contains the definition of a visibility constraint.\n\ 01341 Header header\n\ 01342 \n\ 01343 # The point stamped target that needs to be kept within view of the sensor\n\ 01344 geometry_msgs/PointStamped target\n\ 01345 \n\ 01346 # The local pose of the frame in which visibility is to be maintained\n\ 01347 # The frame id should represent the robot link to which the sensor is attached\n\ 01348 # The visual axis of the sensor is assumed to be along the X axis of this frame\n\ 01349 geometry_msgs/PoseStamped sensor_pose\n\ 01350 \n\ 01351 # The deviation (in radians) that will be tolerated\n\ 01352 # Constraint error will be measured as the solid angle between the \n\ 01353 # X axis of the frame defined above and the vector between the origin \n\ 01354 # of the frame defined above and the target location\n\ 01355 float64 absolute_tolerance\n\ 01356 \n\ 01357 \n\ 01358 ================================================================================\n\ 01359 MSG: geometry_msgs/PointStamped\n\ 01360 # This represents a Point with reference coordinate frame and timestamp\n\ 01361 Header header\n\ 01362 Point point\n\ 01363 \n\ 01364 ================================================================================\n\ 01365 MSG: arm_navigation_msgs/OrderedCollisionOperations\n\ 01366 # A set of collision operations that will be performed in the order they are specified\n\ 01367 CollisionOperation[] collision_operations\n\ 01368 ================================================================================\n\ 01369 MSG: arm_navigation_msgs/CollisionOperation\n\ 01370 # A definition of a collision operation\n\ 01371 # E.g. (\"gripper\",COLLISION_SET_ALL,ENABLE) will enable collisions \n\ 01372 # between the gripper and all objects in the collision space\n\ 01373 \n\ 01374 string object1\n\ 01375 string object2\n\ 01376 string COLLISION_SET_ALL=\"all\"\n\ 01377 string COLLISION_SET_OBJECTS=\"objects\"\n\ 01378 string COLLISION_SET_ATTACHED_OBJECTS=\"attached\"\n\ 01379 \n\ 01380 # The penetration distance to which collisions are allowed. This is 0.0 by default.\n\ 01381 float64 penetration_distance\n\ 01382 \n\ 01383 # Flag that determines whether collisions will be enabled or disabled for the pair of objects specified above\n\ 01384 int32 operation\n\ 01385 int32 DISABLE=0\n\ 01386 int32 ENABLE=1\n\ 01387 \n\ 01388 ================================================================================\n\ 01389 MSG: arm_navigation_msgs/MoveArmActionResult\n\ 01390 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 01391 \n\ 01392 Header header\n\ 01393 actionlib_msgs/GoalStatus status\n\ 01394 MoveArmResult result\n\ 01395 \n\ 01396 ================================================================================\n\ 01397 MSG: actionlib_msgs/GoalStatus\n\ 01398 GoalID goal_id\n\ 01399 uint8 status\n\ 01400 uint8 PENDING = 0 # The goal has yet to be processed by the action server\n\ 01401 uint8 ACTIVE = 1 # The goal is currently being processed by the action server\n\ 01402 uint8 PREEMPTED = 2 # The goal received a cancel request after it started executing\n\ 01403 # and has since completed its execution (Terminal State)\n\ 01404 uint8 SUCCEEDED = 3 # The goal was achieved successfully by the action server (Terminal State)\n\ 01405 uint8 ABORTED = 4 # The goal was aborted during execution by the action server due\n\ 01406 # to some failure (Terminal State)\n\ 01407 uint8 REJECTED = 5 # The goal was rejected by the action server without being processed,\n\ 01408 # because the goal was unattainable or invalid (Terminal State)\n\ 01409 uint8 PREEMPTING = 6 # The goal received a cancel request after it started executing\n\ 01410 # and has not yet completed execution\n\ 01411 uint8 RECALLING = 7 # The goal received a cancel request before it started executing,\n\ 01412 # but the action server has not yet confirmed that the goal is canceled\n\ 01413 uint8 RECALLED = 8 # The goal received a cancel request before it started executing\n\ 01414 # and was successfully cancelled (Terminal State)\n\ 01415 uint8 LOST = 9 # An action client can determine that a goal is LOST. This should not be\n\ 01416 # sent over the wire by an action server\n\ 01417 \n\ 01418 #Allow for the user to associate a string with GoalStatus for debugging\n\ 01419 string text\n\ 01420 \n\ 01421 \n\ 01422 ================================================================================\n\ 01423 MSG: arm_navigation_msgs/MoveArmResult\n\ 01424 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 01425 # An error code reflecting what went wrong\n\ 01426 ArmNavigationErrorCodes error_code\n\ 01427 \n\ 01428 ContactInformation[] contacts\n\ 01429 \n\ 01430 ================================================================================\n\ 01431 MSG: arm_navigation_msgs/ArmNavigationErrorCodes\n\ 01432 int32 val\n\ 01433 \n\ 01434 # overall behavior\n\ 01435 int32 PLANNING_FAILED=-1\n\ 01436 int32 SUCCESS=1\n\ 01437 int32 TIMED_OUT=-2\n\ 01438 \n\ 01439 # start state errors\n\ 01440 int32 START_STATE_IN_COLLISION=-3\n\ 01441 int32 START_STATE_VIOLATES_PATH_CONSTRAINTS=-4\n\ 01442 \n\ 01443 # goal errors\n\ 01444 int32 GOAL_IN_COLLISION=-5\n\ 01445 int32 GOAL_VIOLATES_PATH_CONSTRAINTS=-6\n\ 01446 \n\ 01447 # robot state\n\ 01448 int32 INVALID_ROBOT_STATE=-7\n\ 01449 int32 INCOMPLETE_ROBOT_STATE=-8\n\ 01450 \n\ 01451 # planning request errors\n\ 01452 int32 INVALID_PLANNER_ID=-9\n\ 01453 int32 INVALID_NUM_PLANNING_ATTEMPTS=-10\n\ 01454 int32 INVALID_ALLOWED_PLANNING_TIME=-11\n\ 01455 int32 INVALID_GROUP_NAME=-12\n\ 01456 int32 INVALID_GOAL_JOINT_CONSTRAINTS=-13\n\ 01457 int32 INVALID_GOAL_POSITION_CONSTRAINTS=-14\n\ 01458 int32 INVALID_GOAL_ORIENTATION_CONSTRAINTS=-15\n\ 01459 int32 INVALID_PATH_JOINT_CONSTRAINTS=-16\n\ 01460 int32 INVALID_PATH_POSITION_CONSTRAINTS=-17\n\ 01461 int32 INVALID_PATH_ORIENTATION_CONSTRAINTS=-18\n\ 01462 \n\ 01463 # state/trajectory monitor errors\n\ 01464 int32 INVALID_TRAJECTORY=-19\n\ 01465 int32 INVALID_INDEX=-20\n\ 01466 int32 JOINT_LIMITS_VIOLATED=-21\n\ 01467 int32 PATH_CONSTRAINTS_VIOLATED=-22\n\ 01468 int32 COLLISION_CONSTRAINTS_VIOLATED=-23\n\ 01469 int32 GOAL_CONSTRAINTS_VIOLATED=-24\n\ 01470 int32 JOINTS_NOT_MOVING=-25\n\ 01471 int32 TRAJECTORY_CONTROLLER_FAILED=-26\n\ 01472 \n\ 01473 # system errors\n\ 01474 int32 FRAME_TRANSFORM_FAILURE=-27\n\ 01475 int32 COLLISION_CHECKING_UNAVAILABLE=-28\n\ 01476 int32 ROBOT_STATE_STALE=-29\n\ 01477 int32 SENSOR_INFO_STALE=-30\n\ 01478 \n\ 01479 # kinematics errors\n\ 01480 int32 NO_IK_SOLUTION=-31\n\ 01481 int32 INVALID_LINK_NAME=-32\n\ 01482 int32 IK_LINK_IN_COLLISION=-33\n\ 01483 int32 NO_FK_SOLUTION=-34\n\ 01484 int32 KINEMATICS_STATE_IN_COLLISION=-35\n\ 01485 \n\ 01486 # general errors\n\ 01487 int32 INVALID_TIMEOUT=-36\n\ 01488 \n\ 01489 \n\ 01490 ================================================================================\n\ 01491 MSG: arm_navigation_msgs/ContactInformation\n\ 01492 # Standard ROS header contains information \n\ 01493 # about the frame in which this \n\ 01494 # contact is specified\n\ 01495 Header header\n\ 01496 \n\ 01497 # Position of the contact point\n\ 01498 geometry_msgs/Point position\n\ 01499 \n\ 01500 # Normal corresponding to the contact point\n\ 01501 geometry_msgs/Vector3 normal \n\ 01502 \n\ 01503 # Depth of contact point\n\ 01504 float64 depth\n\ 01505 \n\ 01506 # Name of the first body that is in contact\n\ 01507 # This could be a link or a namespace that represents a body\n\ 01508 string contact_body_1\n\ 01509 string attached_body_1\n\ 01510 uint32 body_type_1\n\ 01511 \n\ 01512 # Name of the second body that is in contact\n\ 01513 # This could be a link or a namespace that represents a body\n\ 01514 string contact_body_2\n\ 01515 string attached_body_2\n\ 01516 uint32 body_type_2\n\ 01517 \n\ 01518 uint32 ROBOT_LINK=0\n\ 01519 uint32 OBJECT=1\n\ 01520 uint32 ATTACHED_BODY=2\n\ 01521 ================================================================================\n\ 01522 MSG: arm_navigation_msgs/MoveArmActionFeedback\n\ 01523 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 01524 \n\ 01525 Header header\n\ 01526 actionlib_msgs/GoalStatus status\n\ 01527 MoveArmFeedback feedback\n\ 01528 \n\ 01529 ================================================================================\n\ 01530 MSG: arm_navigation_msgs/MoveArmFeedback\n\ 01531 # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\ 01532 # The internal state that the move arm action currently is in\n\ 01533 string state\n\ 01534 \n\ 01535 # Time to completion - this is a combination of requested planning time and trajectory completion time\n\ 01536 duration time_to_completion\n\ 01537 \n\ 01538 \n\ 01539 "; 01540 } 01541 01542 static const char* value(const ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> &) { return value(); } 01543 }; 01544 01545 } // namespace message_traits 01546 } // namespace ros 01547 01548 namespace ros 01549 { 01550 namespace serialization 01551 { 01552 01553 template<class ContainerAllocator> struct Serializer< ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> > 01554 { 01555 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) 01556 { 01557 stream.next(m.action_goal); 01558 stream.next(m.action_result); 01559 stream.next(m.action_feedback); 01560 } 01561 01562 ROS_DECLARE_ALLINONE_SERIALIZER; 01563 }; // struct MoveArmAction_ 01564 } // namespace serialization 01565 } // namespace ros 01566 01567 namespace ros 01568 { 01569 namespace message_operations 01570 { 01571 01572 template<class ContainerAllocator> 01573 struct Printer< ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> > 01574 { 01575 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::arm_navigation_msgs::MoveArmAction_<ContainerAllocator> & v) 01576 { 01577 s << indent << "action_goal: "; 01578 s << std::endl; 01579 Printer< ::arm_navigation_msgs::MoveArmActionGoal_<ContainerAllocator> >::stream(s, indent + " ", v.action_goal); 01580 s << indent << "action_result: "; 01581 s << std::endl; 01582 Printer< ::arm_navigation_msgs::MoveArmActionResult_<ContainerAllocator> >::stream(s, indent + " ", v.action_result); 01583 s << indent << "action_feedback: "; 01584 s << std::endl; 01585 Printer< ::arm_navigation_msgs::MoveArmActionFeedback_<ContainerAllocator> >::stream(s, indent + " ", v.action_feedback); 01586 } 01587 }; 01588 01589 01590 } // namespace message_operations 01591 } // namespace ros 01592 01593 #endif // ARM_NAVIGATION_MSGS_MESSAGE_MOVEARMACTION_H 01594