Link Search Menu Expand Document

Pick and Place

  1. Define Waypoints in Cartesian Space
  2. Define Waypoints in Joint Space

(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.

  1. 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 trajectory
    • roslaunch hand_arm pick-place-build.launch traj:=examples/2finger_grid Build a family of trajectories
  2. 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.
  3. 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

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.

  1. 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
  2. Run the trajectory planner
    • roslaunch hand_arm plan-traj.launch traj:=examples/manually_built/joint_traj
  3. 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

Table of contents