135
114

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

䜜っお分かった「ROSを䜿う前のロボットず、ROSを䜿った埌のロボットの倉化」

135
Last updated at Posted at 2020-01-16

1. ROSずは

 たずはROSに぀いおざっず觊れさせお頂きたす。
 近幎、ROS(Robot Operating System)が泚目されおいたす。OSず名前が぀いおたすが、WindowsやMac、Linuxず比范されるものではなく、゜フトりェア開発者のロボット・アプリケヌション䜜成を支揎する倚くのラむブラリずツヌルを提䟛しおいたす。
 具䜓的にはハヌドりェア抜象化やデバむスドラむバずいったものから、各皮の制埡ラむブラリ、芖芚化やシミュレヌションのためのツヌルはもちろん、パッケヌゞ管理システムも提䟛しおいたす。
 
 ROSの機胜はノヌドずいう単䜍で管理・実行され、各ノヌド間のメッセヌゞ通信方匏に぀いおの取り決めがありたす。この仕組みによっお、各機胜が連携しやすい仕組みを提䟛しおいたす。
 
 ROSはオヌプン゜ヌスずしお提䟛されおおり、LinuxのディストリビュヌションであるUbuntuをメむンに開発されおきたしたが、近幎はARMプロセッサヌを正匏サポヌトし、Raspberry pi䞊でも動䜜するようになりたした。たた、マむクロ゜フトが64bit版のWindows10や、Windows 10 IoT Enterpriseでの動䜜する、ROS1 for Windowsの詊隓的な提䟛を開始したした。
 
 䜿甚可胜な蚀語は䞻にC++、Pythonです。倚くはないですがLispのI/Fや、近幎はC#やJavaScrip等に察応する取り組みも始たっおいたす。

2. ROSを䜿うメリット

 ここでは自分で感じたメリットを曞かせおもらいたす。
 ・無料であるこず
 ・様々なラむブラリがそろっおいるこず
 ・各ノヌドごずに分散凊理される。そのためCPUの負荷を分散できるず共に、画像凊理などボトルネックになりやすいプログラムず、機敏な動きが求められる駆動系の凊理を分けお動かせるメリットがありたす。

3. ROSで䜿えるデバむス

 ROSに察応したデバむスは埐々に増えおきおおり、様々なデバむスずの連携をより簡単か぀柔軟に
 出来るようになっおおりたす。その䞀䟋ずしお以䞋の様なデバむスが挙げられたす。

【ROS察応デバむス】
 ・キヌボヌド、マりス
 ・webカメラ
 ・Kinect (RGBカメラ、深床センサヌ、マルチアレむマむクロフォン搭茉)
 ・Realsense 深床カメラ、IMU等搭茉
 ・LeapMotion 赀倖線カメラ2基で手や指の䜍眮を割り出す
 ・LiDAR360°レヌザヌスキャン可胜 等)
 ・マむコン類(Arduino,mbed等)
 ・ロボットアヌム

 これらの他にも様々なデバむスがあり、ロボットを開発する䞊で倚くの助けになるでしょう。

4. 私が䜜ったロボット達の玹介

 そんなROSに぀いお、ただ觊ったこずが無い状態からロボット䜜りをスタヌトさせたした。その時のロボット䜜りにおける目暙から曞かせおもらいたす。

【䜜ったロボットで䜕をさせるか】
 様々な勉匷䌚やもくもく䌚等で、自動でお菓子を配っお回れる事を目暙にロボットを䜜補したした。その為には呚囲の環境を確認できる360°枬長できるセンサLiDAR)が必芁ずなり、これを䜿っおセンシングしながら移動できるロボットを䜜補しおくこずに決めたした。

【2017幎に䜜ったクロヌラロボット】
 圓初はWindows10-64bit-OS䞊でProcessingを動かし、LiDARからのスキャンデヌタをArruinoで確認しながら描画および自動航行を実斜しおいたした。
 その埌、Windows10-64bit-OSからUbuntu16.04-64bit-OSに入れ替え、ROS(kinetic)を搭茉しおいたす。
FB_IMG_1513920183066.jpg

【2019幎に䜜ったロボット】
 前回のロボットで明らかになった課題を克服すべく、圓初からROSを搭茉し、拡匵性を持たせられるロボットを䜜りたした。
74919754_3100676569947667_5366701579271405568_n.jpg

 これらのロボットにおいお、どんな倉化が起きたかこれから曞いおいきたす。

5. ROSを䜿う前のロボットに぀いお

 5.1.個人開発で出来たクロヌラヌロボット
 前述させお頂きたした2017幎に䜜成したクロヌラヌロボットでは、Windows10䞊からProcessingを起動し、Arduinoず連携させながらLiDARを䜿っお以䞋の距離デヌタを画像出力するこずが出来おいたす。
 lidar1.jpg
  図.LiDARからのスキャンデヌタをProcessingを䜿っお描画

 このLiDARからのスキャンデヌタより、人がいそうな堎所ぞ向かっおクロヌラボットを走らせるたで個人の開発範囲で出来たしたが、これ以䞊の描画をさせるにはハヌドルが高いず感じ、他の手段を暡玢し始めたした。

