ぜんのうテクログ

ロボット好き学生が書く様々なこと

【超初心者向け】ROSを始める前に、役に立ちそうなリンクまとめ

f:id:zennou:20200519223535j:plain


 ロボットを動かすシステムを作るときに使うソフトウェアと言えばなんでしょう?

答えは記事のタイトルに書いてますね。

 

そう、ROS(ロス、Robot Operating System)です。

ROSは世界中の有志が開発に参加しているオープンソースミドルウェアで、ロボットのシステムを作るのによく使われます。

 

そしてこのROSはとってもありがたいことにタダで使えます。
大事なのでもう一度言います。タダで使えます!

 

さらに、ロボットを持ってなくてもシミュレーションで動作が試せます!頑張ればペッパー君をシミュレーション上で動かせます!

f:id:zennou:20200530181639p:plain

ROSで使われる3DシミュレーションツールのGazeboを起動したところ

 

なので、ぜひロボットに興味がある多くの人に試しに使ってみて欲しいのですが、このソフトは商業利用もされる本格的な代物であるがゆえ、慣れが必要で、入り口でつまづきやすい代物です。

 

というわけで、ロボット開発においては超初心者という方が初っ端からつまづかないために、ROSを始める前にやっておいた方が良いことをいくつか解説し、役に立ちそうなサイトも紹介します。

 

※本当に超初心者向けの記事です。

 

 

プログラミングの勉強

ソフトウェア開発なのでプログラミングを覚えなければならないのは当然ですね。

ROSで公式に使える言語はC++Pythonです。

とりあえずは大まかな文法を理解できれば十分だと思います。

始めに覚えるのはどっちかだけでも良いのですが、両方の特徴と導入方法に詳しいサイトを紹介します。

 

もちろん後で説明するUbuntuというOSに環境を導入するのでもいいのですが、ここではとりあえずWindowsMacに導入する体で話を進めます。

Python

近年人気が上昇している言語で、機械学習やAIの分野でよく使われます。有名どころではYouTubePythonで書かれているらしいです。

 

文法が比較的簡単で、理解しやすいです。人気の上昇に伴い解説サイトや解説本も多く出ているので、学習に困ることはないでしょう。

 

その一方で、C++に比べれば細かいところまでプログラムでの制御はできず、実行速度も劣ります。

導入方法としては、公式サイトからインストールすることになります。以下のサイトが分かりやすいでしょう。

prog-8.com

prog-8.com

C++

C言語の系統の一種で、ロボットに限らず機械の制御によく使われます。メモリの使い方など細かいところまでプログラムで制御でき、実行速度が速い反面、初学者にとっては文法が難しいとよく言われています。

 

大学の授業でC言語を習ったことがあるなら、似たようなものなので大丈夫でしょう。研究室でROSを使うなら何故かこっちが多いです。

 

導入方法は、WindowsならVisual Studio を、MacならXcodeをインストールすれば出来ます。どちらもかなり重い(5~8GBくらいは覚悟)ので、十分に容量を用意しておきましょう。

 

terminalのコマンドに慣れる

ターミナル とは文字がバーって出てくるあの黒い画面です(適当)。

 

f:id:zennou:20200519175946p:plain

これはMacのターミナル

もう少し正確に言うと、あの画面にコマンドを打ち込むことでパソコンを操作することが出来ます。


ROSの操作は公式チュートリアル を見ればわかるように、ターミナル をよく使います。コマンドがわからないとチュートリアルも何言ってんのかわかりにくくなります。

 

ROS独自のコマンドも多いですが、事前にターミナルの系統の一種であるUNIX系のコマンドを知っておくと、チュートリアルがぐんと理解しやすくなります。

 

Macユーザーなら元から入っているターミナルがあるのですぐ使えますが、Windowsはどうやらコマンドプロンプトやパワーシェルとは別のターミナルを自分で導入する必要があるみたいですね。僕はWindowsユーザーではないのでそれに関する詳しい説明はできません。ごめんなさい。

 

一通りのコマンドが簡潔にまとめられているこちらのサイト(UNIXコマンド集)を是非参考にして下さい。

Ubuntuのインストール

ROSは実はWindowsMacでは動かせません(一部機能は使えるらしいですが)。第三のOSでしか動かないのです。

 

対応しているのはUbuntuというLinux系の代表格OSのみです。

f:id:zennou:20200531115854p:plain

仮想環境で起動したUbuntu

 

ですが、ご安心ください。こちらも無料です!
なんて良い時代なんだ…

 

インストール方法は一つのパソコンに複数のOSを共存させることになる「デュアルブート」と、アプリ上で仮想的に起動させるようにする「仮想環境」の二つがあります。

 

 

デュアルブート

ROSを本格的に使用したい人、パソコンの空き容量にかなり余裕がある人、パソコンの扱いにそこそこ慣れている人におすすめの方法です。

 

ハードウェアの性能を十分に活かすことが出来ますが、やり方を間違えると元のOSを失ったり、起動できなくなるという惨事になってしまいますので、慎重に行いましょう。

空き容量に関してですが、ROSを快適に使いたいなら100GB程度は準備できる方が良いです。目安として現在の空き容量が70GBを下回るなら仮想環境で構築する方が無難だと思います。

 

こちらのサイトが参考になると思います。

www.pc-koubou.jp

sy-base.com

※問題が発生しても責任は負えないのでくれぐれも注意して下さい。

仮想環境

ROSをちょっと試してみたいだけの人、パソコンの空き容量にあまり余裕がない人、元のOSを誤って失わないか心配な人におすすめの方法です。

 

あくまでアプリ上での起動なので、ハードウェアの性能を生かしきれませんが、デュアルブートのように容量を新しいOS用に配分する必要がなく、元のOSを失うようなリスクも低いです。

 

仮想環境のアプリはいくつかありますが、僕の周りではVirtualBoxがよく使われています。僕自身もVirtualBoxを利用している一人です。

 

VirtualBoxWindowsでもMacでも同じように使えます。導入の方法はこちらのサイトが分かりやすいと思います。Windows向け記事ですが、Macでも手順は同じです。

qiita.com

 

最後に:ROSのインストール自体は簡単

Ubuntuがインストールできれば、ROSのインストール作業自体は単純です。Ubuntuのターミナルで色々打ち込んで待つだけです。

 

ただ、Ubuntuのバージョンや欲しいROSのバージョンによって、打つべきコマンドが少し変わってきます。

 

詳しくはここで説明するより公式チュートリアル を参照した方が良いでしょう。

 

以上、ROSを始める前にやっておくべきことと、ROSのインストールに関して使えそうなリンクのまとめでした。

 

この記事を気に入っていただけたらぜひいいねやブックマークお願いします。

 

ではでは、またどこかの記事で会いましょう!