Skip to content

Commit

Permalink
Deployed e2a50af with MkDocs version: 1.6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
aky-u committed Jul 19, 2024
1 parent dfbe43a commit 1bf4fa6
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 31 deletions.
38 changes: 9 additions & 29 deletions c++/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal current" href="#">C++</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#how-to-use">How to Use</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#api-references">API References</a>
</li>
</ul>
</li>
</ul>
Expand Down Expand Up @@ -89,35 +93,11 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">

<h2 id="3-other-main-functions">3. Other Main Functions</h2>
<p>前章で<code>main_sim.m</code>とその内部で実行される5つの種類の関数について述べた.歩行シミュレーションの実行に用られるMain関数は<code>main_sim.m</code>ただ一つである.その代わりに使用するユーザーがそれぞれConfiguration関数を独自に設定することで様々なシミュレーションを同時に開発することができ,これがClimbLabがシミュレーションプラットフォームである所以である.しかし,<code>main_sim.m</code>以外にも,ClimbLabのフォルダ内には単独で実行できる関数が存在する.これらの関数には接頭辞に<code>main_</code>が付けられており,以下の5つのMain関数が存在する.</p>
<ul>
<li>
<p><code>main_iterative_sim.m</code></p>
</li>
<li>
<p><code>main_LP_2D_analysis.m</code></p>
</li>
<li>
<p><code>main_LP_3D_analysis.m</code></p>
</li>
<li>
<p><code>main_target_detection.m</code></p>
</li>
<li>
<p><code>main_iterative_target_detection.m</code></p>
</li>
<li>
<p><code>main_grid_map_designer.m</code></p>
</li>
</ul>
<p>上記の5つの関数の役割について以下で説明する.なお,これらのファイルを実行するためには,実行する際のMATLABの「現在のフォルダ」や,MATLABのパスに注意する必要がある.</p>
<p><code>main_iterative_sim.m</code>は,宇野らによって実装された,脚型ロボットの関節配置の違いによるトルク消費の比較をおこなうための実行コードである.このコード内では<code>main_sim.m</code>に相当するコードがループによって繰り返し実行されるようになっている.ループ内では,ある指定した姿勢で一定時間ロボットの姿勢を保ち,その間のロボットのトルク消費を計算する.姿勢を少しずつ移動させながらループを繰り返して検証していくことで,様々な姿勢におけるロボットのトルク消費を分析することができる.<code>main_iterative_sim.m</code>は,フォルダ<code>/climblab/src/script</code>下に置かれている.</p>
<p><code>main_LP_2D_analysis.m</code>および<code>main_LP_3D_analysis.m</code>はロボットのリンクパラメータ(LP)から,ロボットの脚先可動範囲をそれぞれ2次元的と3次元的に描画する関数である.ロボットモデルをアップデートして新たなリンクパラメータへと変更する際などに,これらの関数を使うことで広い脚先可動範囲を持つロボットの設計を進めることができる.これらの関数はフォルダ<code>/climblab/src/robot/LP_analysis</code>下に置かれている.</p>
<p><code>main_target_detection.m</code>は,地形情報データに対して把持可能点検出をおこなう実行ファイルである.<code>main_sim.m</code>内でも<code>target_detection.m</code>を実行して把持可能点検出をおこなうこともできるが,予めこのMain関数を用いて,<code>main_sim.m</code>内で実行されるコードと同一のコードによって把持可能点検出だけを試行することができる.この関数を用いて,把持可能点検出の結果を予め確かめたりパラメータを調整したりすることで,地形内の把持点の分布を予め把握してから,実際の歩行シミュレーションに取り組むことができる.<code>main_target_detection.m</code>では,Configuration関数として,<code>config_target_detection_testing_param.m</code>を読み込んでいるため,このConfig関数に書いたのと同じパラメータを歩行シミュレーションのConfig関数にも記述すれば,同じ把持可能点の出力結果が<code>main_sim</code>でも得られることになる.また把持可能点検出は処理に時間がかかるため,何度も同じ地形マップでの歩行シミュレーションを繰り返して検証する場合,予め<code>main_target_detection.m</code>を実行して得られた把持点の分布を保存し,<code>main_sim.m</code>では把持可能点検出アルゴリズムを実行するのではなく保存した把持点分布を読み込むようにすれば,歩行シミュレーションにかかる時間を節約することができる.<code>main_target_detection.m</code>は,フォルダ<code>/climblab/lib/target_detection</code>下に置かれている.</p>
<p>また,<code>main_iterative_target_detection.m</code>は,<code>main_target_detection.m</code>を繰り返し実行するように書かれた関数である.把持可能点検出では,地形情報をボクセル化し,一つの巨大な三次元配列に変換する.そのため,高低差が激しいマップや奥行の広い地形マップの場合,三次元配列の要素数がMATLABで扱えるサイズを超えてしまい,計算できなくなってしまう.この問題を避けるために,ロードした地形情報をxy方向に小さな「セクション」に切り分け,切り分けたセクションをz方向に「ステージ」としてさらに切り分ける.この切り分けた狭い範囲に対して把持可能点検出をおこなっていくことで,広大な地形マップに対しても地形内全体の把持可能点を一気に検出することができる.</p>
<p>最後の<code>main_grid_map_designer.m</code>は,格子状に把持点を配置したグリッドマップを作成する実行ファイルである.マップのサイズとグリッド幅を指定することで,グリッド状に把持点を配置してマップを生成する.さらに,指定した割合だけ把持点をランダムに間引いたり,指定したエリア内に存在する把持点を消去したりすることで,疎密さを有するようなマップやゴール到達のために迂回を要するようなマップなどを自由に設計することができる.<code>main_grid_map_designer.m</code>はフォルダ<code>/climblab/src/environment/grid_map</code>下に置かれた関数である.</p>
<p>以上が,main_sim.m以外に実行ファイルとしてClimbLabに存在しているMain関数である.</p>
<h1 id="spacedyn-as-a-c-library">SpaceDyn as a C++ library</h1>
<h2 id="how-to-use">How to Use</h2>
<p>To be added ...</p>
<h2 id="api-references">API References</h2>
<p>To be added ...</p>

</div>
</div><footer>
Expand Down
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -229,5 +229,5 @@ <h2 id="acknowledgement">Acknowledgement</h2>

<!--
MkDocs version : 1.6.0
Build Date UTC : 2024-07-19 02:26:04.453989+00:00
Build Date UTC : 2024-07-19 04:16:03.765471+00:00
-->
2 changes: 1 addition & 1 deletion search/search_index.json

Large diffs are not rendered by default.

0 comments on commit 1bf4fa6

Please sign in to comment.