ロボットコントロール
ロボットコントロールの話題は以下のような構成です。
ロボットの逆運動学
ロボットの運動方程式の構造
ロボットの制御
Operational-space/Task-space control
ロボットの適応制御
ロボットの学習制御
ロボットのNeural Networkを用いた制御
視覚情報を用いたロボット制御
移動ロボットの運動学・動力学
移動ロボットの制御
——————————————————————————————
第1講 講義概要
Sセメでは運動学とかを学んだが、ロボットコントールでは、実際にロボットを動かすことを目標にする
開リンク系の運動学
速度を求めるのを微分逆運動学
Lagrangeの運動方程式
関節角度、角速度、角加速度が与えられるとその運動を実現するのに必要な関節トルクが計算できる
これは逆動力学という
実際には運動方程式を直接計算するよりもNewton-Euler方程式を漸化的に計算した方が良い
第2講 ロボットの逆運動学と最適化
微分運動学について、オイラー角の特異点の問題や偏微分の計算の問題があるので、ツイストとθの間の写像がリンク系の幾何学的な関係から簡単に計算できる
これを基礎ヤコビ行列という
いろんなものを制御する必要があるが、それをタスクという
誤差を最小化するようなやり方はどっちつかずの解になってしまう場合がある
複数のタスクがあったときに優先度をつけることもできる
先ほどは優先度をつけることなく全てまとめていた
本題は逆運動学で、これは大量の研究がある
ヒューマノイドロボットなどでは解析的な解を出すのは非現実的である
それなので、数値計算によって求めるのが一般的である
非線型な評価関数の最適化の問題となる
微分逆運動学では線型な問題を考えてきたが、ここでは非線型となる
ロボットでのリアルタイムとは1ms以内のことを言う
第3講 受動性とPD制御
ロボットの運動方程式の特徴
ロボットのPD制御とその安定性
ロボットの関節角度の目標値が与えられたときにそれを実現するような制御を考える
目標値は逆運動学計算によって求められる
第4講 ロボットの力学パラメータ
リンクiの質量、重心、慣性モーメントを力学パラメータという
ここでやる、分解加速度制御、operational space formulationは力学パラメータがある程度正確にわかっていることを前提とする
力学パラメータ同定問題
ロボットの角度、角速度、角加速度からリンクの力学パラメータを推定する問題
同定可能なパラメータを最小力学パラメータという
2自由度リンクをあえて、質量が0のリンクを考えてモデリングすることがある
2次計画の手法は発展してきて、かなり早く解けるので、半正定値より早く解ける
残りは、動力学に基づく制御
力学パラメータが正確にわかっていることを前提とした制御になる
バネますダンパ系の式と同じになるのでKやDを上手く撮れば目標値に追従させることができる
力学パラメータの推定がダメだと不安定になるので、計算トルク法はあまり使われない
θの空間で制御するのはあまりない、タスクの空間で制御することはよくある
その意味でよく使われるのは分解加速度制御である
環境とのインタラクションを考えるときは柔らかさを持たせるのが良い
第5講 ロボットの動力学に基づく制御
計算トルク法
ロボットの動力学的な特性を積極的に活用する方法である
分解加速度制御
環境とのインタラクション
コンプライアンス
インピーダンス
タスク空間での制御
第6講 ロボットの適応制御

