サンプル動作の一部を編集する¶
最後に、このサンプルを編集してオリジナルの動作を作成していきます。 オリジナルの動作を作成する前に、動作の編集を行うために必要となる各ビューとツールバーについて基本的な機能とその操作方法について説明します。 そして、サンプル動作 SampleMotion1 の一部のキーポーズを変更や新しいキーポーズを追加などの編集を行います。 最後に、GR-001で修正した動作パターンの動作の確認し、新しい動作パターンとプロジェ クトの保存をして終了です。
コレオノイドの各ビュー、ツールバーの基本的な機能と操作¶
コレオノイドには、プラグインを追加していくことで様々な機能追加を行うことができます。 利用可能なビューやツールバー、メニューなどもインストールされたプラグインによって変化していきます。 ここでは、サンプル動作の編集に関係している主なビューとツールバーについて説明していきます。
アイテムビュー¶
コレオノイドでは、ロボットモデルや動作データなど、操作・編集対象となるオブジェクトで、GUI上で明示的に管理されるものを「アイテム」と呼んでいます。アイテムビューは、コレオノイド上に読み込まれているアイテムをツリー形式でリストアップし、閲覧・管理するためのビューです。
アイテムの種類としては、以下のようなものがあります。
ワールドアイテム (WorldItem)
これは、ロボットや環境物体のモデル(ボディアイテム)をひとつの仮想世界にまとめるためのアイテムです。 モデルをワールドアイテムの小アイテムとして配置することで、モデル同士の衝突判定などがなされます。
ボディアイテム (BodyItem)
これは、ロボットや環境物体のモデル(形状や関節構造、物理パラメータ等)に対応するアイテムです。 左側のチェックでシーンビューにおける3D表示のオン/オフを切り替えることができます。
ポーズ列アイテム (PoseSeqItem)
キーポーズ列として表されるロボットの動作データに対応します。キーポーズを補間して得られる動作軌道は、本アイテムが小アイテムとして持つボディモーション型のアイテムに格納されます。
ボディモーションアイテム (BodyMotionItem)
このアイテムは、ベースリンクの位置姿勢の軌道と関節角度軌道からなるロボットの動作軌道データに対応します。 このアイテムは、子アイテムとしてMultiValueSeqアイテム、MultiAffine3Seqアイテム、Vector3Seqアイテムを持ちます。
MultiValueSeqアイテム
このアイテムは、複数のスカラ値を時間フレーム数分格納したデータに対応します。ボディモーションアイテムにおいては、関節角軌道を格納するための小アイテムとして利用されており、その名前は"q"となっています。
MultiAffine3Seqアイテム
このアイテムは、複数の同次4x4行列を時間フレーム数分格納したデータに対応します。ボディモーションアイテムにおいては、ベースリンクおよび各リンクの位置姿勢の軌道を格納するための小アイテムとして利用されており、その名前は"p,R"となっています。
Vector3Seqアイテム
このアイテムは、3次元ベクトルを時間フレーム数分格納したデータに対応します。ボディモーションアイテムにおいては、動作におけるZMP軌道を格納するための小アイテムとして利用されており、その名前は"ZMP"となっています。
運動学シミュレータアイテム (KinematicsSimulatorItem)
これは、運動学シミュレーションを設定、管理するアイテムです。
動力学シミュレータアイテム (DynamicsSimulatorItem)
これは、力学シミュレーションを設定、管理するアイテムです。現在のところ、作成した動作軌道のハイゲインシミュレーションを行えるようになっています。
GRobotコントローラアイテム (GRobotControllerItem)
これは、G-ROBOTS GR-001の動作制御を行うためのアイテムです。 コレオノイドの動作に同期させてGR-001を動かしたり、サーボモータのトルク状態を変更したりできます。
コレオノイドでのアイテムは、基本的に「ファイル」メニューの「新規」サブメニュー、または「読み込み」サブメニュー(下図を参照)で生成するか、他のアイテムの生成時にその小アイテムとして自動生成されます。
また各アイテムは、 アイテムビュー内の各アイテムを右クリックするとサブメニューが表示されますので、そのメニューを使ってアイテムの削除や複製等を実行することができます。
コレオノイドでは、アイテムは階層的に管理されています。前述のサンプル動作の例では下図のように出力されており、"World"の下にボディアイテムとして"Floor"と"GR001"があり、ロボットのコントローラと動作パターンが"GR001"に帰属していることがわかります。これらの階層関係は、マウスでドラッグすることで自由に変更することも出来ます。
プロパティビュー¶
プロパティビューでは、アイテムビューで選択したアイテムの属性を表示したり、編集したりすることができます。 選択したアイテムの属性変更を行う場合には、該当箇所をクリックすれば選択・編集状態になります。 編集後、 ENTER キーを押すか、このビュー以外の別の場所をクリックすれば確定します。 下図は、ここで使用している"GR001"のモデルの属性を示しています。
シーンビュー¶
シーンビューは、ボディアイテム等の3次元形状を有するアイテムに関して、3Dグラフィックスによる表示・操作を行うためのビューです。 ロボットの姿勢や動作は基本的にはここで確認します。
シーンビューには、閲覧モード(View Mode)と編集モード(Edit Mode)があります。これらのモードは、シーンビューツールバーの左端のモード切り替えボタン、ESCキー、ビュー上を右クリックすると表示されるポップアップメニュー、あるいはビュー上でのダブルクリックといった操作によって切り替えることができます。現在のモードの確認は、モード切り替えボタンの状態で判断します。あるいは、編集モードにおいてはモデル操作用の各種マーカが表示されますので、そのようなマーカが表示されているかどうかによって判断することも可能です。
視点変更¶
シーンビューにおける視点の変更は、モードを閲覧モードにした上で、マウスの左ボタンと中ボタン、中スクロールを使って行います。 まず、シーンビューの真ん中あたりで左ボタンを押下して、そのまま上下左右にドラッグしてください。 すると下図のように、最初に押下した点を中心に視点が回転します。
中ボタンを押下して上記と同じ操作を行うと、下図のように視点が平行移動します。
また、この中ボタンを前後にスクロールして下さい。 すると、 Scene ビューがズームイン/アウトしますので、確認して下さい。
編集モードにおいては、ロボットモデル上でマウスの押下を行うと姿勢変更等の操作になり、この場合上記の視線変更操作はできません。ただし、ロボットモデルを避けて背景の上で操作を行うことにより、視線変更を行うことも可能となっています。
モデルの姿勢変更¶
ロボットの姿勢変更の基本的な操作について説明します。 まず、視点を下図のように初期状態に近い状態に戻して、Editモードにしてください。
そして、マウスポインタをシーンビュー内のロボットのリンク上に置くと、図の左手先のように、そのリンクの周囲が赤いアウトラインで強調表示されます。このように赤いアウトラインで強調表示されているリンクが、操作対象のリンクとなります。
リンク移動や関節の回転といった操作をどのように行うかは、下図に示す「運動学ツールバー」のモードボタンで切り替えることができます。
①②③の3つのボタンがモード切り替えのボタンとなっています。
①は順運動学モードとなっており、このボタンがオンになっていると、マウスのドラッグに応じて対象リンクの関節角度のみが変わります。このとき、ベースリンクとして設定されているリンクが順運動学の起点となります。ベースリンクはシーンビューが編集モードのときに四隅が赤いマーカーで囲われているリンクであり、編集モードにおいてリンクを右クリックすると出てくるメニューから「ベースに」を選択することで切り替えることができます。上の図では左足先がベースリンクとなっています。例えば、膝のリンクをドラッグする際に、腰をベースリンクとした場合と足先をベースリンクとした場合とで、挙動がどのように変わるかを試してみてください。
③は逆運動学モードとなっており、対象リンクの位置姿勢がマウスに追従するように、複数の関節を同時に動かします。このとき逆運動学の起点となるのが、やはりベースリンクとなっています。これについても、腰をベースリンクとして足先をドラッグする場合と、足先をベースリンクとして腰を動かす場合について、挙動がどのように変わるかを試してみてください。また、逆運動学を行う際に④のボタンがオンになっていると、姿勢を変更するための球状のドラッがリンクに表示されます。このドラッガをドラッグすることで、リンクの姿勢を変えることができます。
②は各リンクに対してあらかじめ定義された設定に従って、順運動学と逆運動学を自動的に切り替えるモードです。通常、足先を動かす場合は腰を起点とした逆運動学、腰を動かす場合には両足を起点とした逆運動学、そしてそれ以外の場合には順運動学を適用するようになっています。このモードにおいては、ベースリンクの設定は影響を及ぼさず、実際のベースリンクは暗黙的に切り替わるようになっています。
上述したように編集モードであってもロボットモデルでない場所をドラッグすれば視点移動を行うこともできますので、これを用いて適当な視点に移動させながらロボットの姿勢を編集していくことになります。
ポーズロールビュー¶
ポーズロールビューは、Chorenoidで動作パターンの基本となっている、ロボットのキーポーズ時系列の表示と編集を行うためのビューです。 このビュー上で次のキーポーズへ移動のタイミングを細かく編集することができます。ポーズロールビューに表示された黒い三角形はロボットのキーポーズへの遷移を表しており、左側の頂点部分が遷移の開始点、右端が遷移の終了点、すなわち実際にそのキーポーズになる点を表しています。 この三角形は、マウスでクリックし選択状態になると赤くなり、自由に移動、修正することができます。 各三角形をクリックするとロボットモデルの姿勢もキーポーズのものに変更されますので、どのようなキーポーズであるかも簡単に確認することができます。
また、ポーズロールビュー上でマウスの中ボタンを押しながら左右にドラッグすることで、ビュー全体の時間軸方向の表示スケールを拡大縮小することができます。
関節スライダビュー¶
Chorenoidでは、シーンビュー上でロボットの姿勢を直接編集できますが、それとは別に選択した関節ごとにスライダーや数値を直接入力して姿勢を変更することもできます。関節スライダビューは、この型式のインターフェースを提供しています。これは、微妙な修正をしたい場合や、指定の位置姿勢に正確に持って行きたい場合など、状況に応じてシーンビューと使い分けるとよいかと思います。
タイムバー¶
このツールバーは、コレオノイド上の時間を管理します。各箇所の機能は以下のとおりです。
- ①再生ボタン: 時刻0からのアニメーション再生を開始します。時刻が全ての再生対象データの時間長を超えた時点で再生を終了します。
- ②レジューム/停止ボタン: 現在時刻からのアニメーション再生を開始します。また、再生中は停止ボタンに切り替わり、ボタンを押すことで再生を停止します。
- ③リフレッシュボタン: 現在時刻に対応する時間フレームで各データを更新します。例えばロボットの姿勢を変えた後で、元々の動作パターンにおける姿勢に戻したい場合などに利用します。
- ④時刻ボックス: 数値による現在時刻の表示・変更を行います。
- ⑤時刻スライダー: 時刻をスライダーで表示・変更します。このスライダーをドラッグすることにより、手動によるアニメーションも可能です。
- ⑥最小時刻ボックス: 管理対象の最小時刻を設定します。
- ⑦最大時刻ボックス: 管理対象の最大時刻を設定します。
- ⑧設定ボタン: タイムバーの設定ダイアログを表示します。
運動学ツールバー¶
運動学ツールバーは、姿勢変更時における順運動学・逆運動学の切り替えと、そのた姿勢変更に関連する設定機能を提供します。
ボタン①〜④については既に説明しましたので、以下では⑤以降のボタンについて説明します。
- ⑤貫通ブロックモードボタン: このボタンをオンにしておくと、リンクの移動時に他の物体に貫通しないようにブロックするようになります。ロボットの足裏を床にぴったり接地させたいときなどに使います。この機能をオンにするためには、ブロック対象となる複数のモデルを同じワールドアイテム内に配置し、ワールドアイテムのプロパティで「干渉検出」を「true」にしておく必要があります。
- ⑥干渉ハイライトモードボタン: このボタンをオンにしておくと、リンクが衝突した際に、そのリンクの周囲を黄色のアウトラインで強調表示するようになります。
- ⑦設定ボタン: 設定ダイアログを表示します。
ボディモーション生成ツールバー¶
このツールバーは、キーポーズ列データから実際の動作軌道を格納するボディモーションアイテムの内容を生成する際の操作・設定を行うツールバーです。
各ボタンの機能は以下のとおりです。
- ①生成ボタン: 対象となるポーズ列アイテムかその小アイテムであるボディモーションアイテムのどちらかを選択状態にしてこのボタンを押すと、ポーズ列からの軌道データ生成が実行されます。
- ②自動生成モードボタン: このボタンをオンにしておくと、ポーズ列データに変更が加えられる度に、自動で軌道生成を行い、軌道の更新を行います。
- ③バランス補正有効化ボタン: このボタンをオンにしておくと、軌道生成の際にバランス補正が行われます。これによってボディモーションアイテムのデータを力学的にバランスのとれたデータとすることができます。ただし、この機能を有効にするためには、バランサープラグインが読み込まれている必要があります。
- ④設定ボタン: 軌道生成に関する各種設定を行うダイアログを表示します。
サンプル動作の一部のキーポーズを変更する¶
それでは、サンプル動作 SampleMotion1 のキーポーズの一部を変更しましょう。 G-Robotツールバーで同期モードがオフになっていることを確認してください。 また、ポーズロールビューが表に出ていない場合は、「ポーズロール」と書かれたタブをクリックして、ビューを表に出すようにしてください。
次に、アイテムビューで SampleMotion1 アイテムをクリックし選択状態にします。 そして下図のように1.5 秒のキーポーズ(両腕を左右に開いている姿勢)を選択して下さい。
このキーポーズを両腕が下に下げている姿勢に変更します。 マウスで、両方の腕を移動させて下図のように変更しましょう。
変更が終了したら、ポーズロールビューの上部中央にある「更新」ボタンを押してください。 これで、新しい姿勢が SampleMotion1 に反映されました。
キーポーズの変更が終了したら、タイムバーの再生ボタンやスライダーを使ってロボットの動作を確認してください。
サンプル動作に新たなキーポーズを追加する¶
次に、サンプル動作 SampleMotion1 の末尾に新たなキーポーズを追加してみます。
SampleMotion1 アイテムが選択されていることを確認します。ポーズロールビューのスクロールバーを使うなどして、下図のようにキーポーズ列末尾が見えるようにし、①のように最後のキーポーズを選択して下さい。
次に、キーポーズを追加したい時刻にカーソルを移動します。ここでは、10秒のところに追加することにします。ポーズロールビューでキーポーズが表示される領域の上部(時刻の表示がある部分)をマウスでクリックするとカーソル位置を変えることができますので、10秒のところをクリックし、②のような状態にしてください。
そして、ロボットの腰部をマウスでドラッグし、下図①のように下に移動させてしゃがんだ姿勢をつくります。
ここで②の挿入ボタンを押します。すると、このしゃがんだ姿勢が、③のように時刻10秒のところに新たなキーポーズとして追加されます。
キーポーズの追加が終了したら、先ほどと同様にタイムバーを使うなどして、ロボットの動きを確認してください。
ポーズロールビューではこの他にも、すでに作成したキーポーズをコピーしたり、複製を追加したり、キーポーズに移動するまでの時間等を変更したりすることができますので、いろいろと試してみてください。
GR-001 で動作を確認する¶
編集したサンプル動作SampleMotion1を実機で動作させてみましょう。 GR-001が接続されていることを確認し、アイテムビューで:guilabel:SampleMotion1 アイテムが選択されていることを確認し、GRobotツールバーの同期モード切り替えボタンをオンにしてください。 そして、タイムバーの再生ボタンを押して、GR-001実機を動かし、その動作が先程修正した動作パターンと同じになっていることを確認してください。
作成した動作を別名で保存する¶
正常に動作していることが確認できたら、修正したサンプル動作を別名で保存します。 アイテムビューで SampleMotion1 アイテムをクリックして選択状態にし、「ファイル」メニューの「名前をつけて選択アイテムを保存」を実行してください。 すると、下図のファイルダイアログが表示されますので、ファイル名入力ボックスに “SampleMotion2”と入力して、「保存」ボタンを押してください。ファイルの拡張子は、自動的に付加されます。
最後に、エクスプローラー等で SampleMotion2.pseq
というファイルが生成されていることを確認してください。
プロジェクトの保存と終了¶
最後に、現在の編集状態を保存するために、プロジェクトの保存を行います。 プロジェクトの上書き保存は、下図に示したファイルツールバーの「プロジェクト保存ボタン」を押すか、ファイルメニューの「プロジェクトの保存」で行うことができます。
別名で保存したい場合には、ファイルメニューの「名前をつけてプロジェクトを保存」を実行してください。 この場合、先ほど別名で動作パターンを保存した時と同様に、ファイル保存ダイアログが表示されますので、任意の場所に任意の名前でプロジェクトファイルを保存することができます。
プロジェクトの保存が完了すれば、コレオノイドを終了しますので、ファイルメニューの最下部にある「終了」を実行するか、メインウィンドウの「閉じるボタン」押してください。
以上で、コレオノイドの基本的な操作に関する説明は終了です。 より詳細な使用方法に関する説明は、今後操作マニュアルとして整備していく予定です。