ユーザ用ツール

サイト用ツール


ja:manual:one_point

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ja:manual:one_point [2014/07/02 13:17]
sugiura [DLLプログラムのサンプル]
ja:manual:one_point [2014/07/08 14:03] (現在)
sugiura [メタセコイアからのインポート方法]
ライン 1: ライン 1:
-====== ​10C++(DLL)でのプログラム開発 ​====== +====== ​11ワンポイント ​====== 
-===== 概要 ​===== +ワンポイントテクニックを紹介します。 
- Go Simulation!ではロボットやステージのモーション独自のスクリプト言語でプログラムすることが可能ですが、スクリプトの他もDLL(Dynamic Link Library)でプログラムを作成することも可能です。DLLはC/​C++で記述することになるのでこれまで開発たライブラリ等の資産活用すが出来ます。 +===== ロボットを空中に固定する ​===== 
- 本書はこDLLでプログラムする方法について解説します。+ロボットを設計するに、空中固定て設計進めたいときがあると思います、その方法解説します。
  
-===== 構成 ===== +ロボットの固定方法[[ja:​manual:​common_functions#​基本ブ|各モードページ基本節]]で解説しました。
- Go Simulation!とDLLの関係を図 10 1に示します。マニュアル本編で解説してありますように、Go Simulation!上でロボットのプログラム(スクリプト)main.txtに書くようになっています。このmain.txt内で、関数dll_run( )を使用することでDLLをロードし実行されます。この図の例ではhoge.dllをロードし実行されます。 +
- Go Simulation!とDLLの間では図のように双方向にデーをやりとりしており、制御アルゴリズム(フィードバック制御等)をDLL内に記述することが可能です。 +
- DLLはC/​C++で記述することが出来ますので、常のプログラムと同じようなこと、例えばファイル入出力や、Win32APIも使用可です。 +
- Go Simulation!とDLL通信は同期をとっているため、データの取りこぼが生じせん。そのため制御アルゴリズムの開発に適ています(そのめ、DLLのプログラムが重くなるとシミュレーション全体の速度も遅くなるので注意してください)+
  
-===== DLLプログラムのサプル ===== +固定後、【RESET】ボタを押してください。 
-DLLプグラム具体的開発方法下記掲示板資料をまとめています。 +するとボットBody0番(デフォルトのロボットで腹部パーツ)が空中固定されています。 
-プルプログラムとに解説しておりますので、ご活用ください+【RESET】ボタンを押されたことにより、初期位置に戻ってそのまま空中に固定されまた。\\ 
 +足の浮く距離はステージ毎に設定されており、ユーザー作成ステージの場合は 
 +[[ja:​manual:​stage_design_mode#​ロボット1設定|ステージ設計モードページのロボット1設定の節]]の設定値となります
  
-テクノロードの掲示板から、 +{{:ja:manual:​onep1.png|}}\\ 
-http://​techno-road.com/​board.html +図 11-1 ロボットを空中に固定
-Go Simulation! ​ロボットデータ→C++(dll)でのロボットプログラム開発+
  
 +===== STLファイルの軽量化方法 =====
 +多くの3次元CADソフトの場合、STLファイルで保存することが可能です。\\
 +但し、CADデータをSTLファイルにそのまま変換すると膨大なポリゴンデータになります。\\
 +何故なら、ポリゴンは三角形の集合のため、曲面が多くなると多量の三角形が必要となるためです。
 +CADデータには、ネジ穴や軽量化の穴や、曲げ加工の曲線など、様々な曲面があると思います。
 +曲面が少しでもあると、STLファイルは無駄に容量が大きくなってしまいます。
  
 +即ち、__データを軽量化するためには、曲面を無くすことが必要です。__
 +
 +従って、3D CADデータをそのまま使用せず、曲面の無いシンプルなモデルを作ることをお勧めします。\\
 +例えば、図 11-2 のようにCADの詳細モデルをベースに、直方体をカットしていって、表示用のSIMPLEモデルを作成すると良いと思います。\\
 +穴は正八角形等で近似すると良いでしょう。\\
 +
 + ​{{:​ja:​manual:​onep2.png|}}\\
 +図 11-2 Simpleモデルの作成方法\\
 +
 +===== メタセコイアからのインポート方法 =====
 +多くの三次元CGソフトウェアの場合、DIRECT XのX Fileというフォーマットで保存可能です。\\
 +ここではメタセコイア([[http://​www.metaseq.net/​]])でのX Fileの保存方法を示します。\\
 +メタセコイアでX File形式で保存し、保存オプションを図 11-3 のように設定してください。\\
 +デフォルトから変更している箇所は、次の通りです。\\
 +
 +  座標軸:【VRML】に設定する
 +  Xオプション:【可視オブジェクト】にチェック
 +  【法線】にチェック
 +  【UVマッピング】にチェック
 +
 +{{:​ja:​manual:​onep3.png|}}\\
 +図 11-3 メタセコイアのX Fileの設定
 +
 +===== モーションファイル(rmo)フォーマット =====
 +モーションファイル(rmo)はテキスト形式で作成されています。
 +コメント行(#​)を除いたものを以下に示します。
 +
 +<code text Okiagari1.rmo>​
 +GyroEna=0;
 +_Okiagari1=[
 +  Time,​HipY_R,​HipY_L,​HipR_R,​HipR_L,​HipP_R,​HipP_L,​KneP_R,​KneP_L,​AnkP_R,​AnkP_L,​AnkR_R,​AnkR_L,​Dou,​Dou2,​Dou3,​Head,​Sho ​ P_R,​ShoP_L,​ShoR_R,​ShoR_L,​Arm_R,​Arm_L,​Elb_R,​Elb_L
 +  500,​0,​0,​0,​0,​0,​0,​0,​0,​-9000,​-9000,​0,​0,​0,​0,​0,​0,​0,​0,​9000,​9000,​0,​0,​0,​0
 +  100,​0,​0,​0,​0,​-1000,​-1000,​1000,​1000,​-8000,​-8000,​0,​0,​0,​0,​0,​0,​-9000,​-9000,​9000,​9000,​0,​0,​0,​0
 +  200,​0,​0,​0,​0,​-2000,​-2000,​5000,​5000,​-3000,​-3000,​0,​0,​0,​0,​0,​0,​-9000,​-9000,​5000,​5000,​0,​0,​0,​0
 +  100,​0,​0,​0,​0,​-3000,​-3000,​8000,​8000,​2300,​2300,​0,​0,​0,​0,​0,​0,​-9000,​-9000,​3400,​3400,​0,​0,​0,​0
 +  200,​0,​0,​0,​0,​-3000,​-3000,​8000,​8000,​2300,​2300,​0,​0,​0,​0,​0,​0,​-9000,​-9000,​3400,​3400,​0,​0,​0,​0
 +  200,​0,​0,​0,​0,​-4800,​-4800,​9800,​9800,​5000,​5000,​0,​0,​0,​0,​0,​0,​-9000,​-9000,​3400,​3400,​0,​0,​0,​0
 +  100,​0,​0,​0,​0,​-4800,​-4800,​9800,​9800,​7000,​7000,​0,​0,​0,​0,​0,​0,​-9000,​-9000,​3400,​3400,​0,​0,​0,​0
 +  100,​0,​0,​0,​0,​-3000,​-3000,​9000,​9000,​7000,​7000,​0,​0,​0,​0,​0,​0,​-9000,​-9000,​3400,​3400,​0,​0,​0,​0
 +  400,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0
 +  ]
 +motion(_Okiagari1);​
 +</​code>​
 +ファイル名と、最初の行と最後の行の強調した箇所が一致している必要があります。\\
 +あとはモーションエディタのウィンドウと同じような構成です。\\
 +
 +このようにモーションファイルはテキストで保存されていますので、実際のロボット用のデータに変換することが可能です。
ja/manual/one_point.1404274678.txt.gz · 最終更新: 2014/07/02 13:17 by sugiura