Show EOL distros: 

pr2_mechanism: pr2_controller_interface | pr2_controller_manager | pr2_hardware_interface | pr2_mechanism_diagnostics | pr2_mechanism_model | pr2_mechanism_msgs | realtime_tools

Package Summary

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.

pr2_mechanism: pr2_controller_interface | pr2_controller_manager | pr2_hardware_interface | pr2_mechanism_diagnostics | pr2_mechanism_model | pr2_mechanism_msgs | realtime_tools

Package Summary

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.

pr2_mechanism: pr2_controller_interface | pr2_controller_manager | pr2_hardware_interface | pr2_mechanism_diagnostics | pr2_mechanism_model

Package Summary

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.

pr2_mechanism: pr2_controller_interface | pr2_controller_manager | pr2_hardware_interface | pr2_mechanism_diagnostics | pr2_mechanism_model

Package Summary

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.

pr2_mechanism: pr2_controller_interface | pr2_controller_manager | pr2_hardware_interface | pr2_mechanism_diagnostics | pr2_mechanism_model

Package Summary

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
  • License: BSD
  • Source: git https://github.com/PR2/pr2_mechanism.git (branch: hydro-devel)
pr2_mechanism: pr2_controller_interface | pr2_controller_manager | pr2_hardware_interface | pr2_mechanism_diagnostics | pr2_mechanism_model

Package Summary

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
  • License: BSD
  • Source: git https://github.com/pr2/pr2_mechanism.git (branch: indigo-devel)

Package Summary

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
  • License: BSD
pr2_mechanism: pr2_controller_interface | pr2_controller_manager | pr2_hardware_interface | pr2_mechanism_diagnostics | pr2_mechanism_model

Package Summary

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
  • License: BSD
  • Source: git https://github.com/pr2/pr2_mechanism.git (branch: kinetic-devel)
pr2_mechanism: pr2_controller_interface | pr2_controller_manager | pr2_hardware_interface | pr2_mechanism_diagnostics | pr2_mechanism_model

Package Summary

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
  • License: BSD
  • Source: git https://github.com/pr2/pr2_mechanism.git (branch: kinetic-devel)
pr2_mechanism: pr2_controller_interface | pr2_controller_manager | pr2_hardware_interface | pr2_mechanism_diagnostics | pr2_mechanism_model

Package Summary

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
  • License: BSD
  • Source: git https://github.com/pr2/pr2_mechanism.git (branch: melodic-devel)
pr2_mechanism: pr2_controller_interface | pr2_controller_manager | pr2_hardware_interface | pr2_mechanism_diagnostics | pr2_mechanism_model

Package Summary

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
  • License: BSD
  • Source: git https://github.com/pr2/pr2_mechanism.git (branch: melodic-devel)

概観

pr2_mechanism_modelパッケージはロボットJointへのインタフェースとロボットモデルの記述であるpr2_mechanism_model::RobotStateC++クラスです。RobotStateは個別のJointに容易なアクセスを与えます。pr2_mechanism_modelが含んでいる並列のJointを含むキネマティックのチェーンと共に働くpr2_mechanism_model::Chainツールが完全なキネマティックのチェーンを表現し、RobotStateとインタフェースで接続します.

次のダイアグラムはロボットの上に、そしてシミュレーションでメカニズムモデルがどのように設定されるか示します

mechanism_model.png

Components

pr2_mechanism_model::RobotState

pr2_mechanism_model::RobotStateはこのパッケージの主なクラスです。 コントローラーが初期化されるとき、controller managerが(controller interface参照)コントローラーにRobotStateへのポインタを渡します。ロボット状態はロボットのキネマティックの / ダイナミックなモデルと現在のロボットの状態両方を記述します。ロボットの状態はロボットにおけるJointの位置/速度/ Effortによって定義されます。 urdf packageで定義されるように、ロボットのモデルはurdfオブジェクトです。さらに、RobotStateは'controller time'へのアクセスを提供し、コントローラーサイクルである時間がスタートされます。どのようにRobotStateを使うべきかについて、例を見るために、controllers tutorialsをチェックしてください。

pr2_mechanism_model::JointState

pr2_mechanism_model::RobotStateそれが含むすべてのpr2_mechanism_model::JointStateへの名前によってのアクセスを提供します。JointStateへのアクセスを得るために、次のメソッドを使ってください:

JointState* js = robot_state_->getJointState(name);