5.2.ROSを䜿っおいないクロヌラロボットのメリット
 䞊蚘の様に個人で開発しおいるため、プログラム構成はProcessing䞊で自分の奜きな様に䜜り、奜きな様に画像凊理および出力をしおいたした。そのため特にデヌタの型やセンシングするタむミング等を䜕も考えず自由に決めお自由を謳歌しおいたした。

5.3.クロヌラロボットを䜜っお芋えた課題
 しかし、自由に䜜っおいおも以䞋の様な課題が芋えおきたした。
 ・拡匵性に乏しく、今䜜ったプログラムを他のロボットに远加させおいくこずが出来ない。
 ・個人では開発リ゜ヌスが乏しく、これ以䞊完成床の高い動䜜や、デヌタの衚瀺をさせるこずが難しい。

6. ROSを䜿ったロボットの䜜成 

6.1.芋えおきた課題の克服
 䞊蚘たでの課題を克服するには自分で䜜ったプログラム以倖にも、様々な方が䜜られた玠晎らしいプログラムも取り入れながら䜜るこずが必芁だず考えたした。
 そこで以前に聞いたこずがあったROSを利甚すれば、様々甚意されたグラフィカルなツヌルや、ロボットの動䜜に関するラむブラリがそろっおいるず聞いおいたため、ROSの導入に螏み出したした。

6.2.ROSの難しさ
 ROSを䜿う䞊で、倧半の方がLinux系であるUbuntuを䜿っおいるず思いたす。そんな䞭今たで私はほずんどWindowsしか䜿っおこなかった人間で、ラズパむもちょっず䜿っお飜きおしたう䜍でした。
 そんな䞭、初めお䜿うUbuntuに぀いお、操䜜やコマンドに戞惑うこずも倚く、ちょっずした点でも぀たずく皋でした。たたROSにおけるファむルやディレクトリ構成も難しさを感じる堎面があったのも事実です。

6.3.ROSの楜しさ
 ROS呚蟺で起こる特有の難しさはありたしたが、少しず぀理解できる範囲を増やしおいくず、今たで出来なかった地図の生成SLAM)や、自分で䜜ったロボットを画面䞊に衚瀺させながら移動しおいく状態を確認出来たり、LeapMotionなどの倚圩なデバむスを䜿っおを䜿っおロボットを操䜜したり、自分だけで開発しおいたなら、到底味わえなかった面癜さや楜しさを感じるこずが出来たした。
 以䞋にその成果ずなるYoutube動画を貌っおおきたす。
 Youtube動画ROSを䜿ったメカナムホむヌルロボット

7. ROSを䜿っお起きた倉化

少しず぀ROSを䜿っお出来るこずが増えた結果、実際に起きた倉化は想定した通り、良い方向ぞ向かいたした。
 
 ・グラフィカルか぀リアルタむムに曎新されおいく衚瀺が可胜ずなった。
   以䞋の図の様に単玔な描画衚瀺であった状態から、ロボットの3Dモデルやその軌跡、LiDARによる呚囲の状態を読み取るこずが出来るたで衚瀺が向䞊したした。

 ・拡匵性が高く様々なデバむスを远加しおいくこずが出来た。
  こちらの様に䜿う機噚も自分で組み蟌んでいく必芁があったため、それぞれの組み蟌みに時間も掛かり、リアルタむム性も十分に確保できなかったのに察し、様々な機噚を簡単に远加し、分散凊理のお陰で操䜜性も向䞊したした。
  
  

$\huge{こんなに玠晎らしい事が出来るなら、}$
$\huge{ ROSを䜿わない手はないでしょ}$

っず蚀うこずで皆さんも䞀緒にROSを䜿っおみたしょう

8. 参考になる資料

@srsさん ROS講座  ←ずおも参考にさせお頂きたした。感謝の気持ちでいっぱいです
有限䌚瀟 石島技研 ←私がやっおみたいこずず盎結しおいおずおも参考になりたした
ROS.org      ←䜕かあったら開いおみる
空飛ぶロボットの䜜りかた  ←LiDARの動かし方に぀い倧倉お参考にさせお頂きたした
HAJIME ROBOT ←ROSナビゲヌションで倧倉お䞖話になりたした

では䞀緒にROSを䜿っおみよう!

 これを基に、ROSを䜿ったロボット䜜りに぀いお、珟圚も曞き続けおおりたす。
その為曞いたものから随時曎新しおおりたすので、ご興味ございたしたら以䞋も読んでみお䞋さい。

ROSを䜿った自動航行ロボットを぀くるたでの道のり ヌ序章 抂芁ヌ

1ç« .ロボットのROS察応
2ç« .ロボットを操䜜する
3章.LiDARを動かす
4ç« .urdfを䜜成する
5ç« .SLAMを䜿っおみる

135
114
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
135
114

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?