diamondback:Only showing information from the released package extracted on Unknown. No API documentation available. Please see this page for information on how to submit your repository to our index.
electric:Documentation generated on March 01, 2013 at 05:03 PM
fuerte:Documentation generated on December 12, 2013 at 12:03 PM
groovy:Documentation generated on December 02, 2013 at 01:13 PM
hydro:Documentation generated on August 26, 2015 at 03:37 PM (doc job).
indigo:Documentation generated on June 07, 2019 at 04:59 AM (doc job).
jade:Only showing information from the released package extracted on October 08, 2017 at 10:16 AM. No API documentation available. Please see this page for information on how to submit your repository to our index.
kinetic:Documentation generated on June 10, 2019 at 10:12 PM (doc job).
lunar:Documentation generated on June 08, 2019 at 05:58 AM (doc job).
melodic:Documentation generated on March 07, 2023 at 11:50 AM (doc job).
noetic:Documentation generated on March 06, 2023 at 11:46 AM (doc job).
This package contains the robot model that is used by the realtime
controllers
inside controller
manager. This robot model focuses on controlling the robot
mechanism in a realtime control loop, and therefore it only contains
the components of a robot that are relevant in realtime: the robot
joints (with encoders, transmisisons and actuators) and the
kinematic/dynamic model of the robot.
The pr2_mechanism_model package is well tested and is released with a stable API.
Author: Eric Berger berger@willowgarage.com, Stuart Glaser, Wim Meeussen
This package contains the robot model that is used by the realtime
controllers
inside controller
manager. This robot model focuses on controlling the robot
mechanism in a realtime control loop, and therefore it only contains
the components of a robot that are relevant in realtime: the robot
joints (with encoders, transmisisons and actuators) and the
kinematic/dynamic model of the robot.
The pr2_mechanism_model package is well tested and is released with a stable API.
Author: Eric Berger berger@willowgarage.com, Stuart Glaser, Wim Meeussen
This package contains the robot model that is used by the realtime
controllers
inside controller
manager. This robot model focuses on controlling the robot
mechanism in a realtime control loop, and therefore it only contains
the components of a robot that are relevant in realtime: the robot
joints (with encoders, transmisisons and actuators) and the
kinematic/dynamic model of the robot.
The pr2_mechanism_model package is well tested and is released with a stable API.
Author: Eric Berger berger@willowgarage.com, Stuart Glaser, Wim Meeussen
This package contains the robot model that is used by the realtime
controllers
inside controller
manager. This robot model focuses on controlling the robot
mechanism in a realtime control loop, and therefore it only contains
the components of a robot that are relevant in realtime: the robot
joints (with encoders, transmisisons and actuators) and the
kinematic/dynamic model of the robot.
The pr2_mechanism_model package is well tested and is released with a stable API.
Author: Eric Berger berger@willowgarage.com, Stuart Glaser, Wim Meeussen
This package contains the robot model that is used by the realtime
controllers
inside controller
manager. This robot model focuses on controlling the robot
mechanism in a realtime control loop, and therefore it only contains
the components of a robot that are relevant in realtime: the robot
joints (with encoders, transmisisons and actuators) and the
kinematic/dynamic model of the robot.
The pr2_mechanism_model package is well tested and is released with a stable API.
Maintainer status: maintained
Maintainer: Austin Hendrix <ahendrix AT willowgarage DOT com>
Author: Eric Berger berger@willowgarage.com, Stuart Glaser, Wim Meeussen
This package contains the robot model that is used by the realtime
controllers
inside controller
manager. This robot model focuses on controlling the robot
mechanism in a realtime control loop, and therefore it only contains
the components of a robot that are relevant in realtime: the robot
joints (with encoders, transmisisons and actuators) and the
kinematic/dynamic model of the robot.
The pr2_mechanism_model package is well tested and is released with a stable API.
Maintainer status: maintained
Maintainer: Devon Ash <dash AT clearpathrobotics DOT com>
Author: Eric Berger berger@willowgarage.com, Stuart Glaser, Wim Meeussen
This package contains the robot model that is used by the realtime controllers insidecontroller manager. This robot model focuses on controlling the robot mechanism in a realtime control loop, and therefore it only contains the components of a robot that are relevant in realtime: the robot joints (with encoders, transmisisons and actuators) and the kinematic/dynamic model of the robot.
The pr2_mechanism_model package is well tested and is released with a stable API.
Maintainer status: maintained
Maintainer: Devon Ash <dash AT clearpathrobotics DOT com>
Author: Eric Berger berger@willowgarage.com, Stuart Glaser, Wim Meeussen
This package contains the robot model that is used by the realtime
controllers
inside controller
manager. This robot model focuses on controlling the robot
mechanism in a realtime control loop, and therefore it only contains
the components of a robot that are relevant in realtime: the robot
joints (with encoders, transmisisons and actuators) and the
kinematic/dynamic model of the robot.
The pr2_mechanism_model package is well tested and is released with a stable API.
Maintainer status: unmaintained
Maintainer: ROS Orphaned Package Maintainers <ros-orphaned-packages AT googlegroups DOT com>
Author: Eric Berger berger@willowgarage.com, Stuart Glaser, Wim Meeussen
This package contains the robot model that is used by the realtime
controllers
inside controller
manager. This robot model focuses on controlling the robot
mechanism in a realtime control loop, and therefore it only contains
the components of a robot that are relevant in realtime: the robot
joints (with encoders, transmisisons and actuators) and the
kinematic/dynamic model of the robot.
The pr2_mechanism_model package is well tested and is released with a stable API.
Maintainer status: unmaintained
Maintainer: ROS Orphaned Package Maintainers <ros-orphaned-packages AT googlegroups DOT com>
Author: Eric Berger berger@willowgarage.com, Stuart Glaser, Wim Meeussen
This package contains the robot model that is used by the realtime
controllers
inside controller
manager. This robot model focuses on controlling the robot
mechanism in a realtime control loop, and therefore it only contains
the components of a robot that are relevant in realtime: the robot
joints (with encoders, transmisisons and actuators) and the
kinematic/dynamic model of the robot.
The pr2_mechanism_model package is well tested and is released with a stable API.
Maintainer status: unmaintained
Maintainer: ROS Orphaned Package Maintainers <ros-orphaned-packages AT googlegroups DOT com>
Author: Eric Berger berger@willowgarage.com, Stuart Glaser, Wim Meeussen
This package contains the robot model that is used by the realtime
controllers
inside controller
manager. This robot model focuses on controlling the robot
mechanism in a realtime control loop, and therefore it only contains
the components of a robot that are relevant in realtime: the robot
joints (with encoders, transmisisons and actuators) and the
kinematic/dynamic model of the robot.
The pr2_mechanism_model package is well tested and is released with a stable API.
Maintainer status: maintained
Maintainer: ROS Orphaned Package Maintainers <ros-orphaned-packages AT googlegroups DOT com>
Author: Eric Berger berger@willowgarage.com, Stuart Glaser, Wim Meeussen
The pr2_mechanism_model package contains the pr2_mechanism_model::RobotState C++ class, which is an interface to the robot joints and a description of the robot model. The RobotState gives easy access to individual joints. To work with a kinematic chain that contains multiple joints, pr2_mechanism_model contains a pr2_mechanism_model::Chain tool that represents a full kinematic chain and interfaces with the RobotState.
The following diagram shows how the mechanism model is set up on the robot and in simulation.
Components
pr2_mechanism_model::RobotState
pr2_mechanism_model::RobotState is the main class in this package. When a controller gets initialized, the controller manager passes the controller a pointer to the RobotState (see the controller interface). The robot state describes both the kinematic/dynamic model of the robot and the current state of the robot. The state of the robot is defined by the position/velocity/effort of the joints in the robot. The model of the robot is a urdf object, as defined in the urdf package. Additionally, the RobotState provides access to the 'controller time', the time at which a controller cycle is started. To see an example on how to use the RobotState, check out the controllers tutorials.
pr2_mechanism_model::JointState
The pr2_mechanism_model::RobotState provides access by name to all the pr2_mechanism_model::JointStates it contains. To get access to a JointState, use the following method:
From a JointState you can extract joint position, effort, velocity, and command the desired joint effort: To get e.g. the measured joint position from the JointState, use:
double position = js->position_;
or, to set the commanded effort on JointState, use:
js->commanded_effort_ = my_command;
The tutorials give more examples on how to use the JointState.
The JointState also gives access to the joint model, which contains things like the joint type, axis, reference position, etc. To e.g. get the joint type, use:
if (js->joint_->type == urdf::Joint::Continuous)
ROS_INFO("This is a continuous joint");
For reference documentation, check out the code api. From a JointState you can read the measured position, measured velocity and measured effort effort, and write the commanded effort.
The pr2_mechanism_model::RobotState also provides access to the transmissions between the motors and the joints. Typically you should not need the transmissions, unless you are using some advanced dynamic model, or you are calibrating the joints. To get access to a JointState, use the following method:
For details on the transmission description format, check out the transmission elements page.
Controller time
Every time a controller cycle is started, the controller manager records the time. This time can be accessed by all controllers through the pr2_mechanism_model::RobotState. When a controller e.g. needs to compute the duration between two consecutive update loops, it should use the controller time, not the system time. In contrast to the system time, the controller time is not affected by the time other controllers consume in their update loop. Moreover, the controller time is the best measure of when the communication with the hardware actually occurs. To get access to the controller time, use:
ros::Time time = robot_state_->getTime();
Robot model
The pr2_mechanism_model::RobotState contains a urdf robot description object. There is lots of documentation on the urdf model, and there are even a number of tutorials you could look at. To get access to the urdf model use:
urdf::Model m = robot_state_->robot_->robot_model_;
Chain
The pr2_mechanism_model::Chain class provides an easy way to work with a kinematic chain that consists of multiple joints. Instead of finding all the joints by iterating through the RobotState, the Chain will pull out all the joints between a given root and tip link: