ページへ戻る

− Links

 印刷 

FREEDOM jr.III Sample Code のバックアップソース(No.16) :: Besttechnology

knowledge:FREEDOM jr.III Sample Code のバックアップソース(No.16)

« Prev[4]  Next »[5]
TITLE:FREEDOM jr.III Sample Code
[[GCC Developer Lite Ver2.4.0.13>GDL#DOWNLOAD]]のリリースに合わせ、本サンプルも改訂されているため、それよりも古いバージョンを使用している場合は最新版をインストールしてください。


|CENTER:BGCOLOR(red):||c
|  :idea:|''現在GCC Developer Liteの公開調整中の為、本ページの内容は改訂中となっています''。|

**FREEDOM III Library [#a882609e]
FREEDOM III Libraryについては[[こちら>FREEDOM III Library]]をご覧下さい。~
~

**ダウンロード [#l911f88a]

**サンプルプログラム一覧 [#jcfdc388]
FREEDOM Jr.IIIシリーズは構成が異なっていても、同一のサンプルプログラムとして提供されています。但し、製品の構成により以下に該当するコードを修正(コメントの位置を変更)する必要があります。~
: BTH050/BTH051 FREEDOM Jr.III Basic/Complete Kit |
#html{{
<pre class="brush: c; gutter:false; toolbar: false;">
// ★人型へのアクチュエータの割り当て(いずれか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; gutter:false; toolbar: false;">
// ★人型へのアクチュエータの割り当て(いずれか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; gutter:false; toolbar: false;">
// ★人型へのアクチュエータの割り当て(いずれか1種類を選択 使用環境に一致させる)
//#include "share/HumanoidSpecAX12.c"
//#include "share/HumanoidSpecRX28.c"
#include "share/HumanoidSpecRX28_2.c"
</pre>
}}
: リモートコントローラとしてSIXAXISを使用 |
#html{{
<pre class="brush: c; gutter:false; toolbar: false;">
// ★リモートコントローラの選択 (いずれか1種類を選択)
#define SIXAXIS
//#define RC100
</pre>
}}
: リモートコントローラとしてRC-100Bを使用 |
#html{{
<pre class="brush: c; gutter:false; toolbar: false;">
// ★リモートコントローラの選択 (いずれか1種類を選択)
//#define SIXAXIS
#define RC100
</pre>
}}

