見出し最後の()内で記載されているファイルが,手順で得られる成果物.
-
RobotAssemblerでロボットを組み立て,bodyファイルを保存する.(choreonoid_ros_control_assembler_sample/model/one_joint_robot.body)
-
bodyファイルを基にxacroファイルを作成する.(choreonoid_ros_control_assembler_sample/model/one_joint_robot.xacro)
-
bodyファイルはlink_1->link_2->link_3の構造のため,それをlink_1->joint_a->link_2->joint_b->link3の形に書き直す.その際にxacro内のjointタブのnameプロパティとlinkタブのnameプロパティはかぶって構わない(ようだ).
-
xacroファイルの先頭に以下のマクロを記載する.(もしくは,別ファイルにしてincludeする)
位置制御用マクロ
``` <xacro:macro name="joint_position_trans_v0" params="name"> <transmission name="${name}_trans"> <type>transmission_interface/SimpleTransmission</type> <joint name="${name}"> <hardwareInterface>PositionJointInterface</hardwareInterface> </joint> <actuator name="${name}_motor"> <hardwareInterface>PositionJointInterface</hardwareInterface> </actuator> </transmission> </xacro:macro> ```
-
制御を行いたいjointについて,xacroの最後に以下のように追記する. 'LINK_0'を制御したい場合
``` <xacro:joint_position_trans_v0 name="LINK_0"/> ```
注意1 : 単位系がmであることに注意する. 注意2 : 読み込む対象のメッシュも単位系がmでないといけないことに注意する. もしくは scaleタグを入れる.
-
-
位置制御用のconfigを作成する.(choreonoid_ros_control_assembler_sample/config/coint_control.yaml)
-
プロジェクトファイルを作成する.(choreonoid_ros_control_assembler_sample//projectAssembleRobot.cnoid)
- 'rosrun choreonoid_ros choreonoid'とコマンドを打ちchoreonoidを立ち上げる.
- File -> New -> Worldと選択し Worldを作成する.
- Itemsで'World'を選択した状態で,File -> Load -> Bodyと選択し,作成したBodyをロードする
- Itemsで'World'を選択した状態で,File -> Load -> Bodyと選択し,'catkin_ws/src/choreonoid/share/model/misc'にあるfloor.bodyをロードする.
- Itemsで'World'を選択した状態で,File -> New -> WorldROSを選択する.
- Itemsで'World'を選択した状態で,File -> New -> AISTSimulatorを選択する.
- Itemsで'AssembleRobot'(ロードしたロボット)を選択した状態で,File -> New -> BodyROSを選択する.
- Itemsで'AssembleRobot'(ロードしたロボット)を選択した状態で,File -> New -> ROSControlを選択する.
- ROSControlを選択,Propertyをクリックし,Name spaceにロボット名を入れる.
-
launchファイルを作成する.(choreonoid_ros_control_assembler_sample/launch/choreonoid.launch, choreonoid_ros_control_assembler_sample/launch/control.launch)
-
ReadMeの手順に従い,実行する.
- どこの名前を統一すべきか?
- 現状'AssembleRobot'や'LINK_0'はどことどこが紐づいているかはしっかり把握できていない.(現状コンフリクトしていないので,問題ないはず)
- xacroを手で作成する場合にrvizへの表示方法
$ roslaunch urdf_tutorial display.launch model:=modelfile