## repository: https://code.ros.org/svn/wg-ros-pkg <> <> This package contains two main ROS nodes and two supporting scripts.. == articulate_cart_server.py == This is the main node for performing articulation of a cart using both arms on the PR2. === Subscribed topics === `cart_pushing/ready_pose_achieved` (<>) Once the base achieves a ready pose, in which the robot's arms are in the position corresponding to the cart being at its initial position, with grippers open, a message will be sent on this topic (at a fixed rate). `~command_twist` (<>) The desired twist for the reference point on the cart, relative to the `base_footprint` frame === Published topics === `/r_cart/command_pose`, `/l_cart/command_pose` (<>) Desired poses for the left and right gripper tool frames are sent on these topics `/r_cart/command_posture`, `/l_cart/command_posture` (<>) Since there is a degree of freedom remaining in the arm after specifying the gripper pose, we send a desired posture on this topic `invalid_pose` (<>) This is a debugging topic, on which a message is sent on this topic whenever a pose is requested that is outside the workspace bounds for the cart === Expected services === `manipulation_transforms_server/LoadInitialTransforms` (<>) Used to tell the manipulation transforms server that the current pose is the one at which the cart is at its initial position `manipulation_transforms_server/MapObjectPoseToEffectors` (<>) Used to get the effector poses corresponding to a desired cart pose === TF frames used === `base_footprint` Used as the base position and the reference for the cart `l_gripper_tool_frame`, `r_gripper_tool_frame` Used as the locations of the grippers === Command line parameters === `-g` If specified, the initial pose of the robot (once the `ready_pose_achieved` message is received) is used as the reference position. If not, the reference position is read from the parameter server. === ROS parameters === `cart_pushing/{x,y,t}_{min,max}` Workspace bounds for the cart pose `cart_pushing/init_pose/position` The initial position of the cart relative to the base; specified as `[x, y, z]` `cart_pushing/init_pose/orientation` The initial orientation of the cart relative to the base; specified as `[x, y, z, w]` == fake_articulate_cart_server.py == This is for use in simulators in which gripper frames are not available. It provides the interface of `articulate_cart_server.py`. Additionally, it publishes transforms between `base_footprint` and `l_gripper_tool_frame`/`r_gripper_tool_frame` corresponding to the commands it receives on `~command_twist`. == close_grippers.py == Once a message is received on `move_base/goal`, keeps the grippers closed by sending commands to `{l,r}_gripper_controller/gripper_action`. == switch_controllers.py == Once a message is received on `cart_pushing/ready_pose_achieved`, disables the `{l,r}_arm_controller` controllers and enables `{l,r}_cart`. Switches the controllers back before exiting. ## AUTOGENERATED DON'T DELETE ## CategoryPackage