10: 2011-09-28 (水) 20:29:37 eid7gud ソース 現: 2011-11-13 (日) 15:08:44 takaboo ソース
Line 1: Line 1:
TITLE:FREEDOM jr.III Sample Code TITLE:FREEDOM jr.III Sample Code
- 
[[GCC Developer Lite Ver2.4.0.13>GDL#DOWNLOAD]]のリリースに合わせ、本サンプルも改訂されているため、それよりも古いバージョンを使用している場合は最新版をインストールしてください。 [[GCC Developer Lite Ver2.4.0.13>GDL#DOWNLOAD]]のリリースに合わせ、本サンプルも改訂されているため、それよりも古いバージョンを使用している場合は最新版をインストールしてください。
- +**FREEDOM III Library [#a882609e]
-|CENTER:BGCOLOR(red):||c +
-|  :idea:|''現在GCC Developer Liteの公開調整中の為、本ページの内容は改訂中となっています''。| +
- +
-*FREEDOM III Library [#a882609e]+
FREEDOM III Libraryについては[[こちら>FREEDOM III Library]]をご覧下さい。~ FREEDOM III Libraryについては[[こちら>FREEDOM III Library]]をご覧下さい。~
~ ~
-*ダウンロード [#l911f88a] +**ダウンロード [#l911f88a] 
-*基本サンプルプログラム一覧 [#jcfdc388] +サンプルプログラムは以下のURLにZIP形式の圧縮ファイルで設置。適宜アーカイバにて解凍して使用の事。 
-サンプルプログラムは全部で7本となりますが、共通フォルダを利用して複数のファイルを共有しています。+-''2011/11/7 Ver.3.0''~ 
 +最新FREEDOM III Libraryに対応~ 
 +ダイナミック歩行ルーチンの見直し~ 
 +マルチタスク化~ 
 +サンプル数の集約 
 +#ref(http://www.besttechnology.co.jp/dow​nload/FDJRIII_SMPL3.0.ZIP)
-**SMPL1.c [#t6bbc743]+**共通事項 [#jcfdc388] 
 +***マクロ [#sb88f205] 
 +FREEDOM Jr.IIIシリーズは構成が異なっていても、同一のサンプルプログラムとして提供されています。但し、製品の構成により以下に該当するコードを修正(コメントの位置を変更)する必要があります。~ 
 +: BTH050/BTH051 FREEDOM Jr.III Basic/Complete Kit | 
 +#html{{ 
 +<pre class="brush: c; ruler : true; toolbar: false; highlight: 2"> 
 +// ★人型へのアクチュエータの割り当て(いずれか1種類を選択 使用環境に一致させる) 
 +#include "share/HumanoidSpecAX12.c" 
 +//#include "share/HumanoidSpecRX28.c" 
 +//#include "share/HumanoidSpecRX28_2.c" 
 +</pre> 
 +}} 
 +:BTH072 FREEDOM Jr.III RX-28 Edition(初期型) | ID2~4及び7~9の出力軸が脚の内側に向いているバージョン 
 +#html{{ 
 +<pre class="brush: c; toolbar: false; highlight: 3"> 
 +// ★人型へのアクチュエータの割り当て(いずれか1種類を選択 使用環境に一致させる) 
 +//#include "share/HumanoidSpecAX12.c" 
 +#include "share/HumanoidSpecRX28.c" 
 +//#include "share/HumanoidSpecRX28_2.c" 
 +</pre> 
 +}} 
 +:BTH072 FREEDOM Jr.III RX-28 Edition(最新型) | ID2~4及び7~9の出力軸が脚の外側に向いているバージョン 
 +#html{{ 
 +<pre class="brush: c; toolbar: false; highlight: 4"> 
 +// ★人型へのアクチュエータの割り当て(いずれか1種類を選択 使用環境に一致させる) 
 +//#include "share/HumanoidSpecAX12.c" 
 +//#include "share/HumanoidSpecRX28.c" 
 +#include "share/HumanoidSpecRX28_2.c" 
 +</pre> 
 +}} 
 +: リモートコントローラとしてSIXAXISを使用 | 
 +#html{{ 
 +<pre class="brush: c; toolbar: false; highlight: 2"> 
 +// ★リモートコントローラの選択 (いずれか1種類を選択) 
 +#define SIXAXIS 
 +//#define RC100 
 +</pre> 
 +}} 
 +: リモートコントローラとしてRC-100Bを使用 | 
 +#html{{ 
 +<pre class="brush: c; toolbar: false; highlight: 3"> 
 +// ★リモートコントローラの選択 (いずれか1種類を選択) 
 +//#define SIXAXIS 
 +#define RC100 
 +</pre> 
 +}}
