KHR Simulator Tips

KHRシミュレータ 技術情報
KHR-3HV Small Humanoid Robot Simulator Technical Tips

※KHRシミュレータの概要、最小システム要件、基本的な使い方などについては、“KHRシミュレータ・ホーム”ページに記述されています。
 またインストール方法については、“ダウンロード”ページをご参照ください。

RCBsim

RCBsimの制限事項

これらについて、今後のバージョンアップで仕様が変更される可能性があります。

初期設定ファイル

RCBsim.exeは起動時に、同じフォルダにある“khrsim.conf”という初期設定ファイルを読みにいきます。初期設定の必要がなければ、このファイルは無くても構いません。設定を変更した場合には、RCBsim.exeの再起動が必要になります。

khrsim.confの書式

変数名    値    # コメント

1行に一つの変数を指定します。 “#”より後ろは、コメントになります。コメントには日本語を使っても構いませんが、それ以外は半角英数字で記述します。
変数名や値(文字列)の前後には、“ ” は付けません。

簡易調整

数値計算でロボットの動きを再現するために、ロボットの形や重さの他、運動特性を表す多数のパラメタを設定してあります。 なるべく実機に近い動きをするようにしていますが、多数のパラメタの最適値を見付けることは大変難しく、いまもずっと調整を続けています。なおパラメタの変更は他のすべてのモーションにも影響を与えるので、注意が必要です。
簡易調整の方法を一つ、示します。簡易調整なので、これだけではうまく調整できないこともあります。

khrsim.confの例

ICS_ADJUST    -1    # 小さい整数値(プラスあるいはマイナス)を設定します。

この調整により例えば“逆立ち”モーションでは、逆立ちから直立姿勢に戻るときに前に倒れたり、後ろに倒れたりするようになります。ロボットが倒れずにうまく実行できる補正値を探してください。

加速度センサ

起きあがりモーションには基本的に、“起きあがり(うつぶせ)”と“起きあがり(仰向け)”の2種類があります。ロボットが倒れた向きによって、二つのモーションを使い分ける必要があります。加速度センサを使うと、ロボットの静止時に傾き(うつぶせか仰向けか)を知ることができます。(動作時には、傾きは分かりません。)これにより“起きあがり(方向判定)”モーション(例えば22軸用サンプルモーションに含まれています)で、自動判定できるようになります。加速度センサの設定をせずに“起きあがり(方向判定)”を実行してもエラーにはなりませんが、正しい結果は得られません。

KHR-3HVにはオプションで、加速度センサが用意されています。以前はRAS-2C(現在は販売終了)が使われていましたが、2017年からRAS-3に切り替わりました。センサの出力値が異なるため、“起きあがり(方向判定)”モーションにはRAS-2C用とRAS-3用の2種類があります。

KHRシミュレータでは、khrsim.confで加速度センサの種類を指定できます。

khrsim.confの例

ACCELEROMETER_TYPE    2    # 0: None, 2: RAS-2C, 3: RAS-3

“halt. (Simulator only)”

実機に搭載されたCPUボードRCB4では初期設定のあと、優先モーションの条件チェックを繰り返しながら(メインループ)、外部からCOMポートにコマンドが送られてくるのを待ちます。これだと実行したコマンドをトレースする場合に大量のデータが生成されるので、KHRシミュレータでは優先モーションの条件チェックを1度だけ実行するとhalt(一時停止)するようにしています。そして外部からコマンドが送られてくると、自動的に実行を再開します。このhaltするポイントが、PCアドレス0x00044b (MainLoopCmd)です。

CoppeliaSim (旧V-REP) Player (Coppelia Robotics社) 関連

KHR3_17モデル

KHR3_17モデル(KHR3_17_xx.ttt)は、近藤科学社の公開情報や実機の実測値をもとにして我々がCoppeliaSim用にモデリングしたKHR-3HVの17軸モデルです。実は内部的には22軸仕様でモデリングしてあり、そこに17軸のプロパティ(各パーツのサイズや重量など)を載せています。(外観のCGも、22軸仕様になっています。)
17軸モデルに対して22軸用モーションを実行しても、実機と同じくエラーにはなりません。ただしプロパティが違うので、正しい物理シミュレーションは期待できません。

なおモデルごとに物理シミュレーションのための細かいパラメタ調整が必要なため、 17軸以外のモデルの提供については未定です。

CoppeliaSim Playerの速度チェック

あらかじめCoppeliaSim Playerをインストールしておきます。 KHR3_17モデル(KHR3_17_xx.ttt)をダブルクリックして、CoppeliaSim Playerを起動します。上段メニューバーの中央付近にある “Start/resume simulation”ボタン(右向きの三角アイコン)をクリックして、シミュレーションを開始します。ただしロボットをコントロールするものが何もつながっていないので、ロボットは動きません。 シミュレーション画面内の上部右側に“(real time fact=1.00)”と表示されているか確認します。1.00でない場合は、残念ながらハードウェア性能が足りていません。動作のタイミングがずれるので、例えばロボットが倒れたり、起き上がれないなど、正しいシミュレーション結果が得られません。

シミュレーションを停止する場合は、“Stop simulation”ボタン(“☐”アイコン)をクリックします。
CoppeliaSim Playerを終了する場合は、シミュレーションを停止してから右上の“☓”アイコンをクリックします。

Figure 1. CoppeliaSim(V-REP) Player画面

シミュレーションウインドウ

CoppeliaSim Playerの左メニューバー(縦)にある“Model browser”(ロボットのアイコン)と“Scene hierarchy”(階層リストのアイコン)のチェックを外すと不要なサブウインドウが消えて、シミュレーションウインドウが広く使えます。

カメラの移動・回転

シミュレーションのカメラを動かすことができます。CoppeliaSim Playerの上メニューバーの左側にあるアイコンをクリックして、カメラの移動や回転を選択します。またマウスのボタンでも、カメラを動かすことができます。

Simulation parametersについての注意画面

シミュレーションをスタートすると、“Simulation parameters”についての注意画面が表示されます。注意画面の下部にあるボックスをチェックして、OKをクリックしてください。 3回繰り返すと、それ以降は表示されなくなります。

CoppeliaSim PlayerとRCBsimの実行順序

「CoppeliaSim Playerソフトウェアの起動/終了」とCoppeliaSim Playerによ る「シミュレーションの開始/停止」を、きちんと区別する必要があります。 CoppeliaSim Playerを起動した時点では、シミュレーションは開始されていま せん。

ロボットがシミュレーション画面から消える?

シミュレーションを開始したまま長時間放置すると、ロボットがシミュレーション画面からいなくなることがあります。実は、床(ステージ)の端から奈落に転落しています。手動でシミュレーションを停止すると、ロボットが初期位置に戻ります。ただしシミュレーションが自動的に再開されることはないので、手動でシミュレーションを再開してください。RCBsimを起動し直す必要はありません。

HTH4 Private版

Private版の主な変更点

Figure 2. HTH4 Private版画面

※HTH4 Private版は近藤科学社の許可を得て、我々が改変し配布しているものです。近藤科学社が配布しているものではありません。これは近藤科学社のサポート対象外です。

実機とシミュレータの切替

KHR-3HVの実機を持っている場合、COM選択メニューで“‹KHR simulator›”の替わりに“COM??” を選択すると、従来通りCOM経由で実機につながります。このときシミュレータと実機のメモリ内容は、自動的に同期するわけではありません。シミュレータを使って新しいモーションを開発しそれを実機で実行する場合には、実機側でもモーションのダウンロードをして環境をそろえる必要があります。