13: 2011-10-04 (火) 15:03:24 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]]のリリースに合わせ、本サンプルも改訂されているため、それよりも古いバージョンを使用している場合は最新版をインストールしてください。
- 
- 
-|CENTER:BGCOLOR(red):||c 
-|  :idea:|''現在GCC Developer Liteの公開調整中の為、本ページの内容は改訂中となっています''。| 
**FREEDOM III Library [#a882609e] **FREEDOM III Library [#a882609e]
Line 11: Line 7:
**ダウンロード [#l911f88a] **ダウンロード [#l911f88a]
 +サンプルプログラムは以下のURLにZIP形式の圧縮ファイルで設置。適宜アーカイバにて解凍して使用の事。
 +-''2011/11/7 Ver.3.0''~
 +最新FREEDOM III Libraryに対応~
 +ダイナミック歩行ルーチンの見直し~
 +マルチタスク化~
 +サンプル数の集約
 +#ref(http://www.besttechnology.co.jp/dow​nload/FDJRIII_SMPL3.0.ZIP)
-**サンプルプログラム一覧 [#jcfdc388] +**共通事項 [#jcfdc388
-FREEDOM jr.IIIシリーズは構成が異なっていても、同一のサンプルプログラムが提供されています。但し、構成により一部修正が必要となります。+***マクロ [#sb88f205
-: BTH050/BTH051 FREEDOM Jr.III Basic/Complete Kit(AX-12シリーズ使用) |+FREEDOM Jr.IIIシリーズは構成が異なっていても、同一のサンプルプログラムとして提供されています。但し、製品の構成により以下に該当するコードを修正(コメントの位置を変更)する必要があります。
 +: BTH050/BTH051 FREEDOM Jr.III Basic/Complete Kit |
#html{{ #html{{
-<pre class="brush: c;">+<pre class="brush: c; ruler : true; toolbar: false; highlight: 2"> 
 +// ★人型へのアクチュエータの割り当て(いずれか1種類を選択 使用環境に一致させる)
#include "share/HumanoidSpecAX12.c" #include "share/HumanoidSpecAX12.c"
//#include "share/HumanoidSpecRX28.c" //#include "share/HumanoidSpecRX28.c"
Line 22: Line 27:
</pre> </pre>
}} }}
-:BTH072 FREEDOM Jr.III RX-28 Edition(初期型) |+:BTH072 FREEDOM Jr.III RX-28 Edition(初期型) | ID2~4及び7~9の出力軸が脚の内側に向いているバージョン
#html{{ #html{{
-<pre class="brush: c;">+<pre class="brush: c; toolbar: false; highlight: 3"> 
 +// ★人型へのアクチュエータの割り当て(いずれか1種類を選択 使用環境に一致させる)
//#include "share/HumanoidSpecAX12.c" //#include "share/HumanoidSpecAX12.c"
#include "share/HumanoidSpecRX28.c" #include "share/HumanoidSpecRX28.c"
Line 30: Line 36:
</pre> </pre>
}} }}
-:BTH072 FREEDOM Jr.III RX-28 Edition(最新型) |+:BTH072 FREEDOM Jr.III RX-28 Edition(最新型) | ID2~4及び7~9の出力軸が脚の外側に向いているバージョン
#html{{ #html{{
-<pre class="brush: c;">+<pre class="brush: c; toolbar: false; highlight: 4"> 
 +// ★人型へのアクチュエータの割り当て(いずれか1種類を選択 使用環境に一致させる)
//#include "share/HumanoidSpecAX12.c" //#include "share/HumanoidSpecAX12.c"
//#include "share/HumanoidSpecRX28.c" //#include "share/HumanoidSpecRX28.c"
Line 40: Line 47:
: リモートコントローラとしてSIXAXISを使用 | : リモートコントローラとしてSIXAXISを使用 |
#html{{ #html{{
-<pre class="brush: c;">+<pre class="brush: c; toolbar: false; highlight: 2"> 
 +// ★リモートコントローラの選択 (いずれか1種類を選択)
