差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| articles:robot_frame [2021/06/07 16:38] – [ロボットのための座標系表現] Takashi Suehiro | articles:robot_frame [2021/06/29 21:28] (現在) – [座標系の導入] Takashi Suehiro | ||
|---|---|---|---|
| 行 4: | 行 4: | ||
| 三次元空間での位置・姿勢の表現として[[articles: | 三次元空間での位置・姿勢の表現として[[articles: | ||
| 非常に優れたものとなっている. | 非常に優れたものとなっている. | ||
| + | |||
| + | しかし,このロボットの動作や作業環境を「座標系」で表現するということが | ||
| + | ロボットの初学者にはなかなか浸透しない. | ||
| + | 一回きりや単純な繰り返し動作なら座標系なしでも良いが, | ||
| + | いろいろ条件を変えて実験したり,カメラからの情報で動作させたり, | ||
| + | コンピュータで表示したりシミュレーションしたり, | ||
| + | 論文できちんと記述しようとしたり,などなど, | ||
| + | 座標系を使い慣れていないとなかなか不便なことになる. | ||
| + | |||
| + | またロボットアームの順運動学,逆運動学の計算,ハンドアイキャリブレーション, | ||
| + | RGB-Dカメラを用いた物体の位置計測にも座標系は重要な役割を果たしている. | ||
| + | |||
| + | |||
| + | |||
| + | ===== ロボットの動作の表現 ===== | ||
| ロボットの動作をその関節パラメタ(関節角度,角速度など)で表現する方法は簡便であり | ロボットの動作をその関節パラメタ(関節角度,角速度など)で表現する方法は簡便であり | ||
| 行 16: | 行 31: | ||
| 視点やロボットを変更した場合には学習をやり直す必要があるし, | 視点やロボットを変更した場合には学習をやり直す必要があるし, | ||
| 複数の連続する動作による作業全体を通して学習することはまだできていない. | 複数の連続する動作による作業全体を通して学習することはまだできていない. | ||
| + | |||
| + | table上のplace_aにあるboxをplace_bに動かすという単純な作業を例に考えてみる(図1). | ||
| + | |||
| + | [{{ articles: | ||
| + | ロボットでこの作業を実現する単純な方法は前節で述べたように | ||
| + | 要所の関節角を覚えておいてそれを再生するというものである. | ||
| + | |||
| + | しかし,この方法では以下のような場合すぐに困ってしまう. | ||
| + | * ロボットの設置位置が少しずれたら?((移動するロボットなら確実に問題になる)) | ||
| + | * 違うロボットだったら? | ||
| + | * カメラのデータで動かすには? | ||
| + | |||
| + | そもそも「boxがplace_aにある」とはどういうことなのかすら良く分からない | ||
| + | ((たとえば具体的にはコンピュータ上でどう表現されることなのかということ)). | ||
| + | |||
| + | ===== 座標系の導入 ===== | ||
| + | |||
| + | 一般的に空間中の位置を表現するには座標値を用いることが多い. | ||
| + | しかし,ロボットが行う作業においては位置だけでなくその姿勢も問題になる. | ||
| + | |||
| + | [{{ articles: | ||
| + | |||
| + | 物体の位置だけでなく姿勢も表現するには,物体に固定された座標系を考え | ||
| + | その座標系の位置と姿勢で表現するのが一般的なやり方となる(図2). | ||
| + | |||
| + | ロボットの動作記述に座標系の概念を導入したのは | ||
| + | スタンフォード大学人工知能研究所で開発されたALというロボット用言語 | ||
| + | ((S. Mujitaba, R. Goldman:" | ||
| + | であった.ALではこのような座標系を" | ||
| + | (( | ||
| + | 私は,このframeという呼び方はロボット特有のものかと思っていたがそうではないようだ. \\ | ||
| + | |||
| + | [[https:// | ||
| + | |ウィキペディアの「国際天文基準座標系」]]の記述では, | ||
| + | 英語においては、座標系を規定する概念や考え方を" | ||
| + | それを実現した座標系の実体を" | ||
| + | とある. \\ | ||
| + | |||
| + | また[[https:// | ||
| + | 「基準系(frame of reference)」という項目がある. \\ | ||
| + | |||
| + | frameの用語は古くから使われていたようである. | ||
| + | )) | ||
| + | ロボットの動作だけでなく,その環境やロボットの操作による環境の変化を統一的に管理できるようになっている. | ||
| + | このようなロボットの動作記述における座標系の導入はその後のロボットの作業プログラミングに大きな影響を与えた. | ||
| + | |||
| + | たとえばboxの底面中心に座標系を設定/固定してtable上のしかるべき位置・姿勢に | ||
| + | place_aを設定すれば「boxがplace_aにある」というのは,この二つの座標系が | ||
| + | 一致した状態であるということになる. | ||
| + | |||
| + | ロボットがboxを掴んで移動させる場合には,関節角度ではなく | ||
| + | handに設定した座標系がbox座標系に対してしかるべき位置・姿勢関係に | ||
| + | なるようにして把持し,box座方形がplace_bに一致するように | ||
| + | 動かすという形で記述する. | ||
| + | |||
| + | またALでは座標系の親子関係を管理しているので,boxがhandで掴まれたという | ||
| + | 情報を与えてやると, | ||
| + | 指令として与えることができるようになっていた. | ||
| + | |||
| + | このように座標系を用いて記述することによって,ロボットのベース位置や | ||
| + | ロボットの種類が変化しても,ロボットの動作を計算により簡単に変更できるし, | ||
| + | カメラなどのセンサ情報を基に動作させることも容易になる. | ||
| + | |||
| + | ===== 座標系がいっぱい! ===== | ||
| + | |||
| + | 図2の座標系の関係やそのおよその決まり方を図3に示す.$T$は座標系の関係を[[articles: | ||
| + | 表したものである. | ||
| + | [{{ articles: | ||
| + | このようにロボットの働く環境やロボットの動作を座標系および座標系の連鎖を用いて表すのは | ||
| + | 何のためかといえば, | ||
| + | |||
| + | * ロボットが働く環境を統一的に表現する | ||
| + | * カメラや他のセンサと連携させる | ||
| + | * ロボットが行う作業をロボットの構造によらずに記述する | ||
| + | * 局所的な表現と全体的な表現を統一的につなげる(座標系の連鎖) | ||
| + | ということになる. | ||
| + | |||
| + | このとき問題になるのが, | ||
| + | * 座標系をどう表現するか | ||
| + | * 座標系間の関係をどう表現するか | ||
| + | * 位置・姿勢データは,どの座標系で表現されたものか | ||
| + | * ある座標系での表現を他の座標系での表現に変換するにはどうするか | ||
| + | であり,これらについていろいろと説明をしていく. | ||
| + | |||
| + | 最終的には,ロボットの動作・作業に座標系をどのように使うかということの理解の助けになればと考えている. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| - | 英語においては、座標系を規定する概念や考え方を" | ||
| - | https:// | ||
| - | http:// | ||
| - | https:// | ||
| - | ブリタニカ frame of reference | ||
| - | ===== 座標系の表現 ===== | ||
| - | ===== 参考文献 ===== | ||
| - | S. Mujitaba, R. Goldman:" | ||