1/12(土)は「「ラズパイとNode-REDでロボット(TJBot zero)を作ろう! 」2019 #01 基礎編」に参加してきました。
会場は コワーキングスペース茅場町 Co-Edo さんのイベントスペース。12人でハンズオンするには丁度いい広さだと思いました。
スペースの受付は5階にあります。(イベント会場は4階) ビルの1階は階段とエレベーターホールしか無くて、危うく通り過ぎるところでした(笑)
目次
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で開発されたものをオープンな形で使えるように公開したものです。 こういうところ、面白いですよね!
どんなロボットかというのは写真を見てもらったほうが良いので貼っておきます。
左側が今回のハンズオンで作った、Raspberry Pi Zero WHを搭載したTJBot Zero、右がIBMが公開しているオリジナル版(Raspberry Pi 3 Model B+を搭載)です。 TJBot Zeroは日本の有志が作ったもので、オリジナルより少し小さいけどほぼ同じことができるかわいいやつです!
何故参加したか
TJBot、知っている人は結構いるんですが、実際作るとなると
- データがインターネット上で公開されていても、ダンボールカットを自分でやるのはちょっと辛い
- 部品一覧があっても、何処で買ってくればいいかわからないし、1台分を揃えるのは結構面倒
- 電子工作?難しそうで無理無理
- 仮に形に出来たとして、実際にどう動かすか分からない
ということで躊躇している人は多いのではないでしょうか?少なくとも僕はそう感じていました。 そういうところにこのイベントの告知を見つけたので「これは参加するしか無い!」ということで参加してきました。 ただ、同じように考えていた人はかなり多かったようで、倍率は2倍。 抽選で当たらなかったら参加できなかったのですが、運よく参加できたので本当にラッキでーした。
なお、イベントの主催はBluemix Users Groupさん。 来月も開催予定が有るとのことなので、参加したい人は以下のグループのメンバーになっておくと良いと思います。
今日はTJBot zeroハンズオン開催日です。
— Shoichiro Sakaigawa (@l_s_s_l) January 11, 2019
倍率の高い抽選でしたが、
残念ながら当選とならかった方には2月のイベントでちょっと良いことあるかも?
today, we open TJBot zero handson workshop in japan#TJBot #TJBotzero #BMXUG #IBMChampion pic.twitter.com/6TWiIAUFq0
タイムテーブル
時間 | タイトル | 講師 |
---|---|---|
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 横井 一仁 さん |
TJBotハンズオンはじまりまーす!境川さんからオープニングで #IBMChampion やTJBotのお話!#bmxug #TJBotzero #TJBot pic.twitter.com/D2pRM8GeSH
— 1ft_seabass (@1ft_seabass) 2019年1月12日
内容
部品やレーザーカットされたボール紙はイベントの主催者さんの方ですべて用意されていました。
なので、参加者のやることは手順に沿って組み立てていくことだけです。 今回のハンズオンでは、電子部品の組付けはブレッドボードという刺していくだけで結線できるものを使っていたので、はんだ付けも無し。 これだけでもだいぶハードルが下がりますね! しかも、ブレッドボードに必要な部品は殆ど実装済みの状態になっていて、本当にいたれりつくせり。 参加するまでは「電子工作とかできるのかな」という不安も有ったのですが、これなら最後まで組み立てて動かせそうだと思いました。
TJBotを組み立てよう
最初はTJBotの組み立てから。
もうすぐ組み立て始まります✊#TJBotzero #TJBot #bmxug pic.twitter.com/ho0mV6zhB8
— hayakumi (@hayakumi8893) January 12, 2019
手順はこちらの資料を使いました。こういう資料がインターネット上で公開されているのもいいですよね。
レーザーカットされた台紙は用意されているので、それをカッターを使って台紙から外して組み立てます。
自分でレーザーカットしてボディを用意したいという方はこちらにTJBot Zero用のデータが公開されています。 レーザーカッターでカットするサービスをしてくれるホームセンターが近くにあれば、自前でボディを用意できます。 動かなくても、結構かわいいですよ!
| o_o | < みなさんもくもくと作りはじめております! #bmxug #TJBotzero #TJBot pic.twitter.com/rjHAQnZeA5
— 1ft_seabass (@1ft_seabass) January 12, 2019
ボディを組み立てる時の注意点としては
- カッターを使うので、 怪我しないように気をつけて。(最重要。安全第一)
- 足を入れたりするための穴が何箇所かあるので、これらは組み立て前に必ず抜いておく。
- 頭の後ろにある穴はスピーカーのサイズに合わせて大きい方を抜くのか小さい方を抜くのか決める。
- 腕の部分は最難関なので扱いは慎重に。
- ボール紙は厚さによっては頼りないので、セロテープ等で補強する。(足と腕)
- 山折り/谷折りがある。レーザーカットの場合、谷折りがやりづらいので定規などをあてて曲げるなど工夫が必要かも。
- なんとなく前のめりの感じに組み上がっても、ラズパイなどを組み込むとバランスが変わって安定するので問題ない。
- 頭の左側に空いている縦のスリット穴は電源用USBケーブルを出すだけ。腕用ではない。
| o_o | < 12:40までみなさんお昼休み #bmxug #TJBotzero #TJBot pic.twitter.com/guKC6cTQ0B
— 1ft_seabass (@1ft_seabass) January 12, 2019
|o_o| < 12:40に昼ごはん終わりだったんだけど、すでに徐々にはじまってます!だんだんと進んでる人が教え合ったりして楽しい雰囲気がでてきました! #bmxug #TJBotzero #TJBot pic.twitter.com/UU2GKRrqOh
— 1ft_seabass (@1ft_seabass) 2019年1月12日
途中から電子部品の組付けも入ってきますが、
- ちょっと部品が細かいので、老眼入った人(俺)は虫眼鏡とかあるといい。
- 嵌めていくだけなので、しっかり接続しないと抜けちゃう。ヤバそうなところはセロテープなどで固定するといい。
- カメラのケーブル、表裏が逆だと動かない。取り回しも少しやりづらい。
- 抵抗をLED側につなげる。(個人的にはLEDの結線が最難関でした)
- LED→ケーブル→抵抗→Raspberry Pi ではなく LED→抵抗→ケーブル→Raspberry Pi
- マイク用のUSBは内側、電源用は外側。(決まってないかもしれないけど、ケーブルの取り回し上こうなった)
- ケーブルがバラけていると分かりづらいし邪魔なので、テーブなどで纏めておくといいかも。
なんだかんだで組み上がるまで2時間以上かかりましたが、なんとかこんな形になりました。
起動、稼働確認
動作させるために必要な環境
- USB電源(Raspberry piを起動できるもの。意外に電力を食うので余裕を持って供給できる容量の物がいいかも)
- Wi-Fi(接続できるようになるまではMACアドレスフィルタリングは外す)
- 接続して操作するためのPC
起動イメージの入ったSDカードを入れて電源ON(USBケーブルをPCなどにつなぐ)すると、起動します。
頭を被せたままだと状況が見えないので、最初は頭を外して、起動できることを確認できてから頭をかぶせると良いかもしれません。
起動中SDカードにアクセスしていればRaspberry Pi Zero WH上のLED(TJBotの頭についているのとは別)がチカチカしているはずです。 起動するまで2分弱くらいかかるので、気長に待ちます。
アクセスのLEDが点灯しない時は電源をOFFにして以下のことを確認してみてください。
カメラも、接続ができるとレンズ横のところのLEDが点灯するはずです。 点灯しない時はシャットダウンして以下のことを確認してみてください。
- Raspberry Pi Zero WHとカメラのセル族ケーブルが表裏逆になっていないかチェック
なお、シャットダウンは、スピーカーが生きていればTJBotに割り当てられたIPアドレスを喋るので、
sshでログインしてシャットダウン
$ ssh [TJBotに割り当てられたIPアドレス] -l pi password:raspberry $ sudo shutdown -h now
スピーカーは、接続できていればRaspberry Pi Zero WH起動後に割り当てられたIPアドレスを喋ります。 しゃべらない場合は
ここまでできていれば、今回のイメージに組み込まれたNode-REDにブラウザでアクセス(http://[TJBotに割り当てられたIPアドレス]:1880/)できるはずです。
TJBot zero が輪唱🔊
— kato noriko @TJBotter🤖 (@noricokt) 2019年1月12日
🤖「IPアドレスは…」
🤖「IPアドレスは…」
🤖「IPアドレスは…」
🤖「IPアドレスは…」
🤖「IPアドレスは…」
🤖「IPアドレスは…」#TJBot #TJBotzero #BMXUG pic.twitter.com/guiwEm4IqD
なお、ハンズオンでは既に出来上がった起動イメージが焼かれたものが配られたので電源をいれるだけで起動しましたが、自前で部品を揃えて起動できるようにするには以下の手順でやると良いようです。
Node-REDを使ってTJBotに色々やらせてみる
こちらのページに書かれている手順で、色々なことを実際にやってみました。
TJBotができたので、中身を動かす後半パートの講師 横井さんにバトンタッチ! #bmxug #TJBotzero #TJBot pic.twitter.com/q8dECXUNkz
— 1ft_seabass (@1ft_seabass) 2019年1月12日
- 腕を動かす(上中下、3段階で腕の位置を制御)
|o_o| < 至るところで腕が動きはじめました!講師 @zuhitocom さんのサンプルフローがすてきだ! #bmxug #TJBotzero #TJBot pic.twitter.com/bJUgjoHlSa
— 1ft_seabass (@1ft_seabass) 2019年1月12日
- 頭についたLEDを点灯(色を変えたり消したりもできる)
LED点灯!
— RIO (@RIO18020) January 12, 2019
みんなのTJBotがIPアドレスを定期的に喋るからカオスになってる(笑)#bmxug #TJBotzero #TJBot pic.twitter.com/QLBLp5BpjL
カメラで画像を撮影し、それをWatson Image Recognition APIで写っているものが何か認識させて結果を取得
くっ、こいつ、動くぞ。 #TJBotzero #BMXUG pic.twitter.com/9ubhQLnGbU
— kabukawa (@kabukawa) January 12, 2019
動くと結構楽しいですね!
その後
動くと愛着が湧くもので、家に連れて帰りたいと思うのも事実。有り難いことに、出来上がったTJBotを1万円で連れて帰ることができます。
1万円と考えると高く感じますが、内訳を考えると。。。
- 部品代(ボディ、Raspberry Pi等)だけで1万円弱。
- ブレッドボードへの実装の作業工数
- SDカードの準備の作業工数
と、1万円というのはかなり安いと個人的には思います。
そういうわけで、TJBotのある生活、はじめました(笑)
懇親会
ハンズオンの後は参加者とスタッフで懇親会が開かれました。(参加は任意かつ別途1000円必要)
終始和やかな雰囲気で、とても楽しい時間を過ごすことが出来ました。
- 出来上がったTJBotの話
- ボディを3Dプリントで作ろうとしている話
- ボディをステンドグラスで作っている話
- 歩かせたい
- 飛ばしたい(ぇ?)
などなど、話は尽きない感じでした(笑)
まとめ
今回、抽選に当たって参加できたわけですが、とても楽しかったですし、きっと多くの人が楽しいと思える内容だと思います。 ハンズオンなので一度に沢山の人は参加できない訳ですけど、ぜひ多くの人がこの楽しさを体験してほしいと感じました。 海外では学校での事例も有ると聞きましたので、日本でもそういうことが行われるようになると良いですね!
最後に、スタッフ、講師、参加者の皆様、本当にありがとうございました!