diff --git a/404.html b/404.html old mode 100644 new mode 100755 diff --git a/6_development_policy/index.html b/6_development_policy/index.html old mode 100644 new mode 100755 index 4c30efa..b9abc22 --- a/6_development_policy/index.html +++ b/6_development_policy/index.html @@ -172,167 +172,104 @@
1. 新しい関数ファイルの冒頭にその関数の仕様につ

である.以下に記述例を示す.

-
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
%%%%%% Configuration
-%%%%%% config_save_settings
-%%%%%% 
-%%%%%% Configure default saving settings
-%%%%%% 
-%%%%%% Created 2020-07-08
-%%%%%% Warley Ribeiro
-%%%%%% Last update: 2021-03-31
-%%%%%% Keigo Haji
-%
-%
-% Load default configurations for saving
-%
-% Function variables:
-%
-%     OUTPUT
-%         save_settings: Data saving settings (struct)
-%     INPUT
-%         -
-
+
%%%%%% Configuration
+%%%%%% config_save_settings
+%%%%%% 
+%%%%%% Configure default saving settings
+%%%%%% 
+%%%%%% Created 2020-07-08
+%%%%%% Warley Ribeiro
+%%%%%% Last update: 2021-03-31
+%%%%%% Keigo Haji
+%
+%
+% Load default configurations for saving
+%
+% Function variables:
+%
+%     OUTPUT
+%         save_settings: Data saving settings (struct)
+%     INPUT
+%         -
+


2. むやみにmain_sim内に新たな関数の記述を増やさず,main_sim内で実行されている既存の関数内に組み込む形で新たな機能を実装する.

これは,ClimbLabがシミュレーションプラットフォームとして機能していくためにmain_simの一般性を担保するためである.また,同時にmain_simを複数人が編集するとGitのmergeの際にconflictが発生しやすくなるので,その問題を避けるという目的もある. 悪い例)main_sim内に直接実装

-
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
MAIN_FILE.m
-...
-disp(time);
-if gait_param.type = new_gait’
-new_gait(...)
-else
-path_planning_param = upd_path_planning(...);
-end
-[motion_planning_param, des_SV] = upd_motion_planning(...);
-...
-
+
MAIN_FILE.m
+...
+disp(time);
+if gait_param.type = ‘new_gait’
+new_gait(...)
+else
+path_planning_param = upd_path_planning(...);
+end
+[motion_planning_param, des_SV] = upd_motion_planning(...);
+...
+

良い例)main_simはそのままに,upd関数内で場合分けをおこなっている

-
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
-13
-14
-15
MAIN_FILE.m
-...
-disp(time);
-path_planning_param = upd_path_planning(...);
-[motion_planning_param, des_SV] = upd_motion_planning(...);
-...
-FUNCTION_FILE.m 
+
MAIN_FILE.m
+...
+disp(time);
+path_planning_param = upd_path_planning(...);
+[motion_planning_param, des_SV] = upd_motion_planning(...);
+...
+FUNCTION_FILE.m 
 
-function path_planning_param = upd_path_planning(...)
+function path_planning_param = upd_path_planning(...)
 
-switch gait_param.type
-case new_gait’
-new_gait(...);
-case old_gait’
-...
-
+switch gait_param.type +case ‘new_gait’ +new_gait(...); +case ‘old_gait’ +... +


3. 変数はなるべくclassに収容する

大量のローカル変数を関数内でなるべく扱わないようにする.これはMATLABワークスペース内での変数の把握が難しくなるためである.変数の"くくり"を考えて,既存のclassにあてはまる場合は既存のclass(gait_planning_param,motion_planning_param等)に収容し,ない場合は自分の機能にあった新たなclassを作成すること. 悪い例)local変数が多い.

-
1
-2
-3
-4
-5
-6
-7
-8
...
-leg1_des_pos = …
-leg2_des_pos = …
-leg3_des_pos = …
-leg4_des_pos = …
-base_des_pos = ...
-generate_trajectory(leg1_des_pos, leg2_des_pos, leg3_des_pos, leg4_des_pos, base_des_pos);
-...
-
+
...
+leg1_des_pos = …
+leg2_des_pos = …
+leg3_des_pos = …
+leg4_des_pos = …
+base_des_pos = ...
+generate_trajectory(leg1_des_pos, leg2_des_pos, leg3_des_pos, leg4_des_pos, base_des_pos);
+...
+

いい例)変数がclassに分類されている

-
1
-2
-3
-4
-5
...
-path_planning_param.leg_des_pos = …
-path_planning_param.base_des_pos = …
-generate_trajectory(path_planning_param);
-...
-
+
...
+path_planning_param.leg_des_pos = …
+path_planning_param.base_des_pos = …
+generate_trajectory(path_planning_param);
+...
+


