はじめに
今回もチュートリアルをトレースする備忘.このチュートリアルでは,今後のチュートリアルを進めるためのシミュレータやツールの導入及び実行ができるようにする.そのため細かい解説は省略する.
Turtlesim
Turtlesim は ROS2 を学習するための軽量なシミュレータ.私の環境では ROS2 をソースコードからビルドしているので,その際に Turtlesim もコンパイルされている.
$ source ros2_iron/install/setup.bash
$ ros2 pkg executables turtlesim
turtlesim draw_square
turtlesim mimic
turtlesim turtle_teleop_key
turtlesim turtlesim_node
Turtlesim を起動する.
$ ros2 run turtlesim turtlesim_node
[INFO] [turtlesim]: Starting turtlesim with node name /turtlesim
[INFO] [turtlesim]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]
カメを操作するためのプログラムを起動する.矢印キーとかでカメを移動できる.
$ source ros2_iron/install/setup.bash
$ ros2 run turtlesim turtle_teleop_key
Reading from keyboard
---------------------------
Use arrow keys to move the turtle.
Use G|B|V|C|D|E|R|T keys to rotate to absolute orientations. 'F' to cancel a rotation.
'Q' to quit.
ros2 コマンド
ros2 コマンドを使うと状態確認やアクション等様々な操作をコマンドライン上で実行できる.新しいターミナルを立てて ros2 コマンドで状態を確認してみる.
$ source ros2_iron/install/setup.bash
$ ros2 --help
usage: ros2 [-h] [--use-python-default-buffering] Call `ros2 <command> -h` for more detailed usage. ...
ros2 is an extensible command-line tool for ROS 2.
options:
-h, --help show this help message and exit
--use-python-default-buffering
Do not force line buffering in stdout and instead use the python default buffering, which might be affected by PYTHONUNBUFFERED/-u
and depends on whatever stdout is interactive or not
Commands:
action Various action related sub-commands
bag Various rosbag related sub-commands
component Various component related sub-commands
daemon Various daemon related sub-commands
doctor Check ROS setup and other potential issues
interface Show information about ROS interfaces
launch Run a launch file
lifecycle Various lifecycle related sub-commands
multicast Various multicast related sub-commands
node Various node related sub-commands
param Various param related sub-commands
pkg Various package related sub-commands
run Run a package specific executable
security Various security related sub-commands
service Various service related sub-commands
test Run a ROS2 launch test
topic Various topic related sub-commands
trace Trace ROS nodes to get information on their execution
wtf Use `wtf` as alias to `doctor`
Call `ros2 <command> -h` for more detailed usage.
ノード一覧.
$ ros2 node list
/teleop_turtle
/turtlesim
トピック一覧.
$ ros2 topic list
/parameter_events
/rosout
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose
サービス一覧.
$ ros2 service list
/clear
/kill
/reset
/spawn
/teleop_turtle/describe_parameters
/teleop_turtle/get_parameter_types
/teleop_turtle/get_parameters
/teleop_turtle/get_type_description
/teleop_turtle/list_parameters
/teleop_turtle/set_parameters
/teleop_turtle/set_parameters_atomically
/turtle1/set_pen
/turtle1/teleport_absolute
/turtle1/teleport_relative
/turtlesim/describe_parameters
/turtlesim/get_parameter_types
/turtlesim/get_parameters
/turtlesim/get_type_description
/turtlesim/list_parameters
/turtlesim/set_parameters
/turtlesim/set_parameters_atomically
アクション一覧.
$ ros2 action list
/turtle1/rotate_absolute
rqt ツール
rqt では ros2 コマンドで行っていたような操作を GUI 上で行うことができる.
今回のチュートリアルでは,Plugins > Services > Service Caller からカメのスポーンと軌跡のプロパティを設定してみる.
spawn service
rqt を起動して,Service Caller から /spawn サービスを選択.適当に Topic に値を設定して Call ボタンを押す.
$ rqt
そうするとカメがスポーンする.
set_pen service
今度は /turtle1/set_pen を開いてき適当に値を設定して Call を押す.
Termenal2 からカメを操作すると軌跡が設定したとおりの色になった.
remapping
ここまでのチュートリアルでカメは2匹になったが,2匹目のカメは操作できない状態だった.ここでは cmd_vel トピックをリマップして追加した2匹目のカメを操作する.
$ source ros2_iron/install/setup.bash
$ ros2 run turtlesim turtle_teleop_key --ros-args --remap turtle1/cmd_vel:=t2/cmd_vel
Reading from keyboard
---------------------------
Use arrow keys to move the turtle.
Use G|B|V|C|D|E|R|T keys to rotate to absolute orientations. 'F' to cancel a rotation.
'Q' to quit.
こんな感じ.
おわりに
まだトピックベースのサービスやアクション等の勝手が分かってないが,とりあえずツールはなんとなく使えるようになった.
コメント