How to Use PR2 Realtime Controllers

  1. Using the low-level robot base controllers to drive the robot

    This tutorial teaches you how to start up and control the default robot base controllers (pr2_base_controller and pr2_odometry) directly, rather than at a high level (using move_base).

  2. Using the base controller with odometry and transform information

    We move the robot forward by a specified amount by using the low-level base controller together with transform information from odometry.

  3. Getting the current joint angles for the PR2

    This tutorial shows you how to get the current joint angles for the PR2 robot.

  4. Moving the arm through a Cartesian pose trajectory using inverse kinematics and the joint trajectory action

    This tutorial teaches you how to move the arm through Cartesian pose trajectories using inverse kinematics and low-level joint controllers (the joint_trajectory_action).

  5. Moving the torso

    This tutorial shows you how to move the PR2 torso using the single_joint_position_action.

  6. Moving the gripper

    This tutorial shows you how to move the PR2 gripper using the pr2_gripper_action (an action that runs the gripper controller).

  7. Moving the head

    This tutorial shows you how to set a desired pose of the robot head using the existing head trajectory controller.

  8. Moving the arm using the Joint Trajectory Action

    This tutorial demonstrates moving the arm using the Joint Trajectory Action which is an interface to the lower-level Joint Trajectory Controller.

How to Write Realtime Controllers

  1. Writing a realtime joint controller

    This tutorial teaches you how to write a joint space controller that can be executed in the realtime loop of pr2_controller_manager

  2. Running a realtime joint controller

    This tutorial teaches you how to configure and run an existing joint space controller

  3. Implementing a realtime Cartesian controller

    This tutorial teaches you how to control a robot in Cartesian space

  4. Communicating with a realtime joint controller

    This tutorial teaches you how to communicate with a controller over ROS.

  5. Adding a PID to a realtime joint controller

    This tutorial teaches you how to add a PID object to a realtime joint controller

  6. Capturing data from a controller

    This tutorial teaches you how to store data in a controller and extract it for offline viewing, debugging, and tuning.

  7. Plotting controller data in matlab or octave

    This tutorial teaches you how to visualize the captured state of a controller in matlab or octave.

  8. Coding a realtime Cartesian controller with KDL

    This tutorial gives example code for a realtime Cartesian controller using KDL

  9. Coding a realtime Cartesian controller with Eigen

    This tutorial gives example code for a realtime Cartesian controller using KDL and Eigen

  10. Writing a realtime Cartesian controller

    This tutorial teaches you how to control a robot in Cartesian space

  11. Running a realtime Cartesian controller

    This tutorial teaches you how to configure and run an existing Cartesian space controller

  12. Incrementally develop and test a controller in simulation.

    This tutorial walks you through the process of creating s simple custom controller, incrementally adding functionality to it and testing each step in simulation.

  13. Simple URDF-Controller Example

    This tutorial shows you how to build a simple model with URDF, and how to link it with the controller. In addition, useful tips on building and verifying of the created robot model are given.

Create a new tutorial:

Wiki: pr2_controllers/Tutorials (last edited 2009-12-18 21:23:40 by MeloneeWise)