AMSL ROS Style Guide


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

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;
などなど.
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。