servo_state_lcm2ros

Модуль получает данные о состоянии электроприводов робота (угол, скорость, момент) по LCM-каналу и передает их в ROS.

ROS API

ROS API состоит из config-файла, вызова сервисов, входящих и исходящих топиков.

Параметры

Файл параметров располагается в папке config

  • frequency (по умолчанию: 40) - частота работы модуля

  • ros_joint_state_topic (по умолчанию: "joint_states") - название ROS-топика для передачи состояния приводов

  • lcm_joint_state_topic (по умолчанию: "SERVO_STATE") - название LCM-канала, по которому передается состояние приводов

  • joint_order (по умолчанию: [3, 5, 4, 9, 11, 10, 0, 2, 1, 6, 8, 7]) - порядок нумерации приводов. Если в вашем ROS-пакете, управляющем роботом, порядок отличается от стандартного, то проще всего изменить его здесь, не изменяя ваш модуль управления.

  • joint_directions (по умолчанию: [ 1, -1, -1, 1, 1, 1, -1, -1, -1, -1, 1, 1]) - направления движения приводов. 1 - против часовой стрелки, -1 - по часовой стрелке. Порядок приводов является стандартным для робота. Если в вашем ROS-пакете, управляющем роботом, направления отличаются от стандартного, то проще всего изменить его здесь, не изменяя ваш модуль управления.

Исходящие топики

  • joint_states (sensor_msgs/JointState) - состояние всех электроприводов робота (угол, скорость момент)

LCM API

Формат LCM-сообщения:

struct servo_state_msg
{
    float timestamp; // временная метка

    float position[12]; // угловое положение [рад]
    float velocity[12]; // угловая скорость [рад/сек]
    float torque[12]; // момент [Н м]
}

Last updated