JointStateからあなたはJoint位置、Effort、速度とコマンド、望ましいJoint Effort、を抽出することができます:JointState、例えば測られたジョイントの位置を手に入れるために以下を使います:

double position = js->position_;

あるいは、JointStateの上に命令されたEffortを設定するために:

js->commanded_effort_ = my_command;

どのようにJointStateを使うべきかについて、tutorialsはもっと多くの例を与えます。 JointStateは同じくJointタイプ、軸、参照位置などのような物を含むJointモデルにアクセスを与えます。例えばJointのタイプを得るには:

if (js->joint_->type == urdf::Joint::Continuous)
ROS_INFO("This is a continuous joint");

urdfAPIドキュメンテーションはすべての詳細を提供します。

参考ドキュメンテーションのために、code apiをチェックアウトしてください。JointStateからあなたは測定された位置、測定された速度と測定されたEffort を読んで、そして命令されたEffortを書くことができます。

URDF Safety Controller Limits

クラスメンバ urdf::Joint::safety

js->joint_->safety

がJointの安全コントローラーposition and velocity limitsの構成を設定するために使われるさまざまなパラメータを含んでいます。 詳細は code api を参照してください.

Transmissions

pr2_mechanism_model::RobotStateはモーターとJointの間に同じくTransmissionへのアクセスを提供する.一般に、あなたが若干の進歩したダイナミックなモデルを使っていないなら<あるいはあなたはJointを調整しているなら、あなたはTransmissionを必要としません。JointStateへのアクセスを得るために、次のメソッドを使ってください:

Transmission* tr = robot_state_->getTransmission(name);

詳細はcode api を参照してください.

Transmission記述を参照するにはtransmission elements ページをチェックアウトしてください.

Controller time

毎回、コントローラサイクルがスタートされ、controller managerは時間を記録します。 この時間は、pr2_mechanism_model::RobotStateを通してすべてのコントローラーによってアクセスされることができます。例えばコントローラーが2つの連続したアップデートの間の持続時間をループで計算する必要があるとき、それはシステム時間ではなく、コントローラー時間を使うべきです。システム時間と対比して、コントローラー時間は他のコントローラーがそれらのアップデートループで費やす時間によって影響を受けていません。さらに、コントローラー時間はハードウェアとのコミュニケーションがいつ実際に起こるかについての最も良い方法です。コントローラー時間をアクセスるためには:

ros::Time time = robot_state_->getTime();

Robot model

pr2_mechanism_model::RobotStateurdf ロボット記述オブジェクトを含んでいます。urdfモデルにたくさんのdocumentation があります、そしてあなたが見ることができる多くのtutorialsあります。 urdfモデルのアクセスを得るには:

urdf::Model m = robot_state_->robot_->robot_model_;

Chain

pr2_mechanism_model::Chainクラスが並列のJointから成り立つキネマティックのチェーンと共に働く容易な方法を提供します。RobotStateを反復することによって、すべてのJointを見いだす代わりに、Chainは与えられたルートと先端リンクの間にすべてのJointを引き出すでしょう:

pr2_mechanism_model::Chain chain;
chain.init(robot_state, root_name, tip_name);

ChainからあなたはすべてのJointのポジション/速度/Effortを受けて、そしてすべてのJointのEffortを設定することができます:

KDL::JointArray jnt_pos;
chain.getPositions(jnt_pos);

KDL::JointArrayVel jnt_pos_vel;
chain.getVelocities(jnt_pos_vel);

KDL::JointArray jnt_eff;
chain.getEfforts(jnt_eff);

KDL::JointArray jnt_eff;
chain.setEfforts(jnt_eff);

チェーンからあなたは同じくKDL::Chainを抽出することができます

KDL::Chain kdl_chain;
chain.toKDK(kdl_chain);

詳細は code API を参照.

Usage Documentation

pr2_mechanism_modelは、リアルタイムコントローラーを書くとき、使われます。 pr2_mechanism_model::RobotStatepr2_mechanism_model::JointStateクラスをどう使うかのサンプルコードは、this tutorial on writing a realtime joint controllerをチェックアウトしてください。デカルト制御に関するpr2_mechanism_model::Chainオブジェクトの使用方法の例を見るにはthis tutorial on writing a realtime Cartesian controllerをチェックアウトしてください。

Wiki: ja/pr2_mechanism_model (last edited 2016-08-16 05:00:27 by Crescent)