> For the complete documentation index, see [llms.txt](https://voltbro.gitbook.io/robot-sobaka-mors/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://voltbro.gitbook.io/robot-sobaka-mors/ustroistvo-robota/ros-pakety/mors_base/servo_cmd_ros2lcm.md).

# servo\_cmd\_ros2lcm

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

## ROS API

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

### Параметры

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

* frequency (по умолчанию: 500) - частота работы модуля
* ros\_joint\_cmd\_topic (по умолчанию: "joint\_group\_position\_controller/command") - название ROS-топика для передачи желаемых значений на приводы&#x20;
* lcm\_joint\_cmd\_topic (по умолчанию: "SERVO\_CMD") - название LCM-канала, по которому передаются команды на приводы
* joint\_order (по умолчанию: \[3, 5, 4, 9, 11, 10, 0, 2, 1, 6, 8, 7]) - порядок нумерации приводов. Если в вашем ROS-пакете, управляющем роботом, порядок отличается от [стандартного](/robot-sobaka-mors/oboznacheniya.md), то проще всего изменить его здесь, не изменяя ваш модуль управления.
* joint\_directions (по умолчанию: \[ 1, -1, -1, 1, 1, 1, -1, -1, -1, -1, 1, 1]) - направления движения приводов. 1 - против часовой стрелки, -1 - по часовой стрелке. Порядок приводов является [стандартным](/robot-sobaka-mors/oboznacheniya.md) для робота. Если в вашем ROS-пакете, управляющем роботом, направления от стандартного принятого в роботе, то проще всего изменить его здесь, не изменяя ваш модуль управления.&#x20;

### Входящие топики

* joint\_group\_position\_controller/command ([trajectory\_msgs/JointTrajectoryPoint](https://voltbro.gitbook.io/upravlenie-elektrodvigatelem)) - команды для электроприводов робота (угол, скорость, момент, Kp, Kd)

## LCM API

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

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

    float position[12]; // угловое положение [рад]
    float velocity[12]; // угловая скорость [рад/сек]
    float torque[12]; // момент [Н м]
    float kp[12]; // пропорциональный коэффициент
    float kd[12]; // дифференциальный коэффициент
}
```
