servo_cmd_ros2lcm
Модуль получает из ROS команды для электроприводов робота (угол, скорость, момент) и передает их в LCM.
ROS API
ROS API состоит из config-файла, вызова сервисов, входящих и исходящих топиков.
Параметры
Файл параметров располагается в папке config
frequency (по умолчанию: 500) - частота работы модуля
ros_joint_cmd_topic (по умолчанию: "joint_group_position_controller/command") - название ROS-топика для передачи желаемых значений на приводы
lcm_joint_cmd_topic (по умолчанию: "SERVO_CMD") - название 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_group_position_controller/command (trajectory_msgs/JointTrajectoryPoint) - команды для электроприводов робота (угол, скорость, момент, 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]; // дифференциальный коэффициент
}
Last updated