ROS2 コマンドライン操作

Linuxにおける一般的なコマンド

  • cd
    構文:cd <ディレクトリパス>
    機能:作業ディレクトリを変更します。引数が指定されない場合、ユーザーのホームディレクトリに戻ります。
  • pwd
    構文:pwd
    機能:現在の作業ディレクトリの絶対パスを表示します。
  • mkdir
    構文:mkdir [オプション] <ディレクトリ名>
    機能:ディレクトリまたはフォルダを作成します。
  • ls
    構文:ls [オプション] [ディレクトリ名]
    機能:ディレクトリまたはフォルダ内のファイル一覧を表示します。
  • gedit
    構文:gedit <ファイル名>
    機能:geditエディタでファイルを開き編集します。ファイルが存在しない場合は新規作成されます。
  • mv
    構文:mv [オプション] <ソースファイルまたはディレクトリ> <宛先ファイルまたはディレクトリ>
    機能:ファイルまたはディレクトリの名前を変更するか、別のディレクトリに移動します。
  • cp
    構文:cp [オプション] <ソースファイル名またはディレクトリ名> <目的ファイル名またはディレクトリ名>
    機能:ファイルまたはディレクトリをコピーします。複数のソースファイルを目的ディレクトリにコピーすることも可能です。
  • rm
    構文:rm [オプション] <ファイル名またはディレクトリ名…>
    機能:ディレクトリ内の1つ以上のファイルまたはディレクトリを削除します。リンクファイルの場合、リンクのみが削除され、元のファイルは保持されます。
  • sudo
    構文:sudo [オプション] [コマンド]
    機能:システム管理者の権限でコマンドを実行します。

ROS2におけるコマンドライン

すべての操作はros2という総合的なコマンドに統合されています。このコマンドの最初のパラメータは異なる操作の目的を示します。たとえばnodeはノードに関連する操作、topicはトピックに関連する操作などです。具体的な動作は後続のパラメータによって決定されます。

例1

  • ノードの実行
    ROS2で特定のノードを実行するには、ros2 runコマンドを使用します。例えば、テューリングシミュレーションノードとキーボード制御ノードを起動します。
$ ros2 run turtlesim turtlesim_node
$ ros2 run turtlesim turtle_teleop_key

  • ノード情報の確認
$ ros2 node list

特定のノードについて詳しく知りたい場合は、infoサブコマンドを追加します。

$ ros2 node info /turtlesim 

  • トピック情報の確認
    現在のトピック一覧を表示します。
$ ros2 topic list

特定のトピックのメッセージデータを確認するには、echoサブコマンドを使用します。

$ ros2 topic echo /turtle1/pose 

特定のトピックの詳細情報を表示します。

$ ros2 topic info /turtle1/pose


  • トピックメッセージの送信
    乌龟を動かすために、直接コマンドラインからトピックメッセージを送信できます。
トピックを発行し、-rate 1は1秒ごとにメッセージを送信します。turtle1/cmd_velは速度制御のインターフェース、geometry_msgs/msg/Twistはデータ形式です。
$ ros2 topic pub --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"

  • サービスリクエストの送信
    もう一つの烏龟を追加します。
$ ros2 service call /spawn turtlesim/srv/Spawn "{x: 2, y: 2, theta: 0.2, name: ''}"

  • アクション目標の送信
    烏龟が特定の角度に回転するようにしたい場合、シミュレーターに提供されているアクション機能を使用できます。
$ ros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute "theta: 3"

  • コントロールコマンドの記録
    システムの動作中のデータを記録し、後で再現したい場合があります。ROS2のrosbag機能はデータの記録と再生に非常に役立ちます。
$ ros2 bag record /turtle1/cmd_vel
$ ros2 bag play rosbag2_2022_04_11-17_35_40/rosbag2_2022_04_11-17_35_40_0.db3

タグ: ros2 コマンドライン ノード管理 トピック操作 サービス通信

7月21日 21:59 投稿