-**SMPL2.c [#r8b03390]+***shareフォルダ [#e5d47141] 
 +いずれのサンプルプログラムも本フォルダに含まれるファイルをインクルードする事で処理ないしデータを共有しています。~ 
 +人型向けに構造の定義をしなおしているヘッダ、デフォルトのモーションデータの定義、製品構成に依存するファイル、歩行サブルーチンといったものが含まれます。~ 
 +また、インクルードする順序を要求するものもありますので、注意が必要です。
-**SMPL3.c [#uce44ab9]+****Humanoid16Axis.h [#oba7d5c8] 
 +fd.hで宣言されている一部の構造体を、人型向に再定義しています。他に、再定義に伴うAPIのウォーニングを抑止するための関数の型変換といったマクロも含まれます。
-**SMPL4.c [#j87569e4]+このヘッダファイルで定義されるTHumanoid/THumanoidHomePosition/THumanoi​dMotion構造体はあくまで便宜的な定義に過ぎず、FREEDOM III Libraryで定義されているTStructure/THomePosition/TPose構造体と同じものとして扱われます。
-**SMPL5.c [#f13e2cc0]+****HumanoidSpecAX12.c [#g8816dc3] 
 +Dynamixel AX-12シリーズを使用した16軸人型ロボット用のTSpec構造体(IDや動作範囲、制限値といった諸元)を宣言しています。
-**SMPL6.c [#u5703b05]+****HumanoidSpecRX28.c [#ia35a8be] 
 +Dynamixel RX-28を使用した初期型(脚部のID2~4及び7~9の出力軸が脚の内側に向いているバージョン)16軸人型ロボット用のTSpec構造体(IDや動作範囲、制限値といった諸元)を宣言しています。
-**SMPL7.c [#h7cb8a09+****HumanoidSpecRX28_2.c [#h8b065fd
-モーション作成・再生・歩行といった一連の操作を取り入れたサンプルです。+Dynamixel RX-28を使用した最新型(脚部のID2~4及び7~9の出力軸が脚の外側に向いているバージョン)16軸人型ロボット用のTSpec構造体(IDや動作範囲、制限値といった諸元)を宣言しています。
-**shareフォルダ [#e5d47141+****HumanoidWalk.c [#d2e45c8a
-上記のサンプルプログラムにおいて共通で使用されるファイルが含まれます。+IKによるダイナミック歩行サブルーチンで、TASK4にて動作します。セマフォとしてSEM_USER3が使用されます。~ 
 +片脚6軸構成を想定し、各軸間距離(TLegDim)と足の座標(TFootPos)を元にIKを解き(CalInvkine関数)ます。足の裏と腰が常時平行である事を前提として簡単化していますので、この条件が崩れると計算は破綻します。~ 
 +TASK4では歩容を決定づけるパラメータ(TLimitWalkParam, TWalkParam, TWalkSysParam)を元に経過時間とGait関数にて歩容を作り出し、必要に応じてfd_SendMomentMotionを使ってアクチュエータへ角度にて指令するといった具合です。なお、外部からはSetWalkSysParam, SetWalkParam, GetWalkStat関数にて全ての挙動を操作します。
-****Humanoid16Axis.h [#oba7d5c8+歩容を決定付けるTWalkParam構造体には、以下のメンバが含まれます。 
-fd.hで行っているモーションデータの管理用構造体を、人型ロボット向けとして再定義しています。+-int16_t CentroidHight~ 
 +重心位置を[mm*10]で指定。 
 +-int16_t Step~ 
 +前後方向の歩幅を[mm*10]で指定。+で前、-で後方向に歩く。 
 +-int16_t WaistHight~ 
 +腰を下げる量を[mm*10]で指定。 
 +-int16_t FootLift~ 
 +足持ち上げ量を[mm*10]で指定。 
 +-int16_t SidleStep~ 
 +左右横歩きの歩幅を[mm*10]で指定。+で右、-で左方向に横歩きする。 
 +-int16_t TurnAngle~ 
 +旋回角度を[deg*10]で指定。ヨー軸が無いため、実質機能しない。 
 +-int16_t Speed~ 
 +歩行動作速度を指定。
-****HumanoidSpecAX12.c [#g8816dc3+****HumanoidSampleMotionData.c [#oc3fe248
-AX-12用(AX-12/AX-12A/AX-12+共通)の16軸人型ロボット用のTSpec構造体を定義しています。+人型用のデフォルト用ホームポジションと、いくつかのモーションデータの定義、さらにはそれらのデータをSDカードへ書込むためのサブルーチンが定義されています。
-****HumanoidSpecRX28.c [#ia35a8be] +ホームポジションはアクチュエータやアセンブリ方法による個体差があるため、ここで定義される値が全ての筐体に無条件で適用できるものではありません。必ず微調整がなされた上で使用すべき重要なパラメータです。~ 
-RX-28用の16軸人型ロボット用のTSpec構造体を定義しています。+モーションデータは角度データであるため本来は個体差が無いものですが、角度から位置へ変換してアクチュエータへ指令されるために、アクチュエータの利にありティーに依存します。また、重心位置等が考慮されながら実行されるものではないため、やはり微調整が必要なパラメータとなります。~ 
 +なお、ほとんどのサンプルプログラムではこれらのデータをSDカード上に書き込んだ上で運用する前提になっており、各サンプルプログラム内に微調整を行うためのサブルーチンが含まれています。
-****HumanoidWalk.c [#d2e45c8a+**一覧 [#fafbd7e6] 
-16軸人型ロボット用歩行サブルーチンです。+***SMPL1(Init).c [#t6bbc743
 +ホームポジションデータ・モーションデータを作成します。モーションデータはSDカード上に作成され、他のサンプルプログラムから読み出して再生することが可能です。~ 
 +本サンプルプログラムではキーボードからの入力とコンソール([[SIMPLE TERM:http://www.besttechnology.co.jp/mod​ules/knowledge/?GCC%20Developer%20Lite#S​TERM]])への出力を想定しています。
-****HumanoidSampleMotionData.c [#oc3fe248+: キーボード入力 | 
-AX-12向け16軸人型ロボット用のデフォルト用ホームポジションといくつかのモーションデータの定義と、モーションデータをSDカードへ書込むAPIが用意されています。+| 入力キー | 説明 |h 
 +| I |SDカードにデフォルトのホームポジション・モーションデータを作成・上書きします。主に初回の起動時に利用します。 | 
 +| m |全身脱力(全アクチュエータの位置決め制御がOFF)になります。 | 
 +| f |全身硬直(全アクチュエータの位置決め制御がON)になります。 | 
 +| h |現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。 | 
 +| c |全アクチュエータの状態を確認します。 | 
 +| ESCキー |プログラムを終了します。 | 
 +| その他 |メッセージを表示します。 | 
 + 
 +***SMPL2(PlayMotion_KB).c [#r8b03390] 
 +モーションの再生を行います。 
 + 
 +: キーボード入力 | 
 +| 入力キー | 説明 |h 
 +| 1 |ホームポジションへ移動するモーションを再生します。 | 
 +| 2 |お辞儀をするモーションを再生します。 | 
 +| 3 |右腕を振るモーションを再生します。 | 
 +| 4 |片足立ちをするモーションを再生します。 | 
 +| 5 |プログラム内の左腕を振るモーションを再生します。 | 
 +| I |SDカードにデフォルトのホームポジション・モーションデータを作成・上書きします。主に初回の起動時に利用します。 | 
 +| m |全身脱力(全アクチュエータの位置決め制御がOFF)になります。 | 
 +| f |全身硬直(全アクチュエータの位置決め制御がON)になります。 | 
 +| h |現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。 | 
 +| c |全アクチュエータの状態を確認します。 | 
 +| ESCキー |プログラムを終了します。 | 
 +| その他 |メッセージを表示します。 | 
 + 
 +***SMPL3(PlayMotion_RC).c [#uce44ab9
 +モーションの再生を行います。~ 
 +本サンプルプログラムではリモートコントローラ([[RC-100B:http://www.besttechnology.co.jp/mod​ules/knowledge/?BTX048%20RC-100B]]/SIXAX​IS)とキーボードからの入力とコンソール([[SIMPLE TERM:http://www.besttechnology.co.jp/mod​ules/knowledge/?GCC%20Developer%20Lite#S​TERM]])への出力を使用します。 
 + 
 +:ボタン操作方法 | 
 +| ボタン | 説明 |h 
 +| RC-100B/SIXAXIS |^|h 
 +| [1]/[△] |ホームポジションへ移動します。 | 
 +| [2]/[□] |お辞儀をします。 | 
 +| [3]/[×] |右腕を振ります。 | 
 +| [4]/[○] |片足立ちをします。 | 
 +| [5]/[R1] |右旋回をします。 | 
 +| [6]/[L1] |左旋回をします。 | 
 +| [U]/[↑] |左腕を振ります。 | 
 +| [D]/[↓] |しゃがみます。(離すと立ち上がります) | 
 +| [L]/[←] |左側への攻撃を行います。 | 
 +| [R]/[→] |右側への攻撃を行います。 | 
 + 
 +: キーボード入力 | 
 +| キー | 説明 |h 
 +| I |SDカードにデフォルトのホームポジション・モーションデータを作成します。主に初回の起動時に利用します。 | 
 +| m |全身脱力(全アクチュエータの位置決め制御がOFF)になります。 | 
 +| f |全身硬直(全アクチュエータの位置決め制御がON)になります。 | 
 +| h |現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。 | 
 +| c |全アクチュエータの状態を確認します。 | 
 +| ESCキー |プログラムを終了します。 | 
 + 
 +***SMPL4(EditMotion_KB).c [#j87569e4] 
 +モーションの作成・再生を行います。~ 
 +本サンプルプログラムではキーボードからの入力とコンソール([[SIMPE TERM:http://www.besttechnology.co.jp/mod​ules/knowledge/?GCC%20Developer%20Lite#S​TERM]])への出力を使用します。~ 
 +#ref(motion.png) 
 + 
 +: キーボード入力 | 
 +| キー | 説明 |h 
 +| l |モーションを読み出して、ポーズ1を再生します。 | 
 +| s |編集中のモーションを保存します。 | 
 +| k |保存されたモーションを選択して削除します。 | 
 +| n |全身脱力(全アクチュエータの位置決め制御がOFF)になります。 | 
 +| o |全身硬直(全アクチュエータの位置決め制御がON)になります。 | 
 +| p |編集中のモーションをポーズ1から再生します。 | 
 +| e |再生中のモーションを停止します。 | 
 +| f |次のポーズを再生します。 | 
 +| r |前のポーズを再生します。 | 
 +| a |再生中のポーズの補間方式を変更します。 | 
 +| x |再生中のポーズの遷移時間を短縮します。 | 
 +| z |再生中のポーズの遷移時間を延長します。 | 
 +| g |編集中のモーションの最後に、現在のFREEDOM Jr.IIIの姿勢を新しいポーズとして追加します。 | 
 +| d |再生中のポーズを削除します。 | 
 +| i |再生中のポーズの前に、現在のFREEDOM Jr.IIIの姿勢を新しいポーズとして追加します。 | 
 +| m |再生中のポーズを、現在のFREEDOM Jr.IIIの姿勢で置き換えます。 | 
 +| c |編集中のモーションを破棄します。 | 
 +| w |ホームポジションに移動します。 | 
 +| h |現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。 | 
 +| I |SDカードにデフォルトのホームポジション・モーションデータを作成・上書きします。主に初回の起動時に利用します。 | 
 +| q |プログラムを終了します。 | 
 + 
 +***SMPL5(Walk_KB).c [#f13e2cc0] 
 +歩行します。~ 
 +本サンプルプログラムではキーボードからの入力とコンソール([[SIMPE TERM:http://www.besttechnology.co.jp/mod​ules/knowledge/?GCC%20Developer%20Lite#S​TERM]])への出力を使用します。 
 +: キーボード入力 | 
 +| キー | 説明 |h 
 +| 1 |歩行を開始します。 | 
 +| 2 |右腕を振ります。 | 
 +| 3 |右旋回します。 | 
 +| 4 |左旋回します。 | 
 +| 5 |ホームポジションへ移動します。歩行中の場合は停止します。 | 
 +| 6 |倒れていた場合、起き上がります。 | 
 +| n |全身脱力(全アクチュエータの位置決め制御がOFF)になります。 | 
 +| h |現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。 | 
 +| C |全アクチュエータの状態を確認します。 | 
 +| ESCキー |プログラムを終了します。 | 
 + 
 +: 歩行中のみ有効なキーボード入力 | 
 +| キー | 説明 |h 
 +| 8 |重心を1cm上げます。 | 
 +| 9 |重心を1cm下げます。 | 
 +| w |前進用に歩幅を5mm広げますが、後進中は歩幅を狭めます。 | 
 +| x |後進用に歩幅を5mm広げますが、前進中は歩幅を狭めます。 | 
 +| r |腰の位置を1mm下げます。 | 
 +| t |腰の位置を1mm上げます。 | 
 +| v |歩行動作速度を早くします。 | 
 +| b |歩行動作速度を遅くします。 | 
 +| d |右側への横歩幅を5mm広げますが、左横歩き中は歩幅を狭めます。 | 
 +| a |左側への横歩幅を5mm広げますが、右横歩き中は歩幅を狭めます。 | 
 +| f |足の持ち上げ量を0.5mm上げます。 | 
 +| g |足の持ち上げ量を0.5mm下げます。 | 
 +| s |歩行パラメータをデフォルト値に再設定します。 | 
 +| z |歩行を減速停止します。 | 
 +| c |歩行を強制停止します。 | 
 + 
 +***SMPL6(Full).c [#h7cb8a09] 
 +モーション作成・再生・歩行といった一連の操作を取り入れたサンプルです。~ 
 +本サンプルプログラムではリモートコントローラ([[RC-100B:http://www.besttechnology.co.​jp/modules/knowledge/?BTX048%20RC-100B]]​/SIXAXIS)の入力(キーボード入力にも対応)、及びコンソール([[SIMPLE TERM:http://www.besttechnology.co.jp/mod​ules/knowledge/?GCC%20Developer%20Lite#S​TERM]])への出力を使用します。~ 
 +[[FDIII-DISPLAY:http://www.besttechnolog​y.co.jp/modules/knowledge/?BTH058%20FDII​I-DISPLAY]]を使用した場合は[[Status of DX>#y6d6e411]]の構成図がグラフィカルになる等、コンソール出力とは若干の差異が発生しますが、操作方法は変わりません。~ 
 +#ref(MainMenu.png) 
 +本プログラムの画面はカーソルで項目を選択するメニュー部分とボタンの操作方法を表示する情報部分、状態やインターフェースに使用するメッセージ領域に分かれています。~ 
 +モード毎にボタンに割り当てられた機能は異なるため、ボタンを押す前に「ボタン操作方法」を確認します。 
 + 
 +****モード [#qcf3b6df] 
 +: [[Edit motion>#nc9487cc]] | モーションの作成・削除・再生、ホームポジションの調整を行います。 
 +: [[Walking parameter>#ia8d3afd]] | 歩行パラメータの変更を行います。 
 +: [[Assign to button>#s5c1b9e5]] | 任意のボタンへ任意のモーションを割り当てます。~ 
 +方向キーに割り当てることはできません。 
 +: [[Run>#p8256d9a]] | プログラムを実行するとこのモードになります。~ 
 +任意のボタンへ割り当てた任意のモーションの再生と、方向キーによる前後左右への歩行を行います。~ 
 +メインメニューへ戻るにはFDIII-HCのPB1を押すか、キーボード上でESCキーを2度押します。 
 +: [[Status of DX>#y6d6e411]] | アクチュエータの状態を表示します。~ 
 +: Exit | プログラムを終了します。 
 + 
 +****Edit motion [#nc9487cc] 
 +: カーソル選択メニュー | 
 +[U]/[D]ボタンでカーソルを移動し、[L]/[R]ボタンでページを遷移します。 
 +|=~1ページ目 ||h 
 +| 表示 | 説明 |h 
 +|Load Motion |モーションを読み出して、ポーズ1を再生します。 | 
 +|Save Motion |編集中のモーションを保存します。 | 
 +|Delete Motion |保存されたモーションを選択して削除します。 | 
 +|Get Pose |編集中のモーションの最後に、現在のFREEDOM Jr.IIIの姿勢を新しいポーズとして追加します。 | 
 +|Delete Pose |再生中のポーズを削除します。 | 
 +|Insert Pose |再生中のポーズの前に、現在のFREEDOM Jr.IIIの姿勢を新しいポーズとして追加します。 | 
 +|Replace Pose |再生中のポーズを、現在のFREEDOM Jr.IIIの姿勢で置き換えます。 | 
 +|Clear Pose |編集中のモーションを破棄します。 | 
 +|Fine tuning |再生中のポーズに限り、位置の微調整を行います。 | 
 +|Return |メインメニューに戻ります。 | 
 +: | 
 +|=~2ページ目 ||h 
 +| 表示 | 説明 |h 
 +|Goto Home Pos |ホームポジションに移動します。 | 
 +|Save Home Pos |現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。 | 
 +|Reload Home Pos |保存されているホームポジションを元に初期化を行います。 | 
 +|Make Default Data |SDカードにデフォルトのホームポジション・モーションデータを作成・上書きします。主に初回の起動時に利用します。 | 
 +|Interval Plus |再生中のポーズの遷移時間を延長します。 | 
 +|Interval Minus |再生中のポーズの遷移時間を短縮します。 | 
 +|Change ADJ |再生中のポーズの補間方式を変更します。 | 
 +|Return |メインメニューに戻ります。 | 
 +: ボタン操作方法 | 
 +ボタンは[[RC-100B:http://www.besttechnology.co.j​p/modules/knowledge/?BTX048%20RC-100B]]/​SIXAXISです。 
 +|=~カーソル選択メニュー使用時 |||h 
 +| 表示 | 対応ボタン | 説明 |h 
 +|[1] Gate Off | [1]/[△] |全身脱力(全アクチュエータの位置決め制御がOFF)になります。 | 
 +|[2] Gate On | [2]/[□] |全身硬直(全アクチュエータの位置決め制御がON)になります。 | 
 +|[3] Pose Play/Stop | [3]/[×] |編集中のモーションデータをポーズ1から再生します。モーション再生中は停止します。 | 
 +|[4] Select | [4]/[○] |メニュー項目を選択します。 | 
 +|[5] Forward Pose | [5]/[R1] |次のポーズを再生します。 | 
 +|[6] Back Pose | [6]/[L1] |前のポーズを再生します。 | 
 +|[R] Next page | [R]/[→] |次メニューへ移動します。 | 
 +|[L] Back page | [L]/[←] |前メニューへ移動します。 | 
 +微調整中はボタンの設定が変更されます。 
 +|=~微調整中 |||h 
 +| 表示 | 対応ボタン | 説明 |h 
 +|[3]/[4] End of tune | [3]/[×] |カーソル選択メニューに戻ります。 | 
 +|^| [4]/[○] |^ | 
 +|[R] Next Target | [R]/[→] |次のターゲットを選択します。 | 
 +|[L] Back Target | [L]/[←] |前のターゲットを選択します。 | 
 +|[U] Position up | [U]/[↑] |選択されたターゲットの角度を変更します。 | 
 +|[D] Position down | [D]/[↓] |選択されたターゲットの角度を変更します。 | 
 +: キーボード入力 | 
 +キーボード入力はショートカットになっています。微調整中を除き、滞在ページに関わらず機能を実行します。 
 +| キー | 説明 |h 
 +| 1/n |全身脱力(全アクチュエータの位置決め制御がOFF)になります。 | 
 +| 2/o |全身硬直(全アクチュエータの位置決め制御がON)になります。 | 
 +| 3/p |編集中のモーションデータをポーズ1から再生します。モーション再生中は停止します。 | 
 +| 4/Enterキー |メニュー項目を選択します。 | 
 +| 5/f |次のポーズを再生します。 | 
 +| 6/b |前のポーズを再生します。 | 
 +| ↑ |メニューのカーソルを上へ移動します。 | 
 +| ↓ |メニューのカーソルを下へ移動します。 | 
 +| → |次メニューへ移動します。 | 
 +| ← |前メニューへ移動します。 | 
 +| l |モーションデータの読み出して、ポーズ1を再生します。 | 
 +| s |編集中のモーションデータを保存します。 | 
 +| k |保存されたモーションデータを選択して削除します。 | 
 +| g |編集中のモーションの最後に、現在のFREEDOM Jr.IIIの姿勢を新しいポーズとして追加します。 | 
 +| d |再生中のポーズを削除します。 | 
 +| i |再生中のポーズの前に、現在のFREEDOM Jr.IIIの姿勢を新しいポーズとして追加します。 | 
 +| m |再生中のポーズを、現在のFREEDOM Jr.IIIの姿勢で置き換えます。 | 
 +| c |編集中のモーションを破棄します。 | 
 +| n |再生中のポーズに限り、位置の微調整を行います。 | 
 +| w |ホームポジションに移動します。 | 
 +| h |現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。 | 
 +| r |保存されているホームポジションを元に初期化を行います。 | 
 +| x |再生中のポーズの遷移時間を延長します。 | 
 +| z |再生中のポーズの遷移時間を短縮します。 | 
 +| a |再生中のポーズの補間方式を変更します。 | 
 +| q/ESCキー |メインメニューへ戻ります。 | 
 + 
 +****Walking parameter [#ia8d3afd] 
 +画面表示と共に足踏みを開始します。足踏みはメインメニュー復帰時に停止します。~ 
 +本プログラムでは歩幅に最大値を使用しているため、歩幅ではなく歩幅に対するRATIOを変更対象としています。~ 
 +方向ボタンは歩行に割り当てられており、メニューの選択は[1]/[2]ボタンで行います。~ 
 +値の編集を行うには[5]([R1])ボタンを使用し、メニュー選択と同様に値の増減も[1]/[2]ボタンで行います。他の項目を編集する際は[6](L1)ボタンで一旦値の編集を終了します。~ 
 +[3]/[4]ボタンは状態に関わらずメインメニューへ戻ってしまうので、注意が必要です。 
 +: カーソル選択メニュー | 
 +| 表示 | 説明 |h 
 +|Centroid height |重心位置 | 
 +|Waist height |腰下げ量(値が小さいほど腰の位置が高くなる) | 
 +|Foot lift |脚持ち上げ量 | 
 +|Speed |歩行動作速度(値が小さいほど速くなる) | 
 +|Step ratio |歩幅の割合(RATIO) | 
 +|Reset parameter |パラメータをデフォルト値へ戻します。 | 
 +: ボタン操作方法 | 
 +| 表示 | 対応ボタン | 説明 |h 
 +|[U] Forward |[U]/[↑] |押している間、前に歩きます。 | 
 +|[D] Backward |[D]/[↓] |押している間、後ろに歩きます。 | 
 +|[R] Sidle(right) |[R]/[→] |押している間、右に横歩きします。 | 
 +|[L] Sidle(left) |[L]/[←] |押している間、左に横歩きします。 | 
 +|[1] up | [1]/[△] |メニューのカーソルを上へ移動します。編集モード時は主に値を増加します。 | 
 +|[2] down | [2]/[□] |メニューのカーソルを下へ移動します。編集モード時は主に値を減少します。 | 
 +|[3] Cancel | [3]/[×] |歩行パラメータを保存せずにメインメニューへ戻ります。 | 
 +|[4] Save parameter | [4]/[○] |歩行パラメータを保存してメインメニューへ戻ります。 | 
 +|[5] Start of config | [5]/[R1] |選択したパラメータの値を変更する編集モードに切替えます。 | 
 +|[6] End of config | [6]/[L1] |編集モードからメニューモードに切替えます。| 
 +: キーボード入力 | キーボード入力はショートカットになっています。滞在ページに関わらず機能を実行します。~ 
 +キーボード入力では一旦歩行を開始すると、足踏み状態に戻すことはできませんが、方向を変えることは可能です。 
 +| キー | 説明 |h 
 +| 1 |メニューのカーソルを上へ移動します。編集モード時は主に値を増加します。 | 
 +| 2 |メニューのカーソルを下へ移動します。編集モード時は主に値を減少します。 | 
 +| 3/ESCキー |歩行パラメータを保存せずにメインメニューへ戻ります。 | 
 +| 4/Enterキー |歩行パラメータを保存してメインメニューへ戻ります。 | 
 +| 5 |選択したパラメータの値を変更する編集モードに切替えます。 | 
 +| 6 |編集モードからメニューモードに切替えます。 | 
 +| ↑ |前に歩きます。 | 
 +| ↓ |後ろに歩きます。 | 
 +| → |右に横歩きします。 | 
 +| ← |左に横歩きします。 | 
 + 
 +****Assign to button [#s5c1b9e5] 
 +ボタンの割当は単一ボタンとボタン2つの同時押しまで対応しています。~ 
 +同じボタンの組み合わせはメニューに表示されません。([1]+[2]はあっても[2]+[1]はありません)~ 
 +ボタンの組み合わせを選択し、対応するモーションを選択します。モーションを選択するとカーソル選択メニューにモーション名が合わせて表示されます。~ 
 +割り当てたモーションは[[Run>#p8256d9a]]で再生します。 
 +: カーソル選択メニュー | 
 +|=~1ページ目 ||h 
 +| 表示 | 説明 |h 
 +|[1] '''モーション名''' |[1]/[△]ボタンへ割り当て済みのモーション名が表示されます。 | 
 +|[1]+[2] '''モーション名''' |[1]/[△]ボタンと[2]/[□]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[1]+[3] '''モーション名''' |[1]/[△]ボタンと[3]/[×]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[1]+[4] '''モーション名''' |[1]/[△]ボタンと[4]/[○]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[1]+[5] '''モーション名''' |[1]/[△]ボタンと[5]/[R1]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[1]+[6] '''モーション名''' |[1]/[△]ボタンと[6]/[L1]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[1]+[U] '''モーション名''' |[1]/[△]ボタンと[U]/[↑]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[1]+[D] '''モーション名''' |[1]/[△]ボタンと[D]/[↓]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[1]+[R] '''モーション名''' |[1]/[△]ボタンと[R]/[→]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[1]+[L] '''モーション名''' |[1]/[△]ボタンと[L]/[←]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +: | 
 +|=~2ページ目 ||h 
 +| 表示 | 説明 |h 
 +|[2] '''モーション名''' |[2]/[□]ボタンへ割り当て済みのモーション名が表示されます。 | 
 +|[2]+[3] '''モーション名''' |[2]/[□]ボタンと[3]/[×]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[2]+[4] '''モーション名''' |[2]/[□]ボタンと[4]/[○]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[2]+[5] '''モーション名''' |[2]/[□]ボタンと[5]/[R1]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[2]+[6] '''モーション名''' |[2]/[□]ボタンと[6]/[L1]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[2]+[U] '''モーション名''' |[2]/[□]ボタンと[U]/[↑]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[2]+[D] '''モーション名''' |[2]/[□]ボタンと[D]/[↓]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[2]+[R] '''モーション名''' |[2]/[□]ボタンと[R]/[→]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[2]+[L] '''モーション名''' |[2]/[□]ボタンと[L]/[←]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +: | 
 +|=~3ページ目 ||h 
 +| 表示 | 説明 |h 
 +|[3] '''モーション名''' |[3]/[×]ボタンへ割り当て済みのモーション名が表示されます。 | 
 +|[3]+[4] '''モーション名''' |[3]/[×]ボタンと[4]/[○]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[3]+[5] '''モーション名''' |[3]/[×]ボタンと[5]/[R1]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[3]+[6] '''モーション名''' |[3]/[×]ボタンと[6]/[L1]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[3]+[U] '''モーション名''' |[3]/[×]ボタンと[U]/[↑]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[3]+[D] '''モーション名''' |[3]/[×]ボタンと[D]/[↓]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[3]+[R] '''モーション名''' |[3]/[×]ボタンと[R]/[→]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[3]+[L] '''モーション名''' |[3]/[×]ボタンと[L]/[←]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +: | 
 +|=~4ページ目 ||h 
 +| 表示 | 説明 |h 
 +|[4] '''モーション名''' |[4]/[○]ボタンへ割り当て済みのモーション名が表示されます。 | 
 +|[4]+[5] '''モーション名''' |[4]/[○]ボタンと[5]/[R1]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[4]+[6] '''モーション名''' |[4]/[○]ボタンと[6]/[L1]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[4]+[U] '''モーション名''' |[4]/[○]ボタンと[U]/[↑]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[4]+[D] '''モーション名''' |[4]/[○]ボタンと[D]/[↓]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[4]+[R] '''モーション名''' |[4]/[○]ボタンと[R]/[→]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[4]+[L] '''モーション名''' |[4]/[○]ボタンと[L]/[←]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +: | 
 +|=~5ページ目 ||h 
 +| 表示 | 説明 |h 
 +|[5] '''モーション名''' |[5]/[R1]ボタンへ割り当て済みのモーション名が表示されます。 | 
 +|[5]+[6] '''モーション名''' |[5]/[R1]ボタンと[6]/[L1]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[5]+[U] '''モーション名''' |[5]/[R1]ボタンと[U]/[↑]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[5]+[D] '''モーション名''' |[5]/[R1]ボタンと[D]/[↓]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[5]+[R] '''モーション名''' |[5]/[R1]ボタンと[R]/[→]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[5]+[L] '''モーション名''' |[5]/[R1]ボタンと[L]/[←]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +: | 
 +|=~6ページ目 ||h 
 +| 表示 | 説明 |h 
 +|[6] '''モーション名'''|[6]/[L1]ボタンへ割り当て済みのモーション名が表示されます。 | 
 +|[6]+[U] '''モーション名''' |[6]/[L1]ボタンと[U]/[↑]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[6]+[D] '''モーション名''' |[6]/[L1]ボタンと[D]/[↓]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[6]+[R] '''モーション名''' |[6]/[L1]ボタンと[R]/[→]ボタンの同時押しへ割り当て済みのモーション名が表示されます。 | 
 +|[6]+[L] '''モーション名''' |[6]/[L1]ボタンと[L]/[←]ボタンの同時押しへ割り当て済みのるモーション名が表示されます。 | 
 +: ボタン操作方法 | 
 +| 表示 | 対応ボタン | 説明 |h 
 +|[U] Cursor up| [U]/[↑] |メニューのカーソルを上へ移動します。 | 
 +|[D] Cursor down| [D]/[↓] |メニューのカーソルを下へ移動します。 | 
 +|[R] Next page| [R]/[→] |次メニューへ移動します。 | 
 +|[L] Back page| [L]/[←] |前メニューへ移動します。 | 
 +|[4] Select| [4]/[○] |ボタンの組み合わせにモーションを割り当てます。 | 
 +|[1] Deselect| [1]/[△] |割り当てたモーションを解除します。 | 
 +|[3] Return| [3]/[×] |割当を保存してメインメニューへ戻ります。 | 
 +: キーボード入力 | キーボード入力はショートカットになっています。滞在ページに関わらず機能を実行します。 
 +| キー | 説明 |h 
 +| ↑ |メニューのカーソルを上へ移動します。 | 
 +| ↓ |メニューのカーソルを下へ移動します。 | 
 +| → |次メニューへ移動します。 | 
 +| ← |前メニューへ移動します。 | 
 +| 4/Enterキー |ボタンにモーションを割り当てます。 | 
 +| 1 |割り当てたモーションを解除します。 | 
 +| 3/ESCキー |割当を保存してメインメニューへ戻ります。 | 
 + 
 +****Run [#p8256d9a] 
 +ボタンを押している間、確認のために[[Assign to button>#s5c1b9e5]]で割り当てたモーションの一覧がメニューとして表示されます。 
 +: カーソル選択メニュー | 初期メニュー 
 +| 表示 | 説明 |h 
 +|[1] '''モーション名''' |[1]/[△]ボタンを押すと再生するモーション名が表示されます。 | 
 +|[2] '''モーション名''' |[2]/[□]ボタンを押すと再生するモーション名が表示されます。 | 
 +|[3] '''モーション名''' |[3]/[×]ボタンを押すと再生するモーション名が表示されます。 | 
 +|[4] '''モーション名''' |[4]/[○]ボタンを押すと再生するモーション名が表示されます。 | 
 +|[5] '''モーション名''' |[5]/[R1]ボタンを押すと再生するモーション名が表示されます。 | 
 +|[6] '''モーション名''' |[6]/[L1]ボタンを押すと再生するモーション名が表示されます。 | 
 +: ボタン操作方法 | 
 +| 表示 | 対応ボタン | 説明 |h 
 +|[U] Walk | [U]/[↑] |押し続けると歩行(前進)します。ボタンを離すと停止します。 | 
 +|[D] Walk Backward | [D]/[↓] |押し続けると歩行(後進)します。ボタンを離すと停止します。 | 
 +|[R] Right Sidle | [R]/[→] |押し続けると右横歩きします。ボタンを離すと停止します。 | 
 +|[L] Left Sidle | [L]/[←] |押し続けると左横歩きします。ボタンを離すと停止します。 | 
 +|[Push Button] Exit | |PB1を押すとメインメニューに戻ります。 | 
 +: キーボード入力 |キーボードでは同時押しのモーション再生は対応していません。 
 +| キー | 説明 |h 
 +| ↑ |歩行(前進)します。別のキーを押すと停止します。 | 
 +| ↓ |歩行(後進)します。別のキーを押すと停止します。 | 
 +| → |右横歩きします。別のキーを押すと停止します。 | 
 +| ← |左横歩きします。別のキーを押すと停止します。 | 
 +| 1 |[1]/[△]ボタンに割り当てられたモーションを再生します。 | 
 +| 2 |[2]/[□]ボタンに割り当てられたモーションを再生します。 | 
 +| 3 |[3]/[×]ボタンに割り当てられたモーションを再生します。 | 
 +| 4 |[4]/[○]ボタンに割り当てられたモーションを再生します。 | 
 +| 5 |[5]/[R1]ボタンに割り当てられたモーションを再生します。 | 
 +| 6 |[6]/[L1]ボタンに割り当てられたモーションを再生します。 | 
 + 
 +****Status of DX [#y6d6e411] 
 +画面の構成が他のメニューと異なります。 
 +#ref(StatusOfDX.png) 
 +カーソルは「FREEDOM Jr.III構成」上にあり、カーソル位置の情報(ID/位置/負荷/温度/トルク有無/アラーム)をDynamixel情報として表示しています。~ 
 +アラーム発生時は、[4]/[○]ボタンを押して画面を切り替えることでアラームメッセージをテキスト表示します。 
 +: ボタン操作方法 | 
 +| 表示 | 対応ボタン | 説明 |h 
 +|[U]/[D] Move | [U]/[↑] | カーソル位置を移動します。 | 
 +|^| [D]/[↓] |^| 
 +|[3] Return | [3]/[×] | メインメニューに戻ります。 | 
 +: キーボード入力 | キーボード入力はショートカットになっています。 
 +| キー | 説明 |h 
 +| ↑ |カーソル位置を移動します。 | 
 +| ↓ |カーソル位置を移動します。 | 
 +| 3/ESCキー |メインメニューに戻ります。 | 
 +| 4/Enterキー |アラームメッセージを表示します。 |


トップ   差分 リロード印刷に適した表示   全ページ一覧 単語検索 最新ページの一覧   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom