Near-identity diffeomorphismsを用いた差動二輪ロボットの制御
Turtlebot3をシミュレータ上で動作させて以来、「差動二輪ロボットの駆動則(速度指令値から進行方向速度・回転角速度への変換則)って何があるんだろう」と思っていたのだが、よさげなやつを最近発見したのでメモしておく。
東工大&Georgia Techによる論文[1]を読んでいたところ、Georgia Tech側のロボットは差動二輪ロボットのため、論文[2]の技術で運動方程式を
なるsingle integrators(なんて訳したらよいのかわからん)としてモデル化しているとの記述があった。
私の頭でもすんなり理解できたので詳細は論文[2]の方を読んでほしいが、 論文[2]のキモは(2次元位置)を並進速度と角速度で制御するとき、差動二輪ロボットではとを両方同時に制御できないので、 それだったらという新しい変数を考えてやって、これを制御すればよいというもの(違ってたら指摘ください)。 ここで、はロボット固定座標系(進行方向が+X、紙面上向きが+Zの右手系)の一軸方向の単位ベクトルの、ロボット固定座標系での表現、はロボット固定座標系から慣性座標系への座標変換行列である。 実際にを慣性系で時間微分してみると
となって並進速度と角速度でを自由に制御できることがわかる。 のときはが現れないことに注意してほしい。 そして、となるようにうまく(論文ではと) 設定したのちに(これ自体はsingle integratorにできる)を制御してやれば、を通じても所望の値の近傍に到達する、というわけである。なお、がnear-identity diffeomorphismsの一つである。
制御結果は以下の通り。ダイナミクス制御(制御量が力・トルクレベル)版とキネマティック制御(制御量が速度・角速度レベル)版の両方をPythonで実装した。
dynamics:
kinematics:
なお、論文[3]によれば、Georgia Techはが固定のものを使っているようだ。
参考文献
- [1] R. Funada et al., "Coordination of Robot Teams Over Long Distances: From Georgia Tech to Tokyo Tech and Back-An 11,000-km Multirobot Experiment," in IEEE Control Systems Magazine, vol. 40, no. 4, pp. 53-79, Aug. 2020, doi: 10.1109/MCS.2020.2990515.
- [2] R. Olfati-Saber, "Near-identity diffeomorphisms and exponential ε-tracking and εstabilization of first-order nonholonomic SE(2) vehicles," Proceedings of the 2002 American Control Conference (IEEE Cat. No.CH37301), Anchorage, AK, USA, 2002, pp. 4690-4695 vol.6, doi: 10.1109/ACC.2002.1025398.
- [3] P. Glotfelter and M. Egerstedt, "A Parametric MPC Approach to Balancing the Cost of Abstraction for Differential-Drive Mobile Robots," 2018 IEEE International Conference on Robotics and Automation (ICRA), Brisbane, QLD, 2018, pp. 732-737, doi: 10.1109/ICRA.2018.8461234.