ブログ
BLOG

技術ブログ

 ショッピングセンターや空港を走る自律移動ロボットが多く開発されていますが、どういった技術で動いているかご存知でしょうか。 メインとなるのはSLAM(Simultaneous Localization and Mapping)と呼ばれる技術です。 センサ情報などから「自己位置推定」と「環境地図作成」を同時に行うというものです。 この技術を使用すれば、ロボットにとって未知の場所でも自分の位置を認識して走行できます。 以下にSLAMの入力と出力のイメージを示します。

 このような自律移動ロボットを開発する場合、ROSというロボット制御のミドルウェアを活用することが多いと思います。 ROSの基本的な説明はこちらにまとめました。 また最近は、ROSからROS2への移行が進んできています。

 今回のブログでは、これらの技術を体験するために、次の内容について解説していきます。

  • ROS2のセットアップ
  • シミュレーション用ロボットデータのインストール
  • シミュレータでSLAMの実行(地図の作成)

技術ブログ

 前回、機械学習の開発環境を整える方法を解説し、 Windows上に、Visual Studio Code(VS Code), Anaconda, PyTorchをインストールしました。

前回の記事:Pytorchで機械学習1:Anaconda/VS Codeで環境構築編


 今回はニューロ(機械学習)の基礎を簡単に解説し、PyTorchのプログラムで動かす方法を示します。 シンプルな例として、2入力1出力のXOR問題というものを学習するプログラムを解説します。

技術ブログ

 社長です。最近、自分でも機械学習のコーディングを始めてみました。 実は卒論修論(数十年前?)でニューロ・ファジィ・GAを使った制御の研究をしていたので、前から自分でもやりたいと思っていたんですよね。 また、最近は機械学習のライブラリが後で解説するPyTorchに集結しつつあるようなのも、重い腰を上げるキッカケにもなりました。

 環境整えるまでの手順が多かったので、まずは環境構築手順をまとめてみます。

 こだわりのポイントとしては、普段の仕事の関係上、Windwos上で環境構築を行ったことです。 色々と聞いたりして調べた結果、下記を使用することにしました。

 「PyTorch」は、Facebook社がオープンソースで開発している、python/C++用の機械学習のライブラリです。同社のCaffe2やPFN社のChainer等も吸収し、今最も人気のある機械言語のライブラリと言えると思います。 コアの演算は、torch.Tensorというクラスにまとめられ、GPU(CUDA)を使った演算もNumPyライクに比較的簡単に行えたり、自動微分の機能があるため学習のアルゴリズムをかなり隠ぺいする(書くべきコード量を少なくする)ことができます。

 「Anaconda」は、pythonの仮想環境を複数用意してくれます。pythonは便利ですが、バージョン問題に悩まされ、 python本体やライブラリのバージョンが合わないと、プログラムが動かないなどといったことがよくあります。 Anacondaを使用すると、各仮想環境内にpythonやライブラリをインストールするのでそのような問題を解決できます。例えば、
・普段の開発用はPython 3.8とpytorch1.8.1
・あるオープンソース用にPython 3.6とpytorch1.0
などといった環境をつくって選択することができます。

 「Visual Studio Code」(VS Code)は、マイクロソフト社が公開しているエディタです。様々なプラグインがあり、それらを入れることで様々な言語の開発環境を構築できます。 python用のプラグインもあり、ブレークポイントで止めて中の値をみたり、インタラクティブ実行などもできてデバッグが楽にできます。


 それでは具体的なインストールから、テストプログラムの実行方法を示します。