Pick and Place
(2021_07_15): These Instructions are now deprecated
We will use the files located in “traj_setup/examples” and “trajectories/examples”.
Pick-and-place routines are just a specific way of building motion trajectories from a high-level config file.
Define Waypoints in Cartesian Space
You can set up pick-and-place routine using cartesian poses, then use MoveIt! to do the IK and motion planning.
- Build a routine
- Open the following YAML files in a text editor
- “traj_setup/examples/2finger_single.yaml” (building a single pick-and-place action)
- “traj_setup/examples/2finger_grid.yaml” (building a grid of pick-and-place actions in space)
- Set the poses and grasping settings you want to use.
roslaunch hand_arm pick-place-build.launch traj:=examples/2finger_single
Build a single trajectoryroslaunch hand_arm pick-place-build.launch traj:=examples/2finger_grid
Build a family of trajectories
- Open the following YAML files in a text editor
- Plan a routine
- This requires that you bring up the robot and start MoveIt! See System Startup. One the planning step is finished, you don’t need MoveIt! running.
- Plan a single trajectory:
roslaunch hand_arm plan-traj.launch traj:=examples/2finger_single
- Plan a grid:
roslaunch hand_arm plan-traj.launch traj:=examples/2finger_grid
Build a family of trajectories - These commands use MoveIt! to plan trajectories based on poses, then save the resulting joint-space trajectories.
- Run a planned routine
- Use
run-traj.launch
, as discussed in the Motion Trajectories section -
Run a single trajectory:
roslaunch hand_arm run-traj.launch traj:=examples/2finger_single
- Run a grid:
roslaunch hand_arm run-traj.launch traj:=examples/2finger_grid
- traj (required) the folder name of a grid.
- reps (optional, default: 1) Number of reps to perform
- start (optional, default: 0) The permutation index to start at
- save (optional, default: false) Save data for each rep of each trajectory, then pickle them
- Use
Other optional things:
- Use some optional arguments to turn the hand or arm on/off
- hand (optional, default: true) Use on the hand
- arm (optional, default: true) Use on the arm
Define Waypoints in Joint Space
You can set up pick-and-place routines using joint configurations directly.
- Build an routine manually
- Open “trajectories/examples/manually_built/joint_traj.yaml” in a text editor
- In sequence » setup, the arm_traj_space is set to “joint”
- In arm, the move segments are defined in joint positions.
- In hand, the pressures are defined like normal
- Run the trajectory planner
roslaunch hand_arm plan-traj.launch traj:=examples/manually_built/joint_traj
- Run the pick and place routine like normal.
roslaunch hand_arm run-traj.launch traj:=examples/manually_built/joint_traj speed_factor:=1.0 reps:=20