Симулятор "Мир роботов" (IoTRobotWorld), пример управления по UDP и визуализации данных лидара
Timur.Idiatullov — пт, 01/09/2023 - 20:20
Текущая версия симулятора "Мир роботов" поддерживает управление по UDP, симулирует работу плоскостного лидара и передачу данных в виде текстовых пакетов.
Симулятор обменивается с удаленным приложением, выступая в качестве клиента. Запросы отправляются и принимаются в виде JSON-строки с фиксированным набором параметров. Обмен идет по UDP.
Достаточно открыть слушающий сокет (порт remote) в своём приложении для получения данных с виртуального робота, а команды отправлять на слушающий сокет (порт local) в симуляторе.
Для корректной обработки строки команд в неё конце нужно добавлять символ Lf (т.е. "\n" ).
Симулятор IoTRobotWorld:
IoTRobotWorldRC3 (320 kb)
Пример системы управления, отправляющей команды по UDP на симулятор:
Пример UDP сервера (на языке C# + WinForms):
IoTRobotWorld2UDPServer_Bin (исполняемый), IoTRobotWorld2UDPServer_Src (исходный код)
Комментарии к запуску симулятора
Не забудьте загрузить параметры виртуальных вещей перед подключением. За это отвечает кнопка "Load parameters" на вкладке ThingWorxConnection. Без данных параметров обмен данными с сервером будет невозможен.
Затем можно переключиться на вкладку UDPServerConnection и настраивать подключение по UDP.
За управление роботом отвечают параметры F (скорость) и B (баланс, степень поворота руля). Параметр M не задействован.
Не забывайте увеличивать номер каждой новой отправленной команды (параметр N), иначе они будут игнорироваться сервером.
- Войдите на сайт для отправки комментариев