前回、TOMOT-Aro1の機能や各種コマンドを学び、プログラミングに慣れてきた。今回はついにTOMOT-Aro1を動かしていく段階に入ります。
![](https://aizine.ai/wp-content/uploads/2022/03/20220309-01-160x90.jpg)
![](https://aizine.ai/wp-content/uploads/2022/03/20220309-01-160x90.jpg)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
久しぶりだね。今日は更にTOMOT-Aro1とコミュニケーションをとって、もっと仲良くなっていこう。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
先生、ご無沙汰しています。今日を心待ちにしていました。今回もよろしくお願いします。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
もうTOMOT-Aro1の準備はできているね。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
では早速だけど[python /opt/ndc/demo.py]のコマンドを実行していこう。コマンドの実行は覚えてるかな?
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
はい。これは前回も見たコマンドです。「demo.py」というPythonのファイルを実行するんですね。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
アロン先生)
その通り。デモプログラムはいくつか用意されているんだけど、これは色んな動きが試せるから、一緒に少し遊んでみよう。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
コマンドを実行したら、TOMOT-Aro1が動いてリストが表示されました。何やら楽しそうですね。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
Root Menuが表示されたらリストの中から[6]のPlay the motion recorded in JSON fileを実行してくれるかな。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
新しい名前が出てきましたね。「JSON」ってあまり聞き馴染みがないですけど、どういうファイルなんですか?
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
JSONとは「JavaScript Object Notation」の略称なんだけど、JavaScriptのオブジェクトの書き方を元にしたデータフォーマットでPythonなどのサーバサイド言語間のデータのやり取りで使われることも多いんだ。今はそこまで深くまで理解しなくて問題ないけど、ROSやPythonと共に必須の知識になるよ。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
名前だけでも覚えておきます。JSONファイルを実行したら、またたくさんのリストが表示されました。動作の名前みたいなリストですね。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
では、実際に実行してみようか。まずはこれから…[24]を入力してみてくれるかな。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
わあ!TOMOT-Aro1がスクワットをはじめましたよ!すごい、動きが一生懸命でかわいいです。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
面白いでしょう。次は[27]なんてどうかな。モーションを実行する時はケーブルを持って倒れないように注意してね。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
今度はなんと歩いてます。TOMOT-Aro1が歩いていますよ。感動!
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
すごいだろう。一昔前はロボットが2足歩行することすらできなかったんだからね。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
何か気になるものがあれば、実行してみてごらん。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
じゃあ[22]のProposeにしてみようかな。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
さて、どんな動きになるかな。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
ひざまずいて愛の告白してますよ。そして指輪を渡して、、、えー、首がガクっとなって、最後に振られちゃいましたよ(笑)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
プロポーズの結果は残念だったけど、面白いモーションだったね。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
よし、パフォーマンスのデモはこれぐらいにしよう。TOMOT-Aro1で出来る動きがわかってきたんじゃないかな。それでは[Ctrl]+[C]を押してデモプログラムを終了しておこう。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
今度はティーチングデモに挑戦だ。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
はい、お願いします。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
Root Menuに戻ってリストの中から今度は[8]のCapture the motion to the JSON fileを入力しよう。ティーチングできる状態になるんだけど、TOMOT-Aro1が半脱力状態になって倒れるから、必ず手で支えておいてね。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
わっ、TOMOT-Aro1が倒れました!でも、ちゃんと支えていたので大丈夫でした。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
ティーチングでは、好きなポーズを作ってから[Enter]キーを押すことでそのポーズを記録できるよ。無理なポージングをするとTOMOT-Aro1が倒れてしまうので注意してね。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
立たせるだけでも、なかなかバランスが難しいですね。まずは正面を向いた状態にして[Enter]と。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
これを連続して行うことで、一連の動作として再現することができるんだ。動きの考え方としては、アニメーションをイメージしてみてほしい。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
アニメは好きでよく見ます。特にガンダムシリーズが大好きです。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
アニメは滑らかに動いているように見えるけど、静止画を細かく変化させて連続再生することで動きを再現しているんだ。ロボットに覚えさせる動作も同じ考え方になるから、取りたいポーズ間の軌跡も想定しながら、モーションを作るようにしてごらん。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
なるほど。細かく軌跡をイメージして、こんな感じでどうかな。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
アニメ好きとあって筋がいいね。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
もう1点、気をつけて欲しいのは重心だね。今は計算で求めることはできないので、ヤジロベーをイメージしてみてごらん。つり合っている点を下半身で支えるようにしておかないと、倒れてしまうから注意してみよう。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
はい、なるほど。わかりました。できました。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
[Ctrl]+[C]を押して終了しよう。 名前をつけて保存できるから、後でわかりやすいように適当な名前で保存しておこう。保存したファイルはRoot Menuに戻って[6]のPlay the motion recorded in JSON fileから選択できるようになっているよ。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
保存したファイルがありました。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
やったー!良い感じで再現できましたよ!でも途中の動作がイマイチだったなあ。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
そんな時は編集機能を使うといいよ。実は保存したモーションは編集ができるんだ。
Root Menuのリストの中から[7]のAdjust the motion recorded in JSON fileを選択し、[Input number:]に先程のファイル番号を入力して、編集モードにしてみてごらん。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
うわー、細かい数字が並んでいる。1つのポーズに対して、こんなに細かい設定があるんですか?
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
そうだよ。頭に2つ、右腕と左腕に3つずつ。右脚と左脚に6つずつのサーボモーターが搭載されているから、それぞれの角度を0.1度単位で調整できるんだ。いまのポーズを取るまでの時間も10ms単位で調整ができるから、不自然なところがあれば調整してみてほしい。詳しい編集方法は画面下部の<How to adjust>に記載してあるから参考にしながら編集してみようか。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
このポーズの右手の位置が違うので、ここをこう編集してと。これでどうだっ!
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
だいぶ良いんじゃないかな。これがロボットの大きさの大小に関わらず、ロボット制御の基本的な方法になるから覚えておいてほしい。もちろん、もっと大きなロボットになれば複雑になっていくけど。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
わかりました。1枚1枚の絵を書くように、丁寧にしなければなりませんね。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
最後にもっと高度な開発について説明しておこう。この開発には先日も説明した「Python」というプログラム言語を使うよ。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
出ましたね「Python」。Pythonの名称の由来がモンティ・パイソンから来ていると知ってから、アニメ好きとしては注目しておりました。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
妙な思い入れの形だけど、、、注目していたのは素晴らしいね。今や欠かすことができない言語だから。最初はPythonの基本構文と標準ライブラリだけで挑戦してみよう。[nano /opt/ndc/roboappy.py]を実行してごらん。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
(画面をみてフリーズする)私にはまだ難しいようですね、、、
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
もちろん、無理なのは知っているよ。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
とりあえずこのアプリケーションの基本の構成だけでも解説しておこうと思ってね。このアプリケーションは大きく1〜5までのブロックに分かれているよ。
- ライブラリインポートエリア
- グローバル変数定義エリア
- 関数定義エリア
- メイン関数エリア
- メイン関数コール
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
となっていて、それぞれのブロックで必要となる処理を記述しているんだ。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
開発しやすいように配慮されているんですね。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
最初からできる人はいないから、モーションキャプチャの時と同じで、トライアンドエラーで学習していくのが上達への第一歩だよ。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
わかりました。これから勉強してロボットマスターになります!
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
その意気込みがあれば大丈夫。これで一連のレクチャーは終わるけど、楽しさを見出すことができていたら嬉しいよ。
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
![](https://aizine.ai/wp-content/themes/cocoon-master/images/man.png)
こちらこそ、ありがとうございました。すごく楽しかったです!いつの日か先生を驚かせるプログラムを作るので、そのときは見てもらいたいです(笑)。
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
![アロン先生](https://aizine.ai/wp-content/uploads/2022/03/teacher-img.png)
その日を楽しみに待ってるよ!長時間にわたってお疲れ様でした。