-
Notifications
You must be signed in to change notification settings - Fork 2
naming
La idea es establecer convenciones para el nombramiento de los diversos componentes utilizados en el robot, para así simplificar el desarrollo.
Es de vital importancia ser consistente y seguir estas convenciones, pues así se evitan futuros dolores de cabeza.
[TOC]
Antes de pasar a lo importante, se presentan algunos estilos de capitalización para tener de referencia.
style name | examples |
---|---|
ALL_CAPS | MY_STATE |
PascalCase | MyClass |
camelCase | myVariable |
under_scores | my_package |
A continuación se presenta una tabla con los estilos recomendados a la hora de programar.
component | associated style | example :- - - - - - - - - - - - -|:- - - - - - - - - - -:|: - - - - - - - - - : Class File | PascalCase | MacroPerson.cpp Class | PascalCase | MacroPerson Namespace | under_scores | bender_macros Variable | under_scores | brief_description Method | camelCase | getPose() Constants | TODO | TODO ros node | under_scores | person_tracker ros .srv .msg .action | PascalCase | PoseStamped.msg TODO | TODO | TODO
** Examples **:
- namespace:
/bender
para frames relacionados al robot - namespace:
/sensors
para linkear sensores - naming: under_scores style
-
/map
: world -
/bender/
-
odom
: odometry link -
base_link
: pioneer3at link -
torso_link
: fixed to/bender/base_link
-
neck_link
: can rotate. Joined to/bender/torso_link
-
head_link
: fixed to/bender/neck_link
-
sensors/
-
laser_front_link
: fixed to/bender/base_link
-
laser_rear_link
: fixed to/bender/base_link
-
laser_virtual_link
: fixed to/bender/base_link
-
camera_right_eye_link
: fixed to/bender/head_link
-
camera_forehead_link
: fixed to/bender/head_link
-
kinect_waist_link
: fixed to/bender/torso_link
-
kinect_head_link
: fixed to/bender/head_link
-
-
TODO: Include frames tree image
-
namespace:
/bender
para topicos relacionados al robot -
naming: under_scores style
-
Por lo general, para tópicos en donde sólo publiquen nodos de un mismo package, se tiene la convención:
-
/bender
+/
+package
+/
+node
+/
+data_name
-
Ejemplos:
- /bender/speech/recognizer/output
- /bender/vision/door_detector/isopen
Similarmente al also de las tf's, para los sensores de Bender se utiliza el namespace : /bender/sensors
, y dado que cada sensor puede proporcionar más de un tópico, c/u tendrá la siguiente nomenclatura:
sensor_ns
+/
+sensor_name
+/
+data_ns
+/
+data_name
Por ejemplo, en el caso de un laser se tendrá: /bender/sensors/laser_front/scan
Y para un kinect:
-
/bender/sensors/
-
kinect_head/
-
rgb/
camera_info
image_color
etc...
-
depth/
camera_info
points
etc...
-
depth_registered/
camera_info
points
etc...
etc...
-
-
- namespace:
/bender
para servicios relacionados al robot - naming: under_scores style
Análogamente al caso de los tópicos, cada servicio deberá ser nombrado con la regla:
* /bender
+ /
+ package
+ /
+ node
+ /
+ service_name
Ejemplos:
- /bender/vision/face_detector/detect_face
- /bender/nav/goal_server/look
Los sensores usarán la siguiente convención:
/bender/sensors
+/sensor_name
+/data_ns
+/
+data_name
Ejemplos:
- /bender/sensors/camera_forehead/get_image
- /bender/sensors/camera_right_eye/get_image