Episode 10 ROSのススメ

ブログ
Artwork by Josh Ellingson, licensed by : https://creativecommons.org/licenses/by-nc/4.0/

皆さんこんにちは、グレキチです。
すっかり秋になりましたね。まだたまに、日中は暖かくて半袖で過ごせる日もあったりと、気温が安定しない感じですが、夏冬に比べると、やはり過ごし安くていい季節です。

さて今回は、私が日々取り組んでいるタスクの一つである、ROSについて紹介します。

ROSって何?

ROSとは何ぞや?と思う方が多いと推測しますが、Robot Operating Systemのことです。簡単に言うと、ロボットを制御するためのソフトウェアフレームワークのことです。ロボットソフトウェアの共同開発を世界規模で推進することを目指して始められたプロジェクトが発端で、多くの技術者が集まって継続的に開発されているものです。

<参考> ROS 公式Webサイト: https://www.ros.org/

実際にROSは、産業用ロボットおよび家庭用ロボットなどにも既に広く使われていたりと、実用できてかなりしっかりしたものになっていて、今ではロボット開発に欠かせないものになっているようです。オープンソースで使うことができ、実際のロボットを製作する前にシュミレーションツールを使って検証することなどもできるので、ロボットを極力簡単に素早く精度良く作るのに、非常に有効なものになります。

私は以前、スクラッチ(ゼロから)二足歩行ロボットを作るという本を買って製作トライしたことがありました。それで使ったプログラムは、本の著者の方がC言語ベースで考えられたもので、1品もののスペシャルプログラムという感じでした。それはそれでいい勉強にはなりました。
それに比べると、ROSのフレームワークはかなりシステム化されていて汎用性もあり、デバッグなどの保全および相談などもネットでのコミュニティサイトで出来たりもするので、とても便利で長く業務などで使えそうだと感じたのを覚えています。今後私は、ロボット開発業務の受託にも挑戦したいということもあるので、そのためにもとても勉強のし甲斐があって続けています😄

最新バージョンは名前がROS2になっており、ROSから既にバージョンアップされています。ROSとある程度互換性はありますが、使うコマンドが違ったりなどあるので、これから始めるという方は、ROSの基礎的な内容は理解しつつ、メインはROS2を使っていくという感じになると思います。

開発環境はLinuxベース

OSはLinuxを使うので、LinuxOSをインストールしたPCが無い場合は、VirtualBoxやUTMなどの仮想環境構築ソフトを使って、Linux環境をまず整える必要があります。このLinux環境を構築するという所で、多くの方は及び腰になってやらない!となってしまうかもしれませんが、取り組んでみると案外難しくないので、まずはやってみてはどうかと思います。
なお、仮装環境構築に関しては、ネット検索すればいくつも出てくると思いますので、自分に合ったものでトライしてみて下さい。私も以前、MacにWindowsの仮想環境を構築する記事を書いたので、SiliconMacユーザーの方には少しは参考になるかもしれないので、それも是非チェックしてみてもらえると嬉しいです。

Linux環境が構築できたら、すぐにROSを始めることが出来ます。ROSを始めるには、インストール方法から説明している公式ドキュメントサイト(こちら)があるので、まずはそれに沿って、ソフトのインストールからチュートリアルで学習を進めていくことを強くお勧めします。
また、今ではすっかり有名になったお掃除ロボットのルンバ (iRobot)を題材にして、ROS2の勉強ができる教育カリキュラムなども提供されていたりします。こちらはイギリスのサイトなので、ちょっとハードル高いかもしれませんね😅

プログラミング言語はC++とPython

ROSの開発に使うプログラミング言語は、C++もしくはPythonです。私の場合、プログラミング学習はPythonから始めていたこともあって、ROSへの取り組みはすんなりと入っていけました。加えて、C++も並行して学習しているので、今後のROS学習に向けては盤石の体制を取れていると思っています(笑)。
両言語ともに“まだ使ったことないよ”という方は、ROSへの取り組みを機会に、これらの言語学習を始めてみては如何でしょうか?因みに、私のおすすめはC++よりはPythonです。それは何故かと言うと、Pythonの方がとっつきやすいので!😆
また、C++とPythonの基礎的な学習はやったけど実践する機会が無い、という方にもオススメですよ。

また、ROSに関する書籍もいくつか発売されているので、それらを買ってみて取り組んでみてもいいかもしれないですね。ちなみに私は、上で紹介した公式サイトで今のところ事足りている感じなので、書籍はまだ一つも買っていません。

ということで、今回はROSについて簡単に書いてみました。ROSは継続して開発中ということもあって、ユーザーが増えるとますます開発に拍車がかかると思いますので、一人でも多くの開発者の方々に取り組んで頂いて、一緒にみんなで盛り上げて行きましょう!!

それではまた!