***shareフォルダ内 [#e5d47141]
いずれのサンプルプログラムも本フォルダに含まれるファイルをインクルードする事で処理ないしデータを共有しています。~
人型向けに構造の定義をしなおしているヘッダ、デフォルトのモーションデータの定義、製品構成に依存するファイル、歩行サブルーチンといったものが含まれます。

****Humanoid16Axis.h [#oba7d5c8]
fd.hで宣言されている一部の構造体を、人型向に再定義しています。他に、再定義に伴うAPIのウォーニングを抑止するための関数の型変換といったマクロも含まれます。

****HumanoidSpecAX12.c [#g8816dc3]
Dynamixel AX-12シリーズを使用した16軸人型ロボット用のTSpec構造体(IDや動作範囲、制限値といった諸元)を宣言しています。

****HumanoidSpecRX28.c [#ia35a8be]
Dynamixel RX-28を使用した初期型(脚部のID2~4及び7~9の出力軸が脚の内側に向いているバージョン)16軸人型ロボット用のTSpec構造体(IDや動作範囲、制限値といった諸元)を宣言しています。

****HumanoidSpecRX28_2.c [#h8b065fd]
Dynamixel RX-28を使用した最新型(脚部のID2~4及び7~9の出力軸が脚の外側に向いているバージョン)16軸人型ロボット用のTSpec構造体(IDや動作範囲、制限値といった諸元)を宣言しています。

****HumanoidWalk.c [#d2e45c8a]
IKによるダイナミック歩行サブルーチンで、TASK4にて動作します。

****HumanoidSampleMotionData.c [#oc3fe248]
人型用のデフォルト用ホームポジションと、いくつかのモーションデータの定義、さらにはそれらのデータをSDカードへ書込むためのサブルーチンが定義されています。

***SMPL1(Init).c [#t6bbc743]
ホームポジションデータ・モーションデータを作成します。モーションデータはSDカード上に作成され、他のサンプルプログラムから読み出して再生することが可能です。~
本サンプルプログラムではキーボードからの入力とコンソール([[SIMPLE TERM:http://www.besttechnology.co.jp/modules/knowledge/?GCC%20Developer%20Lite#STERM]])への出力を想定しています。

****キーボード入力 [#jbae8ac7]
: I | SDカードにデフォルトのホームポジション・モーションデータを作成・上書きします。主に初回の起動時に利用します。
: m | 全身脱力(全アクチュエータの位置決め制御がOFF)になります。
: f | 全身硬直(全アクチュエータの位置決め制御がON)になります。
: h | 現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。
: c | 全アクチュエータの状態を確認します。
: ESCキー | プログラムを終了します。

***SMPL2(PlayMotion_KB).c [#r8b03390]
モーションの再生を行います。

****キーボード入力 [#zf41aa9e]
: 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/modules/knowledge/?BTX048%20RC-100B]]/SIXAXIS)とキーボードからの入力とコンソール([[SIMPLE TERM:http://www.besttechnology.co.jp/modules/knowledge/?GCC%20Developer%20Lite#STERM]])への出力を使用します。

****リモートコントローラ入力 [#da6b7dba]
: 1/△ボタン | ホームポジションへ移動します。
: 2/□ボタン | お辞儀をします。
: 3/×ボタン | 右腕を振ります。
: 4/○ボタン | 片足立ちをします。
: 5/R1ボタン | 右旋回をします。
: 6/L1ボタン | 左旋回をします。
: U/↑ボタン | 左腕を振ります。
: D/↓ボタン | しゃがみます。(離すと立ち上がります)
: L/←ボタン | 左側への攻撃を行います。
: R/→ボタン | 右側への攻撃を行います。~
****キーボード入力 [#mfb6c2fe]
: I | SDカードにデフォルトのホームポジション・モーションデータを作成します。主に初回の起動時に利用します。
: m | 全身脱力(全アクチュエータの位置決め制御がOFF)になります。
: f | 全身硬直(全アクチュエータの位置決め制御がON)になります。
: h | 現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。
: c | 全アクチュエータの状態を確認します。
: ESCキー | プログラムを終了します。

***SMPL4(EditMotion_KB).c [#j87569e4]
モーションの作成・再生を行います。~
本サンプルプログラムではキーボードからの入力とコンソール([[SIMPE TERM:http://www.besttechnology.co.jp/modules/knowledge/?GCC%20Developer%20Lite#STERM]])への出力を使用します。~
#ref(motion.png)

****キーボード入力 [#v1783875]
: 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/modules/knowledge/?GCC%20Developer%20Lite#STERM]])への出力を使用します。
****キーボード入力 [#o57ff856]
: 1 | 歩行を開始します。
: 2 | 右腕を振ります。
: 3 | 右旋回します。
: 4 | 左旋回します。
: 5 | ホームポジションへ移動します。歩行中の場合は停止します。
: 6 | 倒れていた場合、起き上がります。
: n | 全身脱力(全アクチュエータの位置決め制御がOFF)になります。
: h | 現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。
: C | 全アクチュエータの状態を確認します。
: ESCキー | プログラムを終了します。
****歩行中のみ有効なキーボード入力 [#l266c30b]
: 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(Walk_RC).c [#u5703b05]
歩行します。~
本サンプルプログラムではリモートコントローラ([[RC-100B:http://www.besttechnology.co.jp/modules/knowledge/?BTX048%20RC-100B]]/SIXAXIS)とキーボードからの入力、及びコンソール([[SIMPLE TERM:http://www.besttechnology.co.jp/modules/knowledge/?GCC%20Developer%20Lite#STERM]])への出力を使用します。
****リモートコントローラ入力 [#s879ab38]
: 1/△ボタン | 歩行中は減速停止します。停止中は歩行を開始します。
: 3/×ボタン | 歩行中は歩行パラメータをデフォルト値に再設定します。
: U/↑ボタン | 歩行中に押し続けることで、前進中は歩幅を5mmづつ広げますが、後進中は歩幅を狭めます。
: D/↓ボタン | 歩行中に押し続けることで、後進中は歩幅を5mmづつ広げますが、前進中は歩幅を狭めます。
: R/→ボタン | 歩行中に押し続けることで、右側への横歩幅を5mmづつ広げますが、左横歩き中は歩幅を狭めます。
: L/←ボタン | 歩行中に押し続けることで、左側への横歩幅を5mmづつ広げますが、右横歩き中は歩幅を狭めます。

****キーボード入力 [#qfba0275]
: 1 | 歩行を開始します。
: 2 | 右腕を振ります。
: 3 | 右旋回します。
: 4 | 左旋回します。
: 5 | ホームポジションへ移動します。歩行中の場合は停止します。
: n | 全身脱力(全アクチュエータの位置決め制御がOFF)になります。
: h | 現在のFREEDOM Jr.IIIの姿勢をホームポジションとして保存します。
: C | 全アクチュエータの状態を確認します。
: ESCキー | プログラムを終了します。
****歩行中のみ有効なキーボード入力 [#c7f14b07]
: 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 | 歩行を強制停止します。

***SMPL7(Full).c [#h7cb8a09]
モーション作成・再生・歩行といった一連の操作を取り入れたサンプルです。~
本サンプルプログラムではリモートコントローラ([[RC-100B:http://www.besttechnology.co.jp/modules/knowledge/?BTX048%20RC-100B]]/SIXAXIS)とキーボードからの入力、及びコンソール([[SIMPLE TERM:http://www.besttechnology.co.jp/modules/knowledge/?GCC%20Developer%20Lite#STERM]])への出力を使用します。~
操作の基本はメニューの選択で行います。

****モード [#qcf3b6df]
: Edit motion | モーションの作成・削除・再生、ホームポジションの調整を行います。
: Walking parameter | 歩行パラメータの変更を行います。
: Assign to button | 任意のボタンへ任意のモーションを割り当てます。~
方向キーに割り当てることはできません。
: Run | プログラムを実行するとこのモードになります。~
任意のボタンへ割り当てた任意のモーションの再生と、方向キーによる前後左右への歩行を行います。~
メインメニューへ戻るにはFDIII-HCのPB1を押すか、キーボード上でESCキーを2度押します。
: Status of DX | アクチュエータの状態を表示します。~
: Exit | プログラムを終了します。
****Edit motion [#kb769501]
: Load Motion | モーションデータの読み出して、ポーズ1を再生します。
: Save Motion | 編集中のモーションデータを保存します。
: Delete Motion | 保存されたモーションデータを選択して削除します。
: Get Pose |
: Delete Pose |

« Prev[4]  Next »[5]