「AMSL ROS Style Guide」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
**AMSL ROS Style Guide
>プログラムのスタイルを気にしない奴は,これまでろくに使えるソフトを作ってこなかったんだろう. By Bjarne Stroustrup (C++の開発者)
AMSLのメンバーが作成したプログラムの再利用性,可読性,移植性を高めるために,以下
のルールを制定しました.(2010/11/26)
-&bold(){基本的にはROS C++ Style GuideとPyStyle Guideを順守する.}
ROS C++ Style Guide: [[http://www.ros.org/wiki/CppStyleGuide>http://www.ros.org/wiki/CppStyleGuide]]
PyStyle Guide: [[http://www.ros.org/wiki/PyStyleGuide>http://www.ros.org/wiki/PyStyleGuide]]
-&bold(){スタック名(ロボット名),パッケージ名(モジュール名)はすべて小文字.二つの単語が連なる場合はアンダスコアでつなぐ}
スタック名:
Infant -> infant
M6 -> micro6
Roomba -> roomba
パッケージ名:
VO -> visual_odometry
-&bold(){パッケージ名の先頭にはそのプログラムを使用するロボットの名前を入れ,アンダスコアでつなぐ}
例)
M6のホイールオドメトリのプログラム: パッケージ名 micro6_wheel_odometry
InfantのVisual SLAMのプログラム: パッケージ名 infant_visual_slam
-&bold(){パッケージ名と実行ファイル名は基本的に同じ名前}
例)
M6のホイールオドメトリのプログラムの実行:
(C++) rosrun micro6_wheel_odometry micro6_wheel_odometry
(Python) rosrun micro6_wheel_odometry micro6_wheel_odometry.py
=例外=
センサーサーバの場合は,実行ファイル名をパッケージ名と製品名をアンダーステアでつなぐ
例)InfantのIMU(NAV420)のセンサーサーバの実行
rosrun infant_imu_drivers infant_imu_drivers_nav420
-&bold(){メッセージ名}
メッセージファイル(*.msg or *.srv)は大文字始まり,大文字単語区切りです.
例)
Localization.msg
AnglesFromIMU.msg
なので,ヘッダのインクルードは例えば
#include "infant_msgs/Localization.h"
のようになります.
-&bold(){トピック名}
トピック名は必ず小文字にして下さい.
また,関連するものをグループ化できるので,グループ化したいものは/を使用してつないで下さい.
例えば
/laser/top/scan
/laser/top/pointcloud
のようになります.
**プログラム内での命名規則
***変数名
変数名は基本的に小文字で表現し,単語をアンダースコア「_」で繋ぎます.つまり
int count;
float anser_value;
MyClass my_class; // クラスのインスタンス
などです.
また,単語はなるべく省略せず,スペルアウトすることが望ましいです.
変数名を読むだけで,何の値が入っているかが分かるようにするのがベストで,多少長くても構いません.
理解が優先です.
また,これは私はあまり使っていませんが,
ポインタは「p」,参照は「r」,グローバル変数は「g」
をつけたりする習慣もあるようです.
***関数名
関数名は小文字から始め,単語の区切りに大文字を用いて,アンダースコアは使いません.
ます.
void function(int init_x);
int clearValue();
void getAngleFromSensor();
とかです.
引数は変数なので,変数名の規則に従ってください.
***型,構造体,クラス
構造体やクラス名などは,基本大文字から始めます.
また関数命名規則と同じく,単語の頭は大文字とします.
class PrintString;
struct DataPoint;
などなど.
**AMSL ROS Style Guide
>プログラムのスタイルを気にしない奴は,これまでろくに使えるソフトを作ってこなかったんだろう. By Bjarne Stroustrup (C++の開発者)
AMSLのメンバーが作成したプログラムの再利用性,可読性,移植性を高めるために,以下
のルールを制定しました.(2010/11/26)
-&bold(){基本的にはROS C++ Style GuideとPyStyle Guideを順守する.}
ROS C++ Style Guide: [[http://www.ros.org/wiki/CppStyleGuide>http://www.ros.org/wiki/CppStyleGuide]]
PyStyle Guide: [[http://www.ros.org/wiki/PyStyleGuide>http://www.ros.org/wiki/PyStyleGuide]]
-&bold(){スタック名(ロボット名),パッケージ名(モジュール名)はすべて小文字.二つの単語が連なる場合はアンダスコアでつなぐ}
スタック名:
Infant -> infant
M6 -> micro6
Roomba -> roomba
パッケージ名:
VO -> visual_odometry
-&bold(){パッケージ名の先頭にはそのプログラムを使用するロボットの名前を入れ,アンダスコアでつなぐ}
例)
M6のホイールオドメトリのプログラム: パッケージ名 micro6_wheel_odometry
InfantのVisual SLAMのプログラム: パッケージ名 infant_visual_slam
-&bold(){パッケージ名と実行ファイル名は基本的に同じ名前}
例)
M6のホイールオドメトリのプログラムの実行:
(C++) rosrun micro6_wheel_odometry micro6_wheel_odometry
(Python) rosrun micro6_wheel_odometry micro6_wheel_odometry.py
=例外=
センサーサーバの場合は,実行ファイル名をパッケージ名と製品名をアンダーステアでつなぐ
例)InfantのIMU(NAV420)のセンサーサーバの実行
rosrun infant_imu_drivers infant_imu_drivers_nav420
-&bold(){メッセージ名}
メッセージファイル(*.msg or *.srv)は大文字始まり,大文字単語区切りです.
例)
Localization.msg
AnglesFromIMU.msg
なので,ヘッダのインクルードは例えば
#include "infant_msgs/Localization.h"
のようになります.
-&bold(){トピック名}
トピック名は必ず小文字にして下さい.
また,関連するものをグループ化できるので,グループ化したいものは/を使用してつないで下さい.
例えば
/laser/top/scan
/laser/top/pointcloud
のようになります.
**プログラム内での命名規則
***変数名
変数名は基本的に小文字で表現し,単語をアンダースコア「_」で繋ぎます.つまり
int count;
float anser_value;
MyClass my_class; // クラスのインスタンス
などです.
また,単語はなるべく省略せず,スペルアウトすることが望ましいです.
変数名を読むだけで,何の値が入っているかが分かるようにするのがベストで,多少長くても構いません.
理解が優先です.
また,これは私はあまり使っていませんが,
ポインタは「p」,参照は「r」,グローバル変数は「g」
をつけたりする習慣もあるようです.
***関数名
関数名は小文字から始め,単語の区切りに大文字を用いて,アンダースコアは使いません.
ます.
void function(int init_x);
int clearValue();
void getAngleFromSensor();
とかです.
引数は変数なので,変数名の規則に従ってください.
***型,構造体,クラス
構造体やクラス名などは,基本大文字から始めます.
また関数命名規則と同じく,単語の頭は大文字とします.
class PrintString;
struct DataPoint;
などなど.