🤖
ROS2 Tips: シミュレーション時刻
概要
- Gazeboなどでシミュレーションをする場合に利用する時刻の設定方法
- clockトピックを参照するようになる
- 参考
方法
下記の2つの方法がある。
- 各ノードパラメータに、use_sim_timeを設定する
- 各ノードごとに設定する必要がある
- 他のノードには影響されない
- グローバルパラメータ use_sim_timeを設定する。
- 一度設定すれば、全てのノードに反映される
今回は、上記2のグローバルパラメータを用いた方法の具体的な設定方法について以下に記載する。
動作確認環境
- ROS2 Foxy
- Ubuntu 20.04
launchファイルの記述方法
launch.pyの場合
import launch
import launch_ros.actions
def generate_launch_description():
return launch.LaunchDescription([
launch_ros.actions.SetParameter(name='use_sim_time', value=True),
# 以下に記載のノードに反映される
])
launch.xmlの場合
<launch>
<set_parameter name="use_sim_time" value="true"/>
<!-- 以下に記載のノードに反映される -->
</launch>
-
set_parameterタグは、公式ドキュメントにはまだ記載がない
- launch.pyの@expose_action(xxx)タグが使える(以下を参照)
- set_parameterは以下に記載がある
Discussion