#define SIXAXIS #define SIXAXIS
//#define RC100 //#define RC100
Line 47: Line 55:
: リモートコントローラとしてRC-100Bを使用 | : リモートコントローラとしてRC-100Bを使用 |
#html{{ #html{{
-<pre class="brush: c;">+<pre class="brush: c; toolbar: false; highlight: 3"> 
 +// ★リモートコントローラの選択 (いずれか1種類を選択)
//#define SIXAXIS //#define SIXAXIS
#define RC100 #define RC100
Line 53: Line 62:
}} }}
-***shareフォルダ内 [#e5d47141] +***shareフォルダ [#e5d47141] 
-いずれのサンプルプログラムも本フォルダに含まれるファイルを共有しています。+いずれのサンプルプログラムも本フォルダに含まれるファイルをインクルードする事で処理ないしデータを共有しています。
-人型向けに構造の定義をしなおしているヘッダ、デフォルトのモーションデータの定義、製品構成に依存するファイル、歩行サブルーチンといったものが含まれます。+人型向けに構造の定義をしなおしているヘッダ、デフォルトのモーションデータの定義、製品構成に依存するファイル、歩行サブルーチンといったものが含まれます。
 +また、インクルードする順序を要求するものもありますので、注意が必要です。
****Humanoid16Axis.h [#oba7d5c8] ****Humanoid16Axis.h [#oba7d5c8]
fd.hで宣言されている一部の構造体を、人型向に再定義しています。他に、再定義に伴うAPIのウォーニングを抑止するための関数の型変換といったマクロも含まれます。 fd.hで宣言されている一部の構造体を、人型向に再定義しています。他に、再定義に伴うAPIのウォーニングを抑止するための関数の型変換といったマクロも含まれます。
 +
 +このヘッダファイルで定義されるTHumanoid/THumanoidHomePosition/THumanoi​dMotion構造体はあくまで便宜的な定義に過ぎず、FREEDOM III Libraryで定義されているTStructure/THomePosition/TPose構造体と同じものとして扱われます。
****HumanoidSpecAX12.c [#g8816dc3] ****HumanoidSpecAX12.c [#g8816dc3]
Line 64: Line 76:
****HumanoidSpecRX28.c [#ia35a8be] ****HumanoidSpecRX28.c [#ia35a8be]
-Dynamixel RX-28を使用した初期型(ID2~4及び7~9の出力軸が脚の内側に向いているバージョン)16軸人型ロボット用のTSpec構造体(IDや動作範囲、制限値といった諸元)を宣言しています。+Dynamixel RX-28を使用した初期型(脚部のID2~4及び7~9の出力軸が脚の内側に向いているバージョン)16軸人型ロボット用のTSpec構造体(IDや動作範囲、制限値といった諸元)を宣言しています。
****HumanoidSpecRX28_2.c [#h8b065fd] ****HumanoidSpecRX28_2.c [#h8b065fd]
-Dynamixel RX-28を使用した最新型(ID2~4及び7~9の出力軸が脚の外側に向いているバージョン)16軸人型ロボット用のTSpec構造体(IDや動作範囲、制限値といった諸元)を宣言しています。+Dynamixel RX-28を使用した最新型(脚部のID2~4及び7~9の出力軸が脚の外側に向いているバージョン)16軸人型ロボット用のTSpec構造体(IDや動作範囲、制限値といった諸元)を宣言しています。
****HumanoidWalk.c [#d2e45c8a] ****HumanoidWalk.c [#d2e45c8a]
-16軸人型ロボット用歩行サブルーチンです。+IKによるダイナミック歩行サブルーチンで、TASK4にて動作します。セマフォとしてSEM_USER3が使用されます。~ 
 +片脚6軸構成を想定し、各軸間距離(TLegDim)と足の座標(TFootPos)を元にIKを解き(CalInvkine関数)ます。足の裏と腰が常時平行である事を前提として簡単化していますので、この条件が崩れると計算は破綻します。~ 
 +TASK4では歩容を決定づけるパラメータ(TLimitWalkParam, TWalkParam, TWalkSysParam)を元に経過時間とGait関数にて歩容を作り出し、必要に応じてfd_SendMomentMotionを使ってアクチュエータへ角度にて指令するといった具合です。なお、外部からはSetWalkSysParam, SetWalkParam, GetWalkStat関数にて全ての挙動を操作します。 
 + 
 +歩容を決定付けるTWalkParam構造体には、以下のメンバが含まれます。 
 +-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~ 
 +歩行動作速度を指定。
****HumanoidSampleMotionData.c [#oc3fe248] ****HumanoidSampleMotionData.c [#oc3fe248]
人型用のデフォルト用ホームポジションと、いくつかのモーションデータの定義、さらにはそれらのデータをSDカードへ書込むためのサブルーチンが定義されています。 人型用のデフォルト用ホームポジションと、いくつかのモーションデータの定義、さらにはそれらのデータをSDカードへ書込むためのサブルーチンが定義されています。
-***SMPL1.c [#t6bbc743]+ホームポジションはアクチュエータやアセンブリ方法による個体差があるため、ここで定義される値が全ての筐体に無条件で適用できるものではありません。必ず微調整がなされた上で使用すべき重要なパラメータです。~ 
 +モーションデータは角度データであるため本来は個体差が無いものですが、角度から位置へ変換してアクチュエータへ指令されるために、アクチュエータの利にありティーに依存します。また、重心位置等が考慮されながら実行されるものではないため、やはり微調整が必要なパラメータとなります。~ 
 +なお、ほとんどのサンプルプログラムではこれらのデータをSDカード上に書き込んだ上で運用する前提になっており、各サンプルプログラム内に微調整を行うためのサブルーチンが含まれています。 
 + 
 +**一覧 [#fafbd7e6] 
 +***SMPL1(Init).c [#t6bbc743]
ホームポジションデータ・モーションデータを作成します。モーションデータはSDカード上に作成され、他のサンプルプログラムから読み出して再生することが可能です。~ ホームポジションデータ・モーションデータを作成します。モーションデータはSDカード上に作成され、他のサンプルプログラムから読み出して再生することが可能です。~
本サンプルプログラムではキーボードからの入力とコンソール([[SIMPLE TERM:http://www.besttechnology.co.jp/mod​ules/knowledge/?GCC%20Developer%20Lite#S​TERM]])への出力を想定しています。 本サンプルプログラムではキーボードからの入力とコンソール([[SIMPLE TERM:http://www.besttechnology.co.jp/mod​ules/knowledge/?GCC%20Developer%20Lite#S​TERM]])への出力を想定しています。
-****キーボード入力 [#jbae8ac7] +: キーボード入力 | 
-: I | ホームポジションデータ・モーションデータを作成します。 +| 入力キー | 説明 |h 
-: m | 全身脱力(全アクチュエータの位置決め制御がOFF)になります。 +| I |SDカードにデフォルトのホームポジション・モーションデータを作成・上書きします。主に初回の起動時に利用します。 | 
-: f | 全身硬直(全アクチュエータの位置決め制御がON)になります。 +| m |全身脱力(全アクチュエータの位置決め制御がOFF)になります。 | 
-: h | 現在のFREEDOM jr.IIIの姿勢をホームポジションとして保存します。 +| f |全身硬直(全アクチュエータの位置決め制御がON)になります。 | 
-: c | 全アクチュエータの状態を確認します。 +| h |現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。 | 
-: ESCキー | 本サンプルを終了します。+| c |全アクチュエータの状態を確認します。 | 
 +| ESCキー |プログラムを終了します。 | 
 +| その他 |メッセージを表示します。 |
-***SMPL2.c [#r8b03390]+***SMPL2(PlayMotion_KB).c [#r8b03390]
モーションの再生を行います。 モーションの再生を行います。
-****キーボード入力 [#zf41aa9e] +: キーボード入力 | 
-: 1 | ホームポジションへ移動します。 +| 入力キー | 説明 |h 
-: 2 | お辞儀をします。 +| 1 |ホームポジションへ移動するモーションを再生します。 | 
-: 3 | 右腕を振ります。 +| 2 |お辞儀をするモーションを再生します。 | 
-: 4 | 片足立ちをします。 +| 3 |右腕を振るモーションを再生します。 | 
-: 5 | 左腕を振ります。~+| 4 |片足立ちをするモーションを再生します。 | 
 +| 5 |プログラム内の左腕を振るモーションを再生します。 | 
 +| I |SDカードにデフォルトのホームポジション・モーションデータを作成・上書きします。主に初回の起動時に利用します。 | 
 +| m |全身脱力(全アクチュエータの位置決め制御がOFF)になります。 | 
 +| f |全身硬直(全アクチュエータの位置決め制御がON)になります。 | 
 +| h |現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。 | 
 +| c |全アクチュエータの状態を確認します。 | 
 +| ESCキー |プログラムを終了します。 | 
 +| その他 |メッセージを表示します。 |
-その他のキーボード入力についてはSMPL1.cを参照。 +***SMPL3(PlayMotion_RC).c [#uce44ab9]
- +
-***SMPL3.c [#uce44ab9]+
モーションの再生を行います。~ モーションの再生を行います。~
本サンプルプログラムではリモートコントローラ([[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]])への出力を使用します。 本サンプルプログラムではリモートコントローラ([[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]])への出力を使用します。
-****リモートコントローラ入力 [#da6b7dba] 
-: 1/△ボタン | ホームポジションへ移動します。 
-: 2/□ボタン | お辞儀をします。 
-: 3/×ボタン | 右腕を振ります。 
-: 4/○ボタン | 片足立ちをします。 
-: 5/R1ボタン | 右旋回をします。 
-: 6/L1ボタン | 左旋回をします。 
-: U/↑ボタン | 左腕を振ります。 
-: D/↓ボタン | しゃがみます。(離すと立ち上がります) 
-: L/←ボタン | 左側への攻撃を行います。 
-: R/→ボタン | 右側への攻撃を行います。~ 
-キーボード入力についてはSMPL1.cを参照。+:ボタン操作方法 | 
 +| ボタン | 説明 |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.c [#j87569e4]+***SMPL4(EditMotion_KB).c [#j87569e4]
モーションの作成・再生を行います。~ モーションの作成・再生を行います。~
本サンプルプログラムではキーボードからの入力とコンソール([[SIMPE TERM:http://www.besttechnology.co.jp/mod​ules/knowledge/?GCC%20Developer%20Lite#S​TERM]])への出力を使用します。~ 本サンプルプログラムではキーボードからの入力とコンソール([[SIMPE TERM:http://www.besttechnology.co.jp/mod​ules/knowledge/?GCC%20Developer%20Lite#S​TERM]])への出力を使用します。~
#ref(motion.png) #ref(motion.png)
-****キーボード入力 [#v1783875] +: キーボード入力 | 
-: l | モーションデータの読み出して、先頭のポーズを選択します。 +| キー | 説明 |h 
-: s | 編集中のモーションデータの保存。 +| l |モーションを読み出して、ポーズ1を再生します。 | 
-: k | モーションデータの削除。 +| s |編集中のモーションを保存します。 | 
-: n | 全身脱力(全アクチュエータの位置決め制御がOFF)になります。 +| k |保存されたモーションを選択して削除します。 | 
-: o | 全身硬直(全アクチュエータの位置決め制御がON)になります。 +| n |全身脱力(全アクチュエータの位置決め制御がOFF)になります。 | 
-: p | 編集中のモーションデータを再生します。 +| o |全身硬直(全アクチュエータの位置決め制御がON)になります。 | 
-: e | 再生中のモーションを停止します。 +| p |編集中のモーションをポーズ1から再生します。 | 
-: f | 次のポーズを再生します。 +| e |再生中のモーションを停止します。 | 
-: r | 前のポーズを再生します。 +| f |次のポーズを再生します。 | 
-: a | 選択されたポーズのポーズ間の補間方式を変更します。 +| r |前のポーズを再生します。 | 
-: x | 選択されたポーズのポーズ間の遷移時間を短縮します。 +| a |再生中のポーズの補間方式を変更します。 | 
-: z | 選択されたポーズのポーズ間の遷移時間を延長します。 +| x |再生中のポーズの遷移時間を短縮します。 | 
-: g | 編集中のモーションの最後に、現在の姿勢を新しいポーズとして追加します。 +| z |再生中のポーズの遷移時間を延長します。 | 
-: d | 選択されたポーズを削除します。 +| g |編集中のモーションの最後に、現在のFREEDOM Jr.IIIの姿勢を新しいポーズとして追加します。 | 
-: i | 選択されたポーズの前に、現在の姿勢を新しいポーズとして追加します。 +| d |再生中のポーズを削除します。 | 
-: m | 選択されたポーズを、現在の姿勢で置き換えます。 +| i |再生中のポーズの前に、現在のFREEDOM Jr.IIIの姿勢を新しいポーズとして追加します。 | 
-: c | 編集中のモーションデータを破棄します。 +| m |再生中のポーズを、現在のFREEDOM Jr.IIIの姿勢で置き換えます。 | 
-: w | ホームポジションに移動します。 +| c |編集中のモーションを破棄します。 | 
-: h | 現在のFREEDOM jr.IIIの姿勢をホームポジションとして保存します。 +| w |ホームポジションに移動します。 | 
-: I | ホームポジションデータ・モーションデータを作成します。~ +| h |現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。 | 
-既存のデータは上書きされます。 +| I |SDカードにデフォルトのホームポジション・モーションデータを作成・上書きします。主に初回の起動時に利用します。 | 
-: q | 本サンプルプログラムを終了します。+| q |プログラムを終了します。 |
-***SMPL5.c [#f13e2cc0]+***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キー |プログラムを終了します。 |
-***SMPL6.c [#u5703b05]+: 歩行中のみ有効なキーボード入力 | 
 +| キー | 説明 |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) 
 +本プログラムの画面はカーソルで項目を選択するメニュー部分とボタンの操作方法を表示する情報部分、状態やインターフェースに使用するメッセージ領域に分かれています。~ 
 +モード毎にボタンに割り当てられた機能は異なるため、ボタンを押す前に「ボタン操作方法」を確認します。
-***SMPL7.c [#h7cb8a09] 
-モーション作成・再生・歩行といった一連の操作を取り入れたサンプルです。 
****モード [#qcf3b6df] ****モード [#qcf3b6df]
-: Edit motion | モーションの作成・削除・再生、ホームポジションの調整を行います。 +: [[Edit motion>#nc9487cc]] | モーションの作成・削除・再生、ホームポジションの調整を行います。 
-: Walking parameter | 歩行パラメータの変更を行います。 +: [[Walking parameter>#ia8d3afd]] | 歩行パラメータの変更を行います。 
-: Assign to button | 任意のボタンへ任意のモーションを割り当てます。~+: [[Assign to button>#s5c1b9e5]] | 任意のボタンへ任意のモーションを割り当てます。~
方向キーに割り当てることはできません。 方向キーに割り当てることはできません。
-: Run | プログラムを実行するとこのモードになります。~+: [[Run>#p8256d9a]] | プログラムを実行するとこのモードになります。~
任意のボタンへ割り当てた任意のモーションの再生と、方向キーによる前後左右への歩行を行います。~ 任意のボタンへ割り当てた任意のモーションの再生と、方向キーによる前後左右への歩行を行います。~
メインメニューへ戻るにはFDIII-HCのPB1を押すか、キーボード上でESCキーを2度押します。 メインメニューへ戻るにはFDIII-HCのPB1を押すか、キーボード上でESCキーを2度押します。
-: Status of DX | アクチュエータの状態を表示します。~ +: [[Status of DX>#y6d6e411]] | アクチュエータの状態を表示します。~ 
-: Exit | サンプルプログラムを終了します。+: 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