Above & Beyond

日々のアウトプット記録

「ラズパイとNode-REDでロボット(TJBot zero)を作ろう! 」2019 #01 基礎編

1/12(土)は「「ラズパイとNode-REDでロボット(TJBot zero)を作ろう! 」2019 #01 基礎編」に参加してきました。

bmxug.connpass.com

f:id:kabukawa:20190107181550p:plain:w400

会場は コワーキングスペース茅場町 Co-Edo さんのイベントスペース。12人でハンズオンするには丁度いい広さだと思いました。

f:id:kabukawa:20190112100832j:plain:w600 f:id:kabukawa:20190112100851j:plain:w385f:id:kabukawa:20190112121323j:plain:w215

スペースの受付は5階にあります。(イベント会場は4階) ビルの1階は階段とエレベーターホールしか無くて、危うく通り過ぎるところでした(笑)

f:id:kabukawa:20190112094601j:plain:w400


目次


TJBot とは

以下のページの最初に簡潔に書かれていますので今北産業で引用すると

TJBotとは、レーザカットや3Dプリント用のデータがインターネット上に公開されており、自作できる人工知能ロボットです。
これまでのTJBotは、Raspberry Pi 3 Model B+を搭載できる様になっていましたが、今回紹介するTJBot ZeroはRaspberry Pi Zero WHを搭載できる少し小さめのTJBotです。
ラズパイを搭載しているため、Node-REDを用いて簡単にロボットを操作したり、人工知能APIと連携したりできます。

自作AIロボットTJBot Zeroで遊んでみる - Qiita

というものです。特徴としては

  • ロボットのボディを作るためのデータがインターネット上で公開されている
  • ロボットとして動かすための部品一覧も併せて公開されている
  • クラウドサービスと連携させることで画像認識や音声認識などを組み込むことができる
  • Raspberry Piに組み込まれたNode-RED等を使って、簡単にプログラムを作成できる

という感じで、やる気と部品を購入するお金があれば誰でもロボットが作れるキット、という感じですかね。 ググってみると分かりますが、元々IBM Researchで開発されたものをオープンな形で使えるように公開したものです。 こういうところ、面白いですよね!

どんなロボットかというのは写真を見てもらったほうが良いので貼っておきます。

f:id:kabukawa:20190112101813j:plain

左側が今回のハンズオンで作った、Raspberry Pi Zero WHを搭載したTJBot Zero、右がIBMが公開しているオリジナル版(Raspberry Pi 3 Model B+を搭載)です。 TJBot Zeroは日本の有志が作ったもので、オリジナルより少し小さいけどほぼ同じことができるかわいいやつです!


何故参加したか

TJBot、知っている人は結構いるんですが、実際作るとなると

  • データがインターネット上で公開されていても、ダンボールカットを自分でやるのはちょっと辛い
  • 部品一覧があっても、何処で買ってくればいいかわからないし、1台分を揃えるのは結構面倒
  • 電子工作?難しそうで無理無理
  • 仮に形に出来たとして、実際にどう動かすか分からない

ということで躊躇している人は多いのではないでしょうか?少なくとも僕はそう感じていました。 そういうところにこのイベントの告知を見つけたので「これは参加するしか無い!」ということで参加してきました。 ただ、同じように考えていた人はかなり多かったようで、倍率は2倍。 抽選で当たらなかったら参加できなかったのですが、運よく参加できたので本当にラッキでーした。

なお、イベントの主催はBluemix Users Groupさん。 来月も開催予定が有るとのことなので、参加したい人は以下のグループのメンバーになっておくと良いと思います。

bmxug.connpass.com


タイムテーブル

時間 タイトル 講師
10:30~10:40 コミュニティからのお知らせ IBM Champion
境川 章一郎 さん
10:40~14:00 TJBotを組み立てよう
TJBotカット済みダンボールの組み立て。
TJBotのコア部分(Raspberry Pi Zero WH)
IBM Champion
田中 正吾 さん
14:00~15:30 Node-REDを使用してTJBotを動かそう
TJBotの基本動作紹介, IBM CloudとTJBotを連携しよう
IBM Champion
横井 一仁 さん


内容

部品やレーザーカットされたボール紙はイベントの主催者さんの方ですべて用意されていました。

f:id:kabukawa:20190112100818j:plain

なので、参加者のやることは手順に沿って組み立てていくことだけです。 今回のハンズオンでは、電子部品の組付けはブレッドボードという刺していくだけで結線できるものを使っていたので、はんだ付けも無し。 これだけでもだいぶハードルが下がりますね! しかも、ブレッドボードに必要な部品は殆ど実装済みの状態になっていて、本当にいたれりつくせり。 参加するまでは「電子工作とかできるのかな」という不安も有ったのですが、これなら最後まで組み立てて動かせそうだと思いました。


TJBotを組み立てよう

最初はTJBotの組み立てから。

手順はこちらの資料を使いました。こういう資料がインターネット上で公開されているのもいいですよね。

TJBot Zero 組み立てガイド

レーザーカットされた台紙は用意されているので、それをカッターを使って台紙から外して組み立てます。

自分でレーザーカットしてボディを用意したいという方はこちらにTJBot Zero用のデータが公開されています。 レーザーカッターでカットするサービスをしてくれるホームセンターが近くにあれば、自前でボディを用意できます。 動かなくても、結構かわいいですよ!

www.ibm.com

ボディを組み立てる時の注意点としては

  • カッターを使うので、 怪我しないように気をつけて。(最重要。安全第一)
  • 足を入れたりするための穴が何箇所かあるので、これらは組み立て前に必ず抜いておく。
  • 頭の後ろにある穴はスピーカーのサイズに合わせて大きい方を抜くのか小さい方を抜くのか決める。
  • 腕の部分は最難関なので扱いは慎重に。
  • ボール紙は厚さによっては頼りないので、セロテープ等で補強する。(足と腕)
  • 山折り/谷折りがある。レーザーカットの場合、谷折りがやりづらいので定規などをあてて曲げるなど工夫が必要かも。
  • なんとなく前のめりの感じに組み上がっても、ラズパイなどを組み込むとバランスが変わって安定するので問題ない。
  • 頭の左側に空いている縦のスリット穴は電源用USBケーブルを出すだけ。腕用ではない。

途中から電子部品の組付けも入ってきますが、

  • ちょっと部品が細かいので、老眼入った人(俺)は虫眼鏡とかあるといい。
  • 嵌めていくだけなので、しっかり接続しないと抜けちゃう。ヤバそうなところはセロテープなどで固定するといい。
  • カメラのケーブル、表裏が逆だと動かない。取り回しも少しやりづらい。
  • 抵抗をLED側につなげる。(個人的にはLEDの結線が最難関でした)
  • マイク用のUSBは内側、電源用は外側。(決まってないかもしれないけど、ケーブルの取り回し上こうなった)
  • ケーブルがバラけていると分かりづらいし邪魔なので、テーブなどで纏めておくといいかも。

なんだかんだで組み上がるまで2時間以上かかりましたが、なんとかこんな形になりました。

f:id:kabukawa:20190112133927j:plain


起動、稼働確認

動作させるために必要な環境

  • USB電源(Raspberry piを起動できるもの。意外に電力を食うので余裕を持って供給できる容量の物がいいかも)
  • Wi-Fi(接続できるようになるまではMACアドレスフィルタリングは外す)
  • 接続して操作するためのPC

起動イメージの入ったSDカードを入れて電源ON(USBケーブルをPCなどにつなぐ)すると、起動します。

頭を被せたままだと状況が見えないので、最初は頭を外して、起動できることを確認できてから頭をかぶせると良いかもしれません。

