-
Notifications
You must be signed in to change notification settings - Fork 32
ソフトウェア構成
Mori edited this page Aug 12, 2018
·
7 revisions
motoman_project
のソフトウェア構成の概要を図で示します。
下図のようになっています。プライマリとなるのがmotoman_project
です。
ざっくり下図の通りです。
ざっと比較できるように、それぞれの構成図を併記します。実機側の作りがかなり異なることが見て取れると思います。シミュレータ側はGazeboを使うので、当然変わりはありません。
このIssueでの議論とソースコードを参照して書いてあります。変なことが書いてあったり、ここが分からないとかあれば、遠慮なくご指摘ください。
本リポジトリのソフトウェア構成について最も注意すべき点は、Motoman側のコントローラがros_control
に適合していないという点です。そのため実機・シミュレーションで、共通のros_controller
とHardwareInterface
を用いるという、一般的なros_control
の設計思想とは異なる作りになります。
Yaskawa
のROS-I
版コントローラであるmotoman_driver
に関しては、MotoPlus
なるソフトウェアの仕様に合わせてそのような構成になるとのことです。
とはいえ多分、これはYaskawa
だからという話ではなく、おそらくメーカ問わず手っ取り早くROS-I
対応させようとしたときに生じてしまう問題です。ros_controller
を作るとなると、既存の制御器をまるごと作り直しになりますし、パソコンでしかもROSの不安定な周期で制御するとなった瞬間に既存のリアルタイム性を担保できなくなるとか、結構な色々な問題を抱えることになるかと。
-
robot_state_publisher
とTF
メッセージはなんとなく追加。
-
RobotHW
を使用しない。- そのかわり、中身はブラックボックスに。
- 会社の技術資産だから守っているのと、流用したほうが楽ちんだから。
-
ControllerManager
を使用しない。 -
JointStateController
を使用しない。
-
ROS-I
のmotoman_driver
を使用する。 -
Moveit!
のactionlib_msg
をハンドリングするためのmotoman_control_node
を使用する(研究室オリジナルで作っている)。-
motoman_driver
が指令値としてサブスクライブするtopic_msg
に変換をかけている。 - 目標到達判定もここでやっている。
action_server
のgoal
状態を判定するため。
-
-
JointStateController
の代わりにjoint_states
をパブリッシュしているのは、多分motoman_driver
だよね(それ以外この情報を持っている人がいないと思う)。