適応制御
制御されるプロセスを自動的・連続的に測定し、それに基づき制御系を自動的・連続的に自己設計していく考え
例えば、果物を持つと特性が変わる
非線型制御・適応制御の基礎としてリアプノフの安定定理に基づく
モデル規範型適応制御
質量などをかんがえなくてもPD制御だけでうまくいくことが証明された
なので、ロボットのパラメータを使う必要がない
しかし、早いロボットの制御をするときには誤差が出てしまう
そこで、パラメータを使った制御を考える
りんごをとるときに当たらないようなもの
第7講 ロボットの学習制御
ぶつからないように軌道計画をするロボットについて説明していた
T-RRTはランダムに局所解を探す
ROS MoveItに乗ってるよお
適応制御はロボットの力学パラメータが未知の場合、パラメータ推定を行いながら、目標軌道を追従する
パラメータを陽に推定すること
学習制御は同様に力学パラメータが未知の場合に繰り返し動作をさせることで目標軌道に追従する方法
ベースはPD制御
大雑把にやって、繰り返してよくする
u0は経験で決めるようなもん
第8講 ロボットのNNを用いた制御
NNによる制御はなんとなくできるがなんとなく失敗してしまう
ファジー制御というものもある
ファジー制御は式で表せないのでテストが大変である
強化学習はロボットの場合では難しいものがある
実は適用制御を基にしたやつでNN制御もある
YなどもNNで近似できる
NNは誤差が収束するという理論がない
二次形式であるリアプノフの安定性をもとにしたものが適用制御のもとである
当時はシンプルだが、少し穴があった
適応制御は理論上必ず小さな誤差の間までいけることがわかる、1990年代ぐらいに技巧的に示された
概念としては、勾配降下法をベースとしたようなものであるが、それを示そうとするとめっちゃ難しい数式になる
証明しなければいけないという呪縛があるので制御はけっこう行き詰まっている
NNも適応制御もベースもほとんど同じで、評価関数を減らしていくのが本質である
基本的には制御理論の方が良い
経路計画とかではNNを用いた理論でうまくいくこともある
シミュレーションではNN制御はめっちゃうまくいくが、外乱が問題である
MATLAB使えばいろんな制御が試せる!
リアプノフの収束定理は大事
第9講 応用例紹介2(視覚情報を用いたロボット制御)
制御したい状態量に対して、制御入力が少ない
→日ホロのミック性、劣駆動性
制御理論として、安定化制御、トラッキング制御がある
ロボットマニピュレータのPD制御
Lagrangeの運動方程式
PD制御則にはロボット質量などの物理パラメータは含まれない
ホロノミック拘束は拘束条件が一般化座標のみで記述される
運動方程式が変わってしまう

このまま制御する方法はない
何かしらの変換を使ったり、変なやつをする
移動ロボットのトラッキング制御
仮想的な参照ロボットに参照入力を与え、その描く軌道に実ロボットを追従させる
kanayamaらの方法は結構シンプルである
移動ロボットの速度、角速度は直接与えることができず、実際は左右輪にトルクを与えることで制御できる

