Стандарты ROS
Last updated
Last updated
Единицы измерений
Данные используемые в ROS, должны соответствовать единицам СИ - стандарту, наиболее широко используемому в мире.
Это указано в рекомендации REP-01031 http://www.ros.org/reps/rep-0103.html. Например, используются длина в метрах, масса в килограммах, время в секундах, ток в амперах, угол в радианах, частота в герцах, сила в ньютонах, мощность в ваттах, напряжение в вольтах и температура в градусах Цельсия.
Все остальные блоки состоят из комбинации вышеупомянутых блоков. Например, скорость перемещения измеряется в метрах / сек, а скорость вращения измеряется в радиан / сек.
Рекомендуется соблюдать соответствие единицам СИ, поскольку это позволит другим пользователям переиспользовать ваш пакет без необходимости дополнительной конвертации.
Оси x, y и z в ROS используют правило правой руки (правило буравчика), как показано на рисунке.
Направление вперед - это положительное направление оси X
, которое изображено красным. Направление налево представляет собой положительное направление оси Y
, которое изображено зеленым. Наконец, направление вверх - это положительное направление оси Z
, а ось обозначена синим. Цветовое кодирование легко запомнить по аббревиатуре RGB (стандарт представления цвета red-green-blue), которое соответсвует осям XYZ.
Чтобы запомнить направления, вы можете расположить большой, указательный и средний палец в форме трех осей как показано на рисунке.
Следуя правилу буравчика, направление, которое ваша правая рука закручивает - это положительное направление вращения. Например, если робот вращается с 12 до 9 часов, то используя радианы для обозначения угла поворота, мы получаем, что робот вращается на +1.5708 радиан по оси Z
.
ROS
рекомендует разработчикам следовать единому стандарту оформления кода (именования и форматирования). Единый формат кодирования уменьшает количество дополнительной работы, которую разработчики часто должны делать при работе с исходным кодом. В частности, это улучшает понимание кода для других участников и облегчает проверку кода.
Правила по соблюдению стандарта не является обязательными, но многие пользователи ROS соглашаются и придерживаются этих правил.
Перечислим принципы именования объектов
Пакет (Package)
under_scored
rst_ros_package
Topic, Service
under_scored
raw_image
File
under_scored
turtlebot3_fake.cpp
Variable
under_scored
string table_name;
Type
CamelCased
typedef int32_t PropertiesNumber;
Class
CamelCased
class UrlTable
Structure
CamelCased
struct UrlTableProperties
Function
camelCased
addTableEntry();
Method
camelCased
void setNumEntries(int32_t num_entries)
Constant
ALL_CAPITALS
const uint8_t DAYS_IN_A_WEEK = 7;
Macro
ALL_CAPITALS
#define PI_ROUNDED 3.0