ROSの一般的なコンポーネント(2つ)-TF座標変換

ROSの一般的なコンポーネント(2つ)-TF座標変換

概要概要

座標変換は、ロボット工学において非常に基本的であり、非常に重要な概念でもあります。ロボット本体やロボットの作業環境には多くの構成要素が存在することが多く、ロボットの設計や応用にはさまざまな構成要素の位置や姿勢が関わっており、座標系や座標変換の概念を導入する必要があります。 。
座標変換は、ロボットシステムで一般的に使用される基本機能です。ROSの座標変換システムは、TF関数パッケージによって維持されます。

1.TF機能パッケージ

TFは、ユーザーが時間の経過とともに複数の座標系を追跡できるようにする関数パッケージです。ツリーデータ構造を使用して、時間に応じて複数の座標系間の座標変換関係をバッファリングおよび維持します。いつでも、座標系で開発者を支援できます。 。中央の点やベクトルなどの座標の変換を完了します。
ここに画像の説明を挿入

ロボットシステムには通常、多くの3次元座標系があり、ワールド座標系(World Frame)、ベース座標系(Base Frame)、メカニカルグリッパーフレーム(Gripper Frame)、ロボットヘッド座標系(ヘッドフレーム)など TFは、これらの座標系を時間軸として追跡でき、開発者が次のタイプのデータを要求できるようにします。

  • 5秒前、ロボットの頭部座標系とグローバル座標系の関係はどうでしたか?
  • ロボットの中心座標系に対して、ロボットが把持する物体の位置はどこにありますか?
  • グローバル座標系に対するロボットの中心座標系の位置はどこにありますか?

TFは分散システムで操作できます。つまり、ロボットシステムのすべての座標変換関係は、すべてのノードコンポーネントで使用でき、TFメッセージをサブスクライブするすべてのノードは、すべての座標系変換関係データのコピーをバッファリングするため、この構造はデータを保存するために中央サーバーを必要としません。
TF関数パッケージを使用するには、次の2つの手順が必要です
。1)TF変換の監視
システムでリリースされたすべての座標変換データを受信して​​キャッシュし、そこから必要な座標変換関係を照会します。
2)ブロードキャストTF変換
システム内のブロードキャスト座標系間の座標変換関係。システムにはTF変換ブロードキャストの複数の異なる部分が存在する可能性があり、各ブロードキャストは同期なしで座標変換関係をTFツリーに直接挿入できます。

2つ、TFツール

座標系は基本的な概念ですが、複数のスペース間の変換が含まれるため、想像するのは簡単ではありません。そのため、TFは、開発者がTF変換をデバッグおよび作成するのに役立つ豊富なターミナルツールを提供します。
1. tf_monitor
tf_monitorツールの機能は、TFツリー内のすべての座標系のリリースステータスを出力することです。また、パラメータを入力することにより、指定した座標系間のリリースステータスを確認することもできます。

tf_monitor
tf_monitor <source_frame> <target_frame>

2. tf_echo
tf_echoツールの機能は、指定された座標系間の変換関係を表示することです。コマンドの形式は次のとおりです。

tf_echo <source_frame> <target_frame>

3. static_transform_publisher
static_transform_publisherツールの機能は、2つの座標系間の静的座標変換を公開することであり、これら2つの座標系の相対位置は変更されません。
4. view_frames
view_framesは、TFツリー全体の情報を表示するPDFファイルを生成できるビジュアルデバッグツールです。コマンドの実行方法:

rosrun tf view_frames

次に、次のコマンドを使用するか、PDFリーダーを使用して生成されたPDFファイルを表示します。

evince frames.pdf

三、カメのルーチンのTF

第四に、TF放送局を作成します

実現機能:TFブロードキャスターを作成し、座標変換値を作成し、座標変換をリアルタイムで公開します。
プログラミングのアイデア:
1。ROSノードを初期化し、タートルの位置メッセージをサブスクライブします
。2。トピックメッセージを待機してループし、受信後にコールバック関数に入ります。 。このコールバック関数は、座標変換を処理および公開するために使用されます;
3。コールバック関数内にブロードキャスターを定義します;
4。タートルの受信位置情報に従って座標変換値を作成します;
5。定義されたブロードキャスターを介して座標変換を公開します

5、TFリスナーを作成します

実現機能:TFモニターを作成し、2番目のタートルを作成し、座標変換をモニターし、モーション制御命令を発行して、2番目のタートルを最初のタートルに移動させます。
プログラミングのアイデア:
1。ROSノードを初期化し、ノード情報をMASTERに登録します
。2。サービス呼び出しを通じて2番目のタートルを生成し
ます。3。turtle2の速度制御パブリッシャーを
作成します。4。tfリスナーを作成し、turtle2を監視しますturtle1座標変換;
5。座標変換に従って速度制御コマンドを発行します。

6、効果を達成する

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_45661757/article/details/112769158