Only released in EOL distros:  

ee_cart_imped: ee_cart_imped_action | ee_cart_imped_control | ee_cart_imped_launch | ee_cart_imped_msgs

Package Summary

An action server and interface for the ee_cart_imped_control package. The EECartImped Controller should always be accessed through this action.

ee_cart_imped: ee_cart_imped_action | ee_cart_imped_control | ee_cart_imped_launch | ee_cart_imped_msgs

Package Summary

An action server and interface for the ee_cart_imped_control package. The EECartImped Controller should always be accessed through this action.

Overview

The ee_cart_imped_action is a node that provides an action interface for the ee_cart_imped_control node. Specifically, it allows tracking trajectories that involve force control and sending goals and cancel signals to the controller. The action can also put constraints on the trajectory and aborts trajectory execution when the constraints are violated. All interaction with the ee_cart_imped_control package should be done through this action interface.

interface.png

The force/impedance controller is useful for many different tasks:

For more videos, look at the ee_cart_imped_control documentation.

ROS API

The ROS API consists of three parts: parameters, the action server, and an interface to the EECartImped Controller.

Parameters

Parameters

constraints/goal/time (double, default: 0.0)
  • The amount of time (in seconds) that the controller is permitted to be late to the goal. If goal_time has passed after the goal should have been completed and the controller still has not reached the final position, then the goal is aborted.
constraints/goal/ (geometry_msgs/Pose, default: -1.0 for all entries)
  • The maximum final error in pose for the trajectory goal to be considered successful. Negative numbers indicate that there is no constraint. If the goal position specifies force in any Cartesian DOF, the position constraints in that DOF are ignored. If the controller does not reach the goal point to within these constraints in the allowed time, the goal is aborted.
constraints/goal/effort (double, default: -1.0)
  • The maximum error allowed in the squared difference between the joint efforts. A negative number indicates there is no constraint. The PR2 does not have force sensors that allow us to close the loop so this is simply the difference between the efforts the joints are commanded to produce and the efforts they are actually able to produce. If the goal position does not specify force in any DOF, this constraint is ignored.
constraints/trajectory/ (geometry_msgs/Pose, default: -1.0 for all entries)
  • The maximum error in pose at any point during execution of the trajectory. Negative numbers indicate that there is no constraint. If the current trajectory point specifies force in one Cartesian DOF, the position constraints in that DOF are ignored. If this constraint is violated at any time, the goal is aborted. This is not a constraint on how far from a trajectory point the current point can be; rather it is a constraint on the error between the point the controller should currently be trying to reach according to the interpolation and the point at which the end effector actually is.
constraints/trajectory/effort (double, default: -1.0)
  • The maximum error allowed in the squared difference between the joint efforts during the trajectory. A negative number indicates there is no constraint. The PR2 does not have force sensors that allow us to close the loop so this is simply the difference between the efforts the joints are commanded to produce and the efforts they are actually able to produce. If the current trajectory point does not specify force in any DOF, this constraint is ignored.

Example configuration (from ee_cart_imped_control/pr2_arms_cart_imped_controller.yaml):

  r_arm_cart_imped_action_node:
    constraints:
      goal:
        time: 0.0
        position:
          x: 0.2
          y: 0.2
          z: 0.2
        orientation:
          x: 0.2
          y: 0.2
          z: 0.2
          w: 0.2
        effort: 0.002
      trajectory:
        effort: -1.0

Action Interface

The EECartImpedAction provides an action server that takes in goals of the type ee_cart_imped_msgs/EECartImpedActionGoal and publishes feedback of the type ee_cart_imped_msgs/EECartImpedActionFeedback.

Subscribed Topics

ee_cart_imped_action/goal (ee_cart_imped_msgs/EECartImpedActionGoal)
  • The goal describes the trajectory with force control for the robot to follow.
ee_cart_imped_action/cancel (actionlib_msgs/GoalID)
  • A request to cancel a specific goal.

Published Topics

ee_cart_imped_action/feedback (ee_cart_imped_msgs/EECartImpedActionFeedback)
  • Feedback describing the progress the mechanism is making on following the trajectory with force control. Gives both the desired trajectory and the current trajectory.
ee_cart_imped_action/status (actionlib_msgs/GoalStatusArray)
  • Provides status information on the goals that are sent to the action.
ee_cart_imped_action/result (ee_cart_imped_msgs/EECartImpedActionResult)
  • Publishes information about the result of the last goal.

Controller Interface

Subscribed Topics

state (ee_cart_imped_msgs/EECartImpedFeedback)
  • Listens to the state of the controller. Uses this subscription to monitor the trajectory.

Published Topics

command (ee_cart_imped_msgs/EECartImpedGoal)
  • Sends trajectories with force control to the controller.

Usage

In general, interaction with the action server should take place through an action client. To facilitate this process, we have written C++ and python wrappers around the simple action client and included them in the package. To use the these clients, look at their code APIs (c++) (python) or the tutorials.

Wiki: ee_cart_imped_action (last edited 2012-03-01 01:41:11 by JennyBarry)