KHRシミュレータにKRC-5FH / Microsoftゲームパッドを接続する
KHR Simulator with a KRC-5FH / Microsoft Gamepad Controller
近藤科学社のKRC-5FH送受信機セットを利用して、実機と同じようにKHRシミュレータ上のKHR-3HVを操縦することができます。KRC-5FH接続には、RCBsim_0.5以降が必要です。
またUSB接続のMicrosoft社(互換)のゲームパッドでも、同じように操縦することができます。こちらは、RCBsim_0.4でも動きます。
またリモート階段昇降競技のシミュレーション用KHR-3HVモデル“KHR3_17_0.5_a.ttt”を公開します。これと組み合わせることで、ROBO-ONE Lite リモート階段昇降競技のシミュレーションができます。
KRC-5FHを用いたKHRsimのコントロール
※この接続にはKRC-5FH送受信機セットの他に、Dual USBアダプターHSやHVバッテリー/ROBOパワーセル(+充電器)などKHR-3HVキット(実機)に含まれるパーツが必要になります。別途購入するとそれなりの金額(合計1万円以上)がかかりますので、実機をお持ちでない場合にはご注意ください。操作性は劣りますが、Microsoftゲームパッド接続もご検討ください。送信機がKRC-5FH、受信機がKRR-5FHです。
KRR-5FH(受信機)の接続
KRC-5FHからの信号をKHRシミュレータ(PC)に取り込むために、Figure.1のようにDual USBアダプターHSを介してKRR-5FH(受信機)をPCに接続します。必要なパーツ
- KRC-5FH送信機
- KRR-5FH受信機
- ZH接続ケーブルB(100mm)<グレー黒黒>
- Dual USBアダプターHS
- 白黒線延長コード
- 二股コードII / Yハーネス
- 変換コード(HVバッテリー用)
- HVバッテリー / ROBOパワーセル(+充電器)
以下のパーツは、KHR-3HVキットに入っているものを使用します。
Dual USBアダプタHSは、ICSモードにします。Dual USBアダプタHSと二股コードII(Yハーネス)の間は、2線の白黒線延長コードで接続します。ここを間違って3線の延長コードで接続すると、壊れます。
khrsim.confの設定
RCBsim.exeと同じフォルダにある(なければ作成する)khrsim.confに、次のように設定しておきます。
GAMEPAD_TYPE 1 # 0: None, 1: KRC-5FH, 2: Microsoft(KRC simulate)
KRC_PORT COM5 # 番号は、PCごとに異なります。Dual USBアダプタHSのCOMポート番号を指定してください。
khrsim.confでKRC-5FH / MSゲームパッドの使用を宣言しておいて、実際には接続しなくても問題ありません。(警告メッセージが表示される場合があります。)
ボタンの割り当て
近藤科学社が公開しているサンプルモーションにはあらかじめ、無線コントローラのボタンデータが登録されています。モーションとボタンデータの割り当ては、HTH4/HTH4Pを使って変更することができます。サンプルプロジェクト“Hello_KHR3(V2.3)”ではなぜか、起き上がり動作がボタンに割り当てられていません。工夫してみてください。
使い方
RCBsim.exeの起動時に、Dual USBアダプタHS(KRR-5FH)が接続されている必要があります。起動後に接続しても、認識されません。またKRC-5FH送信機とKRR-5FH受信機のペアリングをしておいてください。
CoppeliaSimとRCBsim.exeを起動して、KRC-5FHのボタンを操作すると、対応するモーションが実行されます。
おまけ: 実機とKHRシミュレータの同時制御
1台のKRC-5FH送信機に複数台のKRR-5FH受信機をペアリングして、複数のKHR-3HVに同時に指示を出すことができます。これを使って、KHR-3HVの実機とKHRシミュレータを同時に制御してみたことがあります。KHRシミュレータはリアルタイム(実機と同じ速度)で動くので、ロボットが倒れなければ実機とKHRシミュレータで同時に同じ動きをします。ただしロボットが倒れた場合、一方だけに起き上がり命令を送ることはできません。Microsoftゲームパッドを用いたKHRsimのコントロール
USB接続のMicrosoft社(互換)のゲームパッドでも、KHRシミュレータ上のKHR-3HVをコントロールすることができます。khrsim.confの設定
RCBsim.exeと同じフォルダにある(なければ作成する)khrsim.confに、次のように設定しておきます。“KRC_PORT”の設定は必要ありません。
GAMEPAD_TYPE 2 # 0: None, 1: KRC-5FH, 2: Microsoft(KRC simulate)
Microsoft(互換)ゲームパッド
ゲームパッドは、XInput規格のものを使用します。旧式のDirectInput規格のものには対応していません。切替式の場合は、XInput規格に設定してください。KRC-5FHとMSゲームパッドではボタンの数が違うだけでなく、対応する位置にあるボタンを押した場合に送出されるコードも異なります。GAMEPAD_TYPEが2 (Microsoft: KRC simulate)の場合、KRC-5FHと対応する位置にあるMSゲームパッドのボタンを押した場合に同じモーションが実行されるように、内部でボタンコードを自動変換しています。そのためMSゲームパッドを使用する場合でも、HTH4でモーションに割り当てるのはKRC-5FHのコードになります。
KRC-5FHの斜め方向ボタンと同じコードは、MSゲームパッドの二つのボタンの同時押しで生成できます。 ただしRCB4の仕様により、モーション実行中はボタンコードの判定を行いません。(ボタンコードが変更されても、その時点でモーションが切り替わるとは限りません。) もし同時押しに時間差があって一方のボタンのコードが先に認識された場合、そのコードでモーションが確定してしまい、その直後に同時押しが認識されても有効にならない場合があります。
使い方
RCBsim.exeの起動時に、MSゲームパッドが接続されている必要があります。起動後に接続しても、認識されません。CoppeliaSimとRCBsim.exeを起動して、MSゲームパッドのボタンを操作すると、対応するモーションが実行されます。 なお、すべてのMicrosoft社互換ゲームパッドの動作を保証するものではありません。
“ROBO-ONE Lite リモート競技”のシミュレーション
コロナ禍により、ROBO-ONEやKONDO BATTLEなどのロボット競技会がリモート開催になっています。物理シミュレーションではロボット単体だけでなく、段差や周囲のオブジェクトなどの周辺環境も含めてシミュレーションができます。KHRシミュレータで、ROBO-ONE Lite リモート競技のシミュレーションができるようにしてみました。ROBO-ONE Lite リモート階段昇降
通常のKHR-3HVモデルの代わりに、以下のファイルを使用します。リモート階段昇降競技シミュレーション用KHR-3HVモデル KHR3_17_0.5_a.ttt
これはKHR-3HVモデル“KHR3_17_0.5.ttt”をベースにして、“ROBO-ONE Lite リモート競技規則”に準じて、KHR-3HVのつま先から500mmの間隔を空けて600×400×6[mm]の板を配置してあります。
リモート競技規則では“段差は5mm以上の板”となっていますが、実機ではエンコーダの精度から目標位置に対して必ず誤差が生じるのでシミュレーションに余裕が必要なことと、ダイソー(100均)で6mm厚のMDF材が入手できることから、段差6mmに設定しています。フィールドサイズには規定がなく、600×400[mm]には特に意味はありません。“段差を登って2歩歩く”ということで一応、110円で購入できる300×400×6[mm]のMDF板を2枚並べた大きさ(ほぼA2サイズ)にしてあります。
このKHR-3HVモデルを使用して、KHRシミュレータにKRC-5FHやMSゲームパッドを接続することにより、仮想空間内でKHR-3HVを操縦してリモート階段昇降のシミュレーションができます。ただしKHRシミュレータでうまく歩けるようにモーションを調整しているわけではないので、参考程度にお考えください。
- 近藤科学社のサンプルモーションには手を加えていません。
- KHRシミュレータでは、サンプルモーションそのままでは6mmの段差をクリアできないかもしれません。
- プライベート版HTH4Pと、KRC-5FH / MSゲームパッドを併用することができます。