宇宙飛行士もヒホロノミック性を使って制御している
動力学モデルにおける不確定性
速い動作をさせなければ、運動学モデルだけで十分
不確定性によりロバストな制御法
最適性魚はロバストである
最適制御により設計されたシステムは入力に関するあるクラスの不確定性に対してロバスト性を有する
質問
深層ニューラルネットワークを用いた手法が画像認識や自然言語処理など様々な分野で著しい性能を上げていますが、制御においても深層ニューラルネットワークを用いた制御手法が研究のホットトピックになっているのでしょうか。
また、従来の制御が置き換えられるか
第10講 画像による制御
Position-based Control: カメラ画像情報から位置・姿勢などを復元し、その位置・姿勢情報により一般的な制御法で制御する
制御性能は位置・姿勢の復元精度に大きく依存する
普通はこれでやれ
Image-based Control(Visual Servo): カメラ画像情報を直接用い、画像平面上で制御する
位置・姿勢の復元方法
動画像からの3次元構造復元はスケール不定
ステレオカメラがあればスケールがわかる
射影カメラモデル
画像情報から、ワールド座標に移す
Structure from Motion
・幾何学的不変量を利用する三次元情報復元
・因子分解法
・Etended Kalman Filterを用いる方法
SfMのためのモデル
物体座標系とカメラ座標系が変換できる
SfMでは、平行移動、回転角偏差、N点奥行き、焦点距離を推定する必要がある
SfMの問題点
相対値はわかるが、スケールは不定である
というのも、2倍の距離で2倍の大きさのものが2倍の速度で移動していたらわからない
何か値の基準があれば復元できる
カメラの高さなどがあれば復元できる
Point Feature Tracker
周りの変化が大きかったら精度が悪くなる
ステレオビジョン
これを使えば、大きさが復元できる
2またはそれ以上の異なる視点からの画像を使い、そのシーンの三次元構造や距離を求める
Intel RealSenseは赤外線のマークを出す
それを用いるので、従来のステレオよりも精度が良い
屋外だと太陽光にも赤外線がのるので良い
ステレオカメラの原理
Tとfが既知なら復元できるで
相似を利用するだけ
SfMだと動きの推定をミスるとダメだが、ステレオカメラは楽やなあ
結局、特徴のあるところではないとイマイチである
ステレオカメラにおける対応点の問題
baselineが大きいほど精度が向上するが、対応する点を発見するのが難しくなる
位置に基づく制御
2次元画像情報から、2次元位置情報・3次元位置姿勢情報に復元して、その情報を元に制御
カメラモデル
画像座標に関する状態方程式が得られる
Pometの方法など、ややこしい制御が得られる
三角関数でちょっと揺らす?
目標のXid, Yidとなるようにモータの角速度を求めるのが入力
目的地を越えない制御則も見つけることができた
自由度が高いと制御方法も変わる
注目して解像度を上げるというのもある
全方位カメラを用いたImage-based制御
ターゲットとして木の根本を利用
2次元画像で単純に制御できている
へ〜〜〜
直線は画像平面上に二次曲線として射影
UGVによる実験
・リアプノフ安定ベース制御
・スライディングモード制御
・適応スライディングモード制御
キャベツの自動収穫
これも、絶対的な座標で制御してなくて直線上にハンドルを切っているだけ
キャベツ検出はdeep
コンテナ自動交換も簡単な画像処理である
自動車の運転とドライバの視覚情報の関係
オプティカルフローの拡大中心を利用している可能性がある
数理的なアプローチはほとんど行われていない
ダイナミクスを反映したオプティカルフローを方向知覚に利用し、精度の高いライントレースを実現しているのではないか
つまり、通過したい領域のフローをゼロにするよう運転操作しているのではないか
非線型制御によるオプティカルフロー制御
画像とLidar併用による位置算出
草刈機の幹の検出と位置の検出
Lidarによる位置の計測
従来は大量の点群データから点群処理をして幹などを見つけていたが、2次元画像処理で当たりをつけておいて、そこから点群処理をするというのが筋が良い
これはほとんどうちでしか使われていない
消防ロボットに人追従・認識・地図作成
Lidarを縦と横に二つ並べて縦横を一緒に認識できる
先行者と同じ場所を通るためにはSLAMにより自己位置を知る必要がある
三次元の構造が全てわかる
画像と位置に基づくトラッキング制御
状態量に制限がある制御則を提案した人はいない
状態方程式のxに制限をつけて、完全になるのは難しい
MPCで、拘束条件月のやつはあるが別問題

質問
・実装するときはどういうアーキテクチャ
・ROSのtf
・自動運転について
・ハンドアイor固定
・固定カメラ、隠れちゃうときどうする
・参考となるGithubレポジトリやライブラリ
・MoveIt
・キャベツの自動収穫では画像上で制御をやっていましたが、例えば物体をカメラで認識してそれをある地点に固定されたマニピュレーターで掴むなどといったタスクでは、画像で認識した物体をカメラ座標系からマニピュレータからの座標系に変換してから軌道計画するという流れが一般的なのでしょうか
・キャベツの自動収穫では高さはどうやって軌道計画をするのか
・Lidarの精度がとてもLidarの情報(点群デー)のみから幹の検出と位置の検出
・果物をピッキングするというロボットを実装することを考えたら、ROS上でカメラとマニピュレータの座標変換はtfを利用して, マニピュレータの軌道計画はMoveItを使うのが一般的ですか
→そうです, ただ足りないものは+αで実装する
キャリブレーションが大変な作業である
カメラの座標系からマニピュレータの座標系を合わせる
外側につけたらズレが出る
第11講 応用例紹介(車両システムのロボット化)
画像を用いた制御は個別になってしまうので教科書はあまりない

テスラはレベル2.5
他は大体2
実際はLidar情報というよりは白線を見て動かしている
対向車がいると回避が難しいという問題
DeepLearningを用いて人を認識
ブレーキ制御をする

