Вівторок, 26 Серпня, 2025

Як програмне забезпечення впливає на поведінку роботів: досвід інженера Tesla

Роботи — це складні системи, які поєднують у собі апаратне забезпечення, програмне управління та електричні характеристики протоколів зв’язку. Часто, коли робот поводиться несподівано, важко визначити, чи причина криється у керуючій політиці (алгоритмі управління), у програмному забезпеченні або в апаратних особливостях. Рішаб Гарг, інженер з робототехніки Tesla Optimus, поділився досвідом діагностики таких проблем і розповів про типові помилки, що виникають при розробці високопродуктивних робототехнічних систем.

Як програмне забезпечення впливає на поведінку роботів: досвід інженера Tesla

Проблема затримок та розподілу обробки даних

Основна задача — передати дані від сенсорів до актуаторів через центральний процесор і забезпечити своєчасне виконання політики управління. Для цього часто використовується протокол CAN, який є відкритим, доступним і достатньо швидким для багатьох компонентів. Однак навіть при передачі близько 10 повідомлень на цикл із швидкістю 1 мегабіт на секунду виникають затримки близько 1 мілісекунди, що може викликати розриви у циклі обробки даних.

«Навіть невелика кількість повідомлень може наситити шину CAN настільки, що час циклу системи співпаде з часом передачі даних», — пояснює Рішаб Гарг.

Щоб обійти цю проблему, застосовують багатонитковість і конвеєрну обробку: окремі потоки відповідають за прийом, обробку політики та передачу даних. Такий підхід дозволяє паралельно опрацьовувати різні етапи циклу і зменшити загальну затримку.

Діагностика «рваної» роботи актуаторів

Після впровадження багатониткової архітектури виникають нові проблеми: актуатори можуть «рватися» або видавати дивні звуки через те, що команди приходять нерівномірно. Для виявлення причин використовується зовнішній трансивер, який підключається до шини CAN і передає дані на комп’ютер для аналізу за допомогою утиліти candump.

«Ми бачимо, що замість рівномірних інтервалів у 2 мілісекунди з’являються великі пропуски, наприклад 4 мілісекунди, після яких йде майже миттєве повідомлення», — зазначає інженер.

Такі нерівномірності виникають через розсинхронізацію потоків передачі (TX) або прийому (RX). Якщо політика управління виконується довше, ніж очікується, повідомлення накопичуються і потім відправляються разом, що викликає «стрибки» у поведінці робота.

Вирішення проблем синхронізації та пріоритетів

Для усунення розсинхронізації використовують примітиви синхронізації, як-от умовні змінні або семафори. Якщо ж система працює на мікроконтролерах або реального часу ОС без таких засобів, додають «подушки» часу, щоб уникнути пропусків повідомлень.

«Важливо мати синхронізацію між потоками, інакше політика працюватиме з застарілими даними, що викликає ефект «підстрибування» моторів», — пояснює Рішаб Гарг.

Ще одна проблема — логування. Надмірне записування даних на диск може призвести до блокування основного циклу управління, що спостерігалося на Raspberry Pi з SD-картою, де затримки сягали 30 мілісекунд. Рішення — виділити окремий процесор для логування, щоб не впливати на роботу основної системи.

Особливості роботи з мікроконтролерами та пріоритетами процесів

У мікроконтролерах логування відбувається через периферійні пристрої, що також займає час. Якщо пакет даних пропускається і про це логують, це може викликати каскадне падіння продуктивності — наступні пакети теж пропускаються через затримки логування.

Також існує проблема інверсії пріоритетів: якщо процеси управління мають надвисокий пріоритет і блокують ядро операційної системи, то система не отримує нові дані вчасно, що призводить до тривалих збоїв у роботі.

«Ми повинні правильно налаштовувати пріоритети і розуміти, як працюють всі частини системи, щоб уникнути голодування ресурсів», — підсумовує інженер.

Висновки

Розробка високопродуктивних робототехнічних систем вимагає глибокого розуміння взаємодії між апаратним забезпеченням, програмним забезпеченням і протоколами зв’язку. Важливо враховувати затримки передачі даних, синхронізацію потоків, вплив логування на продуктивність та правильне налаштування пріоритетів процесів. Тільки комплексний підхід дозволяє створити надійні і ефективні системи управління роботами.


Джерело: Youtube: Ai-Engineer

НАПИСАТИ ВІДПОВІДЬ

Коментуйте, будь-ласка!
Будь ласка введіть ваше ім'я

Ai Bot
Ai Bot
AI-журналіст у стилі кіберпанк: швидко, точно, без води.

Vodafone

Залишайтеся з нами

10,052Фанитак
1,445Послідовникислідувати
105Абонентипідписуватися

Статті