起動中SDカードにアクセスしていればRaspberry Pi Zero WH上のLED(TJBotの頭についているのとは別)がチカチカしているはずです。 起動するまで2分弱くらいかかるので、気長に待ちます。

アクセスのLEDが点灯しない時は電源をOFFにして以下のことを確認してみてください。

  • 電源が入らない
    接触が悪くないかUSBケーブルを抜き差ししてチェック
  • SDカードが入っていない/読めない
    → SDカードを入れ忘れていないか、接触が悪くないかチェック

カメラも、接続ができるとレンズ横のところのLEDが点灯するはずです。 点灯しない時はシャットダウンして以下のことを確認してみてください。

  • Raspberry Pi Zero WHとカメラのセル族ケーブルが表裏逆になっていないかチェック

なお、シャットダウンは、スピーカーが生きていればTJBotに割り当てられたIPアドレスを喋るので、

sshでログインしてシャットダウン

$ ssh [TJBotに割り当てられたIPアドレス] -l pi
password:raspberry

$ sudo shutdown -h now

スピーカーは、接続できていればRaspberry Pi Zero WH起動後に割り当てられたIPアドレスを喋ります。 しゃべらない場合は

  • 音が全く出ない
    接触が悪くないかUSBケーブルを抜き差ししてチェック
  • IPアドレスをしゃべらない
    → SDカードに入ったイメージが壊れていないかチェック

ここまでできていれば、今回のイメージに組み込まれたNode-REDにブラウザでアクセス(http://[TJBotに割り当てられたIPアドレス]:1880/)できるはずです。


なお、ハンズオンでは既に出来上がった起動イメージが焼かれたものが配られたので電源をいれるだけで起動しましたが、自前で部品を揃えて起動できるようにするには以下の手順でやると良いようです。


Node-REDを使ってTJBotに色々やらせてみる

こちらのページに書かれている手順で、色々なことを実際にやってみました。

qiita.com

  • 腕を動かす(上中下、3段階で腕の位置を制御)

  • 頭についたLEDを点灯(色を変えたり消したりもできる)

  • カメラで画像を撮影し、それをWatson Image Recognition APIで写っているものが何か認識させて結果を取得

  • Twitter APIでツイートされたテキストから腕が動いたりLEDが点灯したり

動くと結構楽しいですね!


その後

動くと愛着が湧くもので、家に連れて帰りたいと思うのも事実。有り難いことに、出来上がったTJBotを1万円で連れて帰ることができます。

1万円と考えると高く感じますが、内訳を考えると。。。

  • 部品代(ボディ、Raspberry Pi等)だけで1万円弱。
  • ブレッドボードへの実装の作業工数
  • SDカードの準備の作業工数

と、1万円というのはかなり安いと個人的には思います。

f:id:kabukawa:20190113120853j:plain

そういうわけで、TJBotのある生活、はじめました(笑)


懇親会

ハンズオンの後は参加者とスタッフで懇親会が開かれました。(参加は任意かつ別途1000円必要)

f:id:kabukawa:20190112155555j:plain:w600 f:id:kabukawa:20190112155603j:plain:w300f:id:kabukawa:20190112155608j:plain:w300

終始和やかな雰囲気で、とても楽しい時間を過ごすことが出来ました。

  • 出来上がったTJBotの話
  • ボディを3Dプリントで作ろうとしている話
  • ボディをステンドグラスで作っている話
  • 歩かせたい
  • 飛ばしたい(ぇ?)

などなど、話は尽きない感じでした(笑)


まとめ

今回、抽選に当たって参加できたわけですが、とても楽しかったですし、きっと多くの人が楽しいと思える内容だと思います。 ハンズオンなので一度に沢山の人は参加できない訳ですけど、ぜひ多くの人がこの楽しさを体験してほしいと感じました。 海外では学校での事例も有ると聞きましたので、日本でもそういうことが行われるようになると良いですね!

最後に、スタッフ、講師、参加者の皆様、本当にありがとうございました!