urdfモデルのTF配信
robot_state_publisher
を使う
$ros2 run robot_state_publisher robot_state_publisher ${path_to_urdf}
RobotModelの表示 in rviz2
-
rviz2 を起動
-
画面左下のbtn:[add]をクリック
-
menu:By display type[RobotModel > OK] をクリック
ファイルを直接指定
-
menu:RobotModel[Discription Source > File]を選択
-
menu:RobotModel[Description File]で表示したいURDFファイルのパスを指定
嬉しいのが,表示のON/OFFの切替時にファイルを読み直してくれるようなので,RobotModelの表示切替のチェックボックスをON→OFF→ON とすると更新されること.
robot_descriptionトピックを購読
-
menu:RobotModel[Discription Source > Topic]を選択
-
menu:RobotModel[Description Topic]で
/robot_description
を指定
ハマりポイント
- メッシュが見つからない的なエラーが出る
-
もう一回
colcon build
コマンドを実行する.
以下のようなpackage://${package_name}
のパスはinstallディレクトリ内にコピー(シンボリックリンク)されたパスの方を探しに行くため, 一度colcon build
した後に追加したファイルやリネームした場合は見つからないと言われる.
<!--- ... --->
<mesh filename="package://d03_description/meshes/wheel_and_hub.stl" scale="0.001 0.001 0.001"/>
<!--- ... --->
Warning
|
この辺り, colcon build のオプションの --symlink-install が関係する気がしなくもないので後で調べておく.
|
- rqt_guiが見つからない
-
起動方法が変わってる.
ros2
コマンド経由ではなく,直接バイナリを実行する. https://answers.ros.org/question/314475/how-to-run-rqt_graph-in-ros2/
rqt_graph
- joint_state_publisherがいない
-
dummy_sensor
パッケージのdummy_joint_states
が代替っぽい
https://index.ros.org/doc/ros2/Tutorials/dummy-robot-demo/ - rqt_publisherでJointStateをpublisshできない
-
name
フィールドを埋めようと['a','b']
等を打つとエラーになるため,コマンドラインでごまかす.
ros2 topic pub /joint_states -r 1 sensor_msgs/msg/JointState "{ header: {stamp: {sec: 0, nanosec: 0}, frame_id: 'a'}, name: ['wheel_left_joint', 'wheel_right_joint', 'caster_housing_left_joint', 'caster_wheel_left_joint','caster_housing_right_joint', 'caster_wheel_right_joint'], position: [0.0,0, 0,0,0,0]}"