自律移動ロボットの要素技術を一つ一つ解説しようと思います。
まず全体図です。図は参考サイトから引っ張っているので、その内更新します。
本ページでは概要のみを解説します。詳細は改めて、解説ページを作成します。
自律移動ロボットとは
自律移動ロボットは、センサを用いて自己位置を推定し、障害物を避けつつ目的地に移動し、所定の作業を行うロボットです。最近のニュースですと、クボタの自動トラクター、コマツの自動建設機械、豊田自動織機の自動フォークリフトが注目されています。もちろん、自動運転も自律移動ロボットに入ります。
認識・判断・制御
自動運転の本を読まれたことがある方はこの「認識・判断・制御」という三つのワードを聞いたことがあると思います。
この三つのワードを一つ一つ説明して行きます。
・認識…センサを用いて状況を取得します。センサとはカメラだけでなく、温度や力、速度等を取得します。近年ではLiDARと言った特殊なセンサが自己位置推定に必須技術になっています。
・判断…取得したセンサ値を用いて、どのような動きをするか判断し、指令します。
・制御…指令された動作をアクチュエータが実現します。アクチュエータとはモータやエンジンなど動きを発揮するものです。
使われる技術の一部として、画像認識、ディープラーニング、SLAM、経路探索・計画、ロボット工学、軌道生成、制御工学、ベクトル制御等があります。図では、画像認識の中にディープラーニングを入れてますが、ディープラーニングは曖昧なものを扱う技術ですので、動作計画にも応用できます。
システム設計・マルチエージェント
自律型システムを実現するためには、今までにない複雑なシステムを構築する必要があります。
認識をするためには、カメラやLiDARと言ったセンサを用いて大量のデータを取得し、通信に載せる必要があります。
判断をするためには、センサが取得した大量のデータを用いて計算するため、高機能なプロセッサが必要になります。
制御をするためには、複数のモータを用いて力や走行を制御する必要があります。
加えて、複数のロボットを制御するために、マルチエージェント動作が必要です。
OS・シミュレーション・開発環境・開発プロセス
自律型システムを構築するためには、非常に複雑なシステムが必要であることを説明しました。
そのようなシステムをどのように構築するべきでしょうか。
現在はLinux上にROS(Robotic OS)を載せる手法が主流になっています。
LinuxやROSを使って開発をしていると、開発環境によって動作が異なることが発生します。この差異を吸収するのがコンテナ技術です。また、ありとあらゆる技術を用いるため、すぐに試して評価する仕組みが必要です。これらはシミュレーションやCI/CD、DevOpsと言った技術を活用する必要があります。
まとめ
自律移動ロボットに必要な技術を大まかにまとめました。
今後、これらの技術を一つずつ詳細を解説して行こうと思います。
コメント