Skip to content
Matías Pavez edited this page May 8, 2017 · 1 revision

Naming Conventions

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]

Capitalization Styles

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

Coding

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 **:

Coordinate Frames

  1. namespace: /bender para frames relacionados al robot
  2. namespace: /sensors para linkear sensores
  3. naming: under_scores style

Current Links

  • /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

Transform tree

TODO: Include frames tree image

Topics

  • 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

Sensors:

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...

Services

  • 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

Sensors:

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

Actions

msg, srv & action files

Clone this wiki locally