Стандарты ROS

Единицы измерений

Данные используемые в ROS, должны соответствовать единицам СИ -- стандарту наиболее широко используемому в мире.

Это указано в рекомендации REP-01031 http://www.ros.org/reps/rep-0103.html. Например, используются длина в метрах, масса в килограммах, время в секундах, ток в амперах, угол в радианах, частота в герцах, сила в ньютонах, мощность в ваттах, напряжение в вольтах и температура в градусах Цельсия.

Все остальные блоки состоят из комбинации вышеупомянутых блоков. Например, скорость перемещения измеряется в метрах / сек, а скорость вращения измеряется в радиан / сек.

Рекомендуется соблюдать соответствие единицам СИ, поскольку это позволит другим пользователям переиспользовать ваш пакет без необходимости дополнительной конвертации.

Координаты XYZ

Оси 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

results matching ""

    No results matching ""