[ROS 1章] Burger君こんにちは
始まり(~2022/12月)
これまで業務システムのサーバーサイドのエンジニアorアーキとして生きてきたが、ここ数年突然イメージコンピューティングに関するPoCの仕事に携わることになった。
そのなかで、ロボットをちゃんと頑張ってみない?という声が社内よりあがった。
私が良く分からなかったのが、ROS2が現れてから数年が経過するのにもかかわらず、まだ業界的にはROS1がスタンダードであるということだった。
サーバーサイドエンジニアとしては、ROS2のDDS(data distribution system)は非常に魅力的に感じる。ロボットの神経ネットワークが、その物理的境界を超えて複数のロボットや指令サーバー、そしてクラウドサービスと接続される世界は新しいロボットの在り方があるように思われるからだ。
ROS1の世界はロボットに閉じた神経ネットワークであり、社会化されていない生物、というイメージ。
まずはロボットを実際に触ってみようということになり、会社に買ってもらえることになった。それがこのburger君だ。
公式ROSチュートリアルロボットと銘打たれているのが魅力で、ネット上に公開されているテキストに沿って作業することでROSのエコシステムを手早く学ぶことができる。またこれを使って学習したという記事や、カスタマイズしたという記事が豊富にある。
LeadSenseのようなカメラが付属していないのが不満ではあったが、社内に余ったカメラがあるよ!という情報があったため、それを貰って後から自分でつける事にした。
購入とセットアップ(2022/12末~2022/1)
通常の業務があるためがっつり時間を取れそうなのは年末休暇くらい、ということで年末直前に大急ぎで購入手続き。そして小さな段ボールが到着。77000円の高いおもちゃだ。
burgerは4階建てになっており、一番下から
DYNAMIXEL(駆動系)
OpenCR(コントローラ)
Raspberry Pi(コンピューター)
LiDAR(センサー)
という構成になっている。同梱されている手順書に従い下から順に組み立てていく。その間に、バッテリーの充電もしておく。
子供のころ電子工作はしていたが長らく遠ざかっていた。細かい作業は久しぶりで緊張する。部品を失くしたら終わりなので、作業スペースの周りを軽く掃除してから組み立て開始。結局、組み立てに2日かかった。
1階(駆動系)
DYNAMIXCEL(車輪を動かすモーター)をねじ止めするだけなので特に難しい事はない。バッテリーの端子がとても繊細で、手順書にもバッテリーの取り扱いに関する脅し文句が並んでいて怖い。昔遊んでいたラジコンのバッテリーはこんなに繊細ではなかったのに。
2階(OpenCR)
最初OpenCRが良く分からなかった。ロボットは全てのデバイスをROSで制御すると思い込んでいた。これはオープンソースのロボットコントローラーで、DYNAMIXELを制御するためのものらしい。駆動系の精密な制御をROS上でやるわけではないとのこと。
1階からのケーブル類を2階の穴に通してから、OpenCR基盤を取り付けないと、後から通す事ができないので注意。おかげで取り付けたものを一旦全て外すはめになった。
3階(Raspberry Pi)
小さなコンピューター。まずケーブル類を穴に通してから取り付け作業する事。電源ケーブルの接続端子を間違えたらヤバい事になった。壊したかと思った。間違えやすいのでよく説明書を読もう。
ケーブル類の取り回しが狭くて難しくなってくる。端子を折ったりしないよう、力をかけすぎないよう注意して設置する。静電気で壊すのが怖いので、周りを触ってから作業するとか、部品を触らないように気を付ける。
こういう記事を事前に読んでおくといいかもしれない。
4階(LiDAR)
SLAMのための2D測距センサー。電源を入れるとゴムドライブで回転し始める可愛いやつ。LiDARの中身はこうなっていたのか!
取り付けに関して悩む事はない。
組み上げ
4枚のワッフルを組み上げる。それだけ。
試運転
組み上げたら試運転しよう。電源ケーブルを繋ぎ、Raspberry Pi上の電源スイッチをONにすると、基盤上のLEDが眩しく光りLiDARが回転し始める。
OpenCR基盤上にテストのためのスイッチがあり、これを手順書に指定された通りに押すと、burger君が直進したりその場で回転するといった簡単な動作をする。問題なさそう。
PCの準備
ここからは、一旦ロボットから離れる。PCはあらかじめUbuntuがインストールされたPCを用意しておいたので、ここにe-Manualに従って環境を構築する。
3.1 PC Setup
まず、使用するROSのdistributionを選択する。
Kinetic : 2016 release ROS1
Melodic : 2018 release ROS1
Noetic : 2020 release ROS1
Dashing : 2019 release ROS2
Foxy : 2020 release ROS2
Windows
主目的はROS2だが、まずはROS1で一通り試したい。今後を考えるとできればpython3を使いたい。ということでROS1で最も新しいNoeticを選択。
e-Manualに従ってos imageをダウンロードし、microSDに焼く。
microSDをマウントし、指定された設定ファイルにwifiの設定を追加する。あとはこれをburger側にセットして起動し、pcから接続すれば・・・ここではたと悩む。
『microSDどこに差し込むんだ?』
『起動できたとして、どうやってpcからburgerにssh投げるんだ?』
microSDの差込口が見つからず、webでraspberry Piの資料を漁ってみたところ、基盤の下に差込口があることが発覚。めでたくmicroSDを差し込み、電源ボタンをONにしたところburger君が動きだした!
sshの投げ先はwifiルーターの設定から確認でき、無事接続できた。
3.2 SBC Setup
3.3 OpenCR Setup
手順書に沿ってなんなく終わった。
3.5 Bringup
roslaunch実行。起動。
3.6 Basic Operation
teleopをpc上で起動し、キーボードからburgerを操作する。前進や後退、回転ができる!動いた!これでようやく組み立てに成功した事を確信する。嬉しい。
4.SLAM
次章に続く
この記事が気に入ったらサポートをしてみませんか?