gggggraziegrazie

graizegrazieさんのやったこと、学んだことを記録する雑記帳です

ROSにおけるodomフレームの役割

Navigaitonパッケージのamclを使うと、odomフレームがちょろちょろ動くのが確認できると思います。どうしてフレームが動くんだろうと不思議に思っていたので、調べてみました。推測も入っていますが、下記に調べたことなどを纏めます。

ROSの下記を見ると、

  • map : 自己位置推定の基準フレーム。
  • odom: オドメトリの基準フレーム。

となっています。map - odom間の位置関係は、特に何も無ければ一定です。ただし自己位置推定の結果としてロボットの座標が修正されると、その位置関係は変化します。なぜならば、odomフレームにおける軌跡(オドメトリ)の形状は一定となる必要があります。そのため、map上でのロボットの位置が変わる、つまりオドメトリの最新座標の場所が変化します。しかしオドメトリの形状が固定という制約があります。そのため、つじつま合わせにodomフレームが動きます(sendTransformでmap - base_linkの位置関係が更新させるのがトリガとなり、芋づる式にbase_link - odomが変化→map - odom間が変化となります)。

answers.ros.org
www.ros.org