AMSL ROS Style Guide
プログラムのスタイルを気にしない奴は,これまでろくに使えるソフトを作ってこなかったんだろう. By Bjarne Stroustrup (C++の開発者)
AMSLのメンバーが作成したプログラムの再利用性,可読性,移植性を高めるために,以下
のルールを制定しました.(2010/11/26)
- 基本的にはROS C++ Style GuideとPyStyle Guideを順守する.
- スタック名(ロボット名),パッケージ名(モジュール名)はすべて小文字.二つの単語が連なる場合はアンダスコアでつなぐ
スタック名:
Infant -> infant
M6 -> micro6
Roomba -> roomba
パッケージ名:
VO -> visual_odometry
- パッケージ名の先頭にはそのプログラムを使用するロボットの名前を入れ,アンダスコアでつなぐ
例)
M6のホイールオドメトリのプログラム: パッケージ名 micro6_wheel_odometry
InfantのVisual SLAMのプログラム: パッケージ名 infant_visual_slam
例)
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
メッセージファイル(*.msg or *.srv)は大文字始まり,大文字単語区切りです.
例)
Localization.msg
AnglesFromIMU.msg
なので,ヘッダのインクルードは例えば
#include "infant_msgs/Localization.h"
のようになります.
トピック名は必ず小文字にして下さい.
また,関連するものをグループ化できるので,グループ化したいものは/を使用してつないで下さい.
例えば
/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;
などなど.
最終更新:2012年02月10日 17:54