4. 変数名をわかりやすくつける

変数名はどんなに長くなってもいいので,誰にでもわかるように付ける.変数名の付け方は関数と同じく,snake_caseで統一し,camelCaseは使わない.また,その変数がどういう値を収容し,その単位(次元)はなんなのかをコメントで明記する. 悪い例)人が読んでも何の略称かわからない

-
1
-2
-3
-4
-5
...
-L1 = …
-WP.T = …
-GPM = ...
-...
-
+
...
+L1 = …
+WP.T = …
+GPM = ...
+...
+

いい例)コメントや変数名から何の値がどういう単位次元で収容されているか分かる

-
1
-2
-3
-4
-5
-6
-7
-8
…
-% Desired position of a leg [m]
-motion_planning_param.des_leg_pos = …
-% Period for crawl gait [s]
-gait_parameter.T = …
-% Grippable points [m]
-surface_param.grippable_points = ...
-...
-
+
…
+% Desired position of a leg [m]
+motion_planning_param.des_leg_pos = …
+% Period for crawl gait [s]
+gait_parameter.T = …
+% Grippable points [m]
+surface_param.grippable_points = ...
+...
+


5. 新しい機能の実装後は,必ず繰り返しテストをおこなう
diff --git a/appendix/index.html b/appendix/index.html old mode 100644 new mode 100755 diff --git a/basics/index.html b/basics/index.html old mode 100644 new mode 100755 index 3ada6e4..58eed23 --- a/basics/index.html +++ b/basics/index.html @@ -120,26 +120,17 @@

Generalized Jacobian [2]

If you use Genralized Jacobian in an academic context, please put the following citation.

[2] Y. Umetani and K. Yoshida, Resolved motion rate control of space manipulators with generalized Jacobian matrix, IEEE Transactions on Robotics and Automation, vol. 5, no. 3, pp. 303--314, 1989.

-
 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
@ARTICLE{generalizedJacobian,
-  author={Umetani, Y. and Yoshida, K.},
-  journal={IEEE Transactions on Robotics and Automation}, 
-  title={Resolved motion rate control of space manipulators with generalized Jacobian matrix}, 
-  year={1989},
-  volume={5},
-  number={3},
-  pages={303--314},
-  doi={10.1109/70.34766}
-}
-
+
@ARTICLE{generalizedJacobian,
+  author={Umetani, Y. and Yoshida, K.},
+  journal={IEEE Transactions on Robotics and Automation}, 
+  title={Resolved motion rate control of space manipulators with generalized Jacobian matrix}, 
+  year={1989},
+  volume={5},
+  number={3},
+  pages={303--314},
+  doi={10.1109/70.34766}
+}
+

Basic Knowledge for SpaceDyn User

Project layout

-
1
-2
-3
-4
mkdocs.yml    # The configuration file.
+
mkdocs.yml    # The configuration file.
 docs/
     index.md  # The documentation homepage.
     ...       # Other markdown pages, images and other files.
-
+

Examples

Important Note

diff --git a/index.html b/index.html old mode 100644 new mode 100755 index 190a350..41a2010 --- a/index.html +++ b/index.html @@ -135,24 +135,16 @@

Reference

If you use this simulator in an academic context, please put the following citation.

[1] K.Yoshida, The SpaceDyn: a MATLAB toolbox for space and mobile robots, Proc. IEEE/RSJ IROS, pp. 1633--1638.

-
1
-2
-3
-4
-5
-6
-7
-8
-9
@inproceedings{spacedyn,
-  title={The SpaceDyn: a MATLAB toolbox for space and mobile robots},
-  author={Kazuya Yoshida},
-  booktitle={Proceedings 1999 IEEE/RSJ International Conference on Intelligent Robots and Systems},
-  volume={3},
-  pages={1633--1638},
-  year={1999},
-  doi={10.1109/IROS.1999.811712},
-}
-
+
@inproceedings{spacedyn,
+  title={The SpaceDyn: a MATLAB toolbox for space and mobile robots},
+  author={Kazuya Yoshida},
+  booktitle={Proceedings 1999 IEEE/RSJ International Conference on Intelligent Robots and Systems},
+  volume={3},
+  pages={1633--1638},
+  year={1999},
+  doi={10.1109/IROS.1999.811712},
+}
+

This paper is available in IEEE Xplorer.

Release Note

@@ -168,12 +160,12 @@

Release Note

FAQ

Please read this document for details, and FAQ Page.

For bug reports or any questions, please contact us via e-mail :

-
1
spacedyn_support(at)astro.mech.tohoku.ac.jp
-
+
spacedyn_support(at)astro.mech.tohoku.ac.jp
+

or

-
1
srl-orbital(at)grp.tohoku.ac.jp
-
+
srl-orbital(at)grp.tohoku.ac.jp
+

Acknowledgement