安全化の観点では、モデルに基づく最適化をベースとしたアーキテクチャが良いが、コーディング量がヤバすぎる
なのでDeepLearningなども
評価関数による目標経路の最適化は重みの設計が難しい
目標軌道、経路の作り方としてポテンシャル場を利用したものがある
これはロボットアームなどにも使われている
直線 + エンコの軌道計画では完全なる追従は無理
そこでクロソイ度曲線をつかう
縦列駐車は1度のズレもやばい
緊急回避は、タイヤの摩擦力の非線型性なども考える
最適な操舵、制動力配分と回避経路
タイヤのゴムというのはモデル化が難しいので、制御が難しい
なるべく似たようなモデルを使うようにする
最適制御やモデル予測制御を基本とするものが考えられている
ただし、早いコンピューターでもリアルタイムで計算するのは難しいので計算量を落とすのが問題になる

車種が変わると1からなので厳しい
ゲインスケジュールドロバスト制御+非線型性ぎょ
これは難しい10年くらいかかった
今後はデータを用いてやりたいが、データだけでやるとなるとそれも難しい
ゲインを機械学習でやれば良いのでは?
局所的なものはディープラーニング使わんでもいける
大域的なものをディープラーニングで何かできないか
全てをDeep-Q Learningに置き換えることはワンチャンあるが、試行回数が多すぎるので現実的ではないのでは?
強化学習で制御理論の限界を超えられないかをいつも考えていたが、今のところ難しそうである
セマンティックセグメンテーションを用いて認識するのも最近はやり
ドローンは中心から離れたところに羽をつけることで、うまく制御できる
スライディングモード制御の方がPIDよりも性能が良い

自動車はタイヤを中心とするダイナミクス
飛行性の場合は重力中心、容積中心、浮力中心の主とするダイナミクスである




質問
・直感的にはシミュレーション上で自動運転を深層強化学習して、それを実環境に合わせてチューニングすれば実環境での試行回数が比較的少なくてもディープラーニングによる自動運転が実現できるのではないかと思うのですが、シミュレーション上で学習できてもチューニングが難しいのでしょうか。
完璧なシミュレータができれば良いが、それもない
のりごこちなどが表現できない
シミュレータの中で評価関数ができないとだめ
実機でやらないと乗り心地は評価できないので辛い
テストドライバーのモデルを作ることにチャレンジしたが、断念した
深層学習はなんでもできる気がするが、乗り心地がよくならない
チューニングだけであれば、可能性はある
将来的に、深層強化学習がなんとかなる可能性がある
部分部分ではなんとかなるが、全体ではなんとかならない
最終的には説明できるようになるのが良い
・レベル5の自動運転は何年先ぐらいだと思うか
・前回・前々回の講義で出てきたような農業用の移動ロボットも、大まかには自動車と似たシステムではないかと思うのですが、農業ロボットの場合だと、乗り心地などを考慮しなくていい分、今回出てきた自動車の自動運転に比べると制御はそれなりに単純になるんでしょうか。農地だと路面と摩擦の起こりかたがかなり違うような気がしますが、そのあたりでまた難しい問題が出たりするんでしょうか
農業では乗り心地を考えなくて良いので楽
線がないので、認識は簡単である
荷物運ぶのは重心が高くなるので、制御をうまくやる必要がある
———————————————————
ドローンを動かす
ドローンジャーナル
ニュートン・オイラー法を実装してリンクの構成から運動方程式を自動で導出することに成功したので勝ち
--------------------------------------------
知能制御論
ロボットの制御において,システムパラメータが不正確である,未知である場合などに対処するための方法として,まず適応制御や学習制御を紹介する.その後,対象のモデルの不確定性がさらに高い場合への対処方法として,ニューラルネットワークに基づく制御を紹介する.さらに,環境や自己の情報を取得するために視覚情報を利用する方法,LiDARなどのセンサ情報を用いた方法について述べ,応用として自動運転等についても紹介する.
・ロボットの適応制御
・ロボットの学習制御
・ロボットのニューラルネットワーク制御
・移動ロボットへの発展
・視覚情報に基づいた制御
・センサフュージョンと自動運転