前提
これはロボコンでROSの導入を考えている人の背中を押せるような記事にしたいと思っています。
それとROSを導入して一年(より短い)で感じたこと、利点、懸念点をまとめたものです
あと技術的なことは書かないので別で探してください
私がよく参考にしている記事
ここまで読んでも大丈夫という人はぜひ最後までお付き合いください
ほんへ
動機
まず、ここが大事だと思います。
ROSを入れて何ができるか、どういう風に開発が変化するかがモチベにも関わってきますしね。
一応、無印のROSを導入しました
利点
とにかく簡単!!!!!
ですかね。
wifiでの接続はIPアドレスを設定するだけですし、
マルチスレッドでコードを走らせるので複数のことを一つのPCで簡単にできますし、
ノード(実行されているプログラム)間のデータのやり取りも簡潔に記述できます
UARTのように送信するデータサイズなんか気にしないで送ることができるので高級で幸せなプログラミングができます
懸念点
開発が止まった技術なので今後廃れていきます。なので無印のROSは今後使うかどうかは慎重に判断するべきですね。学ぶならROS2をおすすめします
今回は枯れている技術なので勉強のしやすい無印ROSを導入したのでROS2の導入を考えているところは、一応参考にしてみてください
使用例
ノード、メインのデータ処理のノード、通信関係を管理するノード、ゆかりさんをしゃべらせるノードしか書かなかったので簡単なことしかしていません(lidarのノードもあったのですが、lidarが重量の都合で消えたのでお察しください)
導入までの流れ
まず前提ですがROS自体が結構簡単だったのが大きいですね。
- メインプログラマが一人!
- 特に上から継承できた技術もない!
- c++わからん!
こんな状態のプログラム班でも導入できるくらいには簡単でした。
必要な技術
-
本当に必須な技能
- C++
- cmake
-
必須ではないがあったほうがいい知識
- python
- シェルやlinuxの知識
-
ROSでよく見る技術
- 画像認識
- lidar, slam, その他
- IMU
- その他
必須な技能に関しては精通しているほどでなくても大丈夫で、最低限使えるできる程度に覚えておければ十分です
やってみる
上に書いた必須技能さえ満たせていれば問題なく個々のシーケンスは超えられると思います
- インストールしてみる
基本的にはここに書いてある通りにやれば大丈夫だと思います
インストールで躓いたときにシェル周りの知識が乏しいと少し対応に手間取りますが、本当に書いてあるコマンド通りにすればインストールできるので書いてある通りにやりましょう(n敗)
2. 使ってみる
ここから始めましょう
基本的にコピペしてからいろいろ変えてみてホエーってやるのがいいと思います(諸説あり)
3. 勉強を進める
上に書いてある記事や、実際にlidarを購入してみて使ってみるのがいいと思います
pythonの書き方や様々なライブラリの使い方などは少なくとも無印のROSではいろんな記事があふれているので探しやすいと思います
4. 使う
実際に使ってなんぼなので頑張ってください
シリアル通信であればrosserialというものがあり、そのままUARTで使えるとかなんとか……
うちは今年CAN通信だったので適当にpythonでパッケージ引っ張ってきてそのまま使った感じですかね
あとは部として定着させるなり、個人で技術を伸ばすなり頑張ってください
まとめ
とりあえず使ってみればいいと思う。簡単だから。 という感じですかね
本当に記事が出そろっていますし、技術的な情報だったらいくらでもまとめたものが出てくる印象なので新しい開拓も非常に楽でうれしいですね。
英語の資料が多くて調べにくい時もあるのですが、探してみれば意外と日本語もあるし調べ方が悪かっただけみたいなことも多いので根気よくやりましょう。
何か不備や知りたいことがあればコメントやtwitterのDMでお願いします