二足歩行ロボットキット研修(shota編)二足歩行ロボット研修

MAX-E1をR+ Task 3.0で動かす【二足歩行ロボットキット研修(shota編)6】

二足歩行ロボットキット研修(shota編)
R+ Task 3.0でモーション作成

こんにちは。二足歩行ロボット研修中のshota(@マウス@ヒューマノイド)です。
この研修では、ROBOTIS社のロボットキットMAX-E1を動かし、競技会HACの走破を目指しています。

今回はMAX-E1をR+ Task 3.0アプリで動かします。

前回の記事はこちら

R+ Task 3.0とは

R+ Task 3.0は、ROBOTIS社が公開しているROBOTIS社製ロボットを動かすPCアプリケーションです。
「ロボットの動きのセットを3Dインタフェースで作成できる」Motion Programmingと、
センサやコントローラ信号をもとに「どのMotionを再生するかをプログラミングできる」Task Programmingが特徴です。

R+ Task 3.0

R+ Task 3.0

今回はMotion Programmingを行います。
また、Task Programmingはこの研修で扱いません。マウスのクリックや、ドラッグ&ドロップで簡単にプログラミングできるのは良いですが、その分、開発の自由度が低くなることが理由です。

Motion Programmingとは

motion_construction 引用元:https://emanual.robotis.com/docs/en/software/rplustask3/motion_programming/#motion-programming

Motion Programmingでは、Key-FrameMotion UnitMotionMotion Groupをという動きのブロックを作成します。

Key-Frameは、ロボットの瞬間的な姿勢です。ロボットの姿勢をカメラで撮影したものがKey-Frame、とイメージしてよいと思います。

そのKey-Frameを並べたものがMotion Unitです。写真を並べて短い動画をつくるイメージです。
Key-Frameを並べるだけでは姿勢が瞬間的に変わってしまいそうですが、Unit作成時にKey-Frame間の動きをきれいにつなげてくれるので、心配無用です。

その後、Motion Unitを並べた、Motion。Motionを集めたMotion Groupを作成します。

まず初めに、Motion Unitを作ります。

Motion Unitを作成する

今回は準備運動(warm up)をテーマにMotionを作成します。

そして、出来上がったものがこちらです。

腕の準備運動もします。

それぞれ、warm_up_kneewarm_up_armという名前で作成しています。

Motionを作成する

MotionはMotion Unitを並べたものです。
ただ並べるだけではなく、Unitの再生速度を変更したり、繰り返し再生したりできます。

まずは、warm_up_kneeとwarm_up_armを並べて、屈伸運動の後に腕のストレッチをするMotionを作成します。
これをwarm_upという名前で作成しました。

また、腕の準備運動(warm_up_arm)が、バイバイ~~と手を振る動作に見えたのでbye_byeというMotionも作成しました。

Motionを再生してみると、UnitとUnitのつなぎ目が途切れて、動きが急に変化していることがわかります。
そのため、他のUnitとつなげることを考えながら、Motion Unitを作成したほうがよさそうです。

Motion Groupを作成する

Motion Groupの作成は簡単です。
MAX-E1の制御ユニットであるCM-550に、どのMotionを書き込みたいかを選び、グループにするだけです。

作成したwarm_upとbye_byeをまとめたfirst_motion_groupというグループを作成し、CM-550に書き込みます。

Motion Groupの作成

ここで注目するのは、各Motionの隣にある数字です。warm_upには1が、bye_byeには2が設定されています。
これがMotionの再生番号になります。
Motionを再生するときは、この番号を指定します。

Dynamixel Wizard 2.0を使ってMotionを再生する

それではMotionを再生してみます。
Motionを再生するには、CM-550に指令を送らなければなりません。
今回はDyanmixel Wizard 2.0を使用して、PCからCM-500に指令を送信します。

Dynamixel Wizard 2.0のPacket送信画面を開きます。
通信ポート(COM5)とボーレート(57600)を設定してポートをOpenします。

CM-550のControl Tableより、
Address 66のMotion Index Numberに再生したいMotionの番号を書き込むと、Motionを再生できます。

また、CM-550自体のIDは200です(Address 7参照)。

ということで、ID 200のAddress 66に1を書き込んでみます。

Dynamixel Wizard 2.0からモーション再生

1番のMotionであるwarm_upが再生されました。

つづいてMotionの2番を書きこんだ結果がこちらです。

作った通りに動いてくれました。

まとめ

Motionの作り方がわかったので、前進歩行、回転、ものをつかむ、などのMotionを作っていけば、競技会に向けて準備できそうです。

が、しかし、1からMotionを作るのは大変です。。。。

そこで、Motionを作るのは一旦保留し、あらかじめ用意されているサンプルを使うことにします。
まずは既存のMotionを組み合わせて競技会に参加することを目指します。

(マイクロマウス研修でも、1年目はPi:Coキットを使い、2年から自作マウスを作成してましたね。)

ということで、次回はDynamixel SDKを使って、Linux PCからMAX-E1を動かしてみます。

タイトルとURLをコピーしました