AI & Robotics Lab
18 subscribers
71 photos
26 videos
9 files
100 links
Explore AI code generation, robotics, and ROS with original projects and hands-on guides. Follow along as I share my experience, code samples, and tips for building intelligent systems.
Download Telegram
🌐 Codestral ROS2 Gen: Network Scanner Extension Now Available!

⚡️Here it is - the second release of Codestral ROS2 Gen with a powerful new feature: the NetworkScanner!

🔍 What's New in This Release
The NetworkScanner module with efficient network discovery capabilities:
• Fast ICMP-based scanning for host discovery
• Asynchronous packet handling for optimized performance
• Configurable scan parameters (timeout, interval, etc.)
• Seamless integration with the existing ROS2 generation pipeline

🛠 How It Works
The NetworkScanner uses optimized ICMP echo requests (pings) to detect active hosts on a network. It employs an innovative approach with:
• Synchronous packet sending for precise timing control
• Asynchronous response collection for efficient handling
• Smart timeout management for reliable results
• Clean ROS2 message publishing for network status information

🧪 Key Components
• network_scanner.py: Core scanning orchestration
• network_host.py: Host state management
• scan_operation.py: Context-managed scanning operations
• network_parser.py: Network targets parsing

Full codebase documentation is available on projects's GitHub pages 📙

🚀 Try It Yourself
The detailed example documentation shows how to generate your own network scanner nodes. You can even use the standalone nscan command-line tool for quick testing!

This extension builds upon core generation system, demonstrating how the Codestral generator can create complex, functional ROS2 components with system-level interactions. 🤖

#ROS2 #AI #NetworkScanning #Robotics #CodeGenerating #Codestral
1🤯1
👨‍🔬Testing Results: ROS2 Network Scanner Generation

I want to share the results from my test of ROS2 Network Scanner generation example.

After running 30 iterations of generating the ROS2 Network Scanner:
• Total test duration: ~6 hours 15 minutes
• Average successful generation time: ~2 minutes per attempt
• Distribution of attempts: Right-skewed (median: 4, mean: 6.7)

This means that, on average, the generator produces working code in about 13 minutes - quite reasonable performance for automated code generation in my opinion!

Failure Analysis
Looking at where generation stopped, the distribution clearly demonstrates the generator's stability:
• Over 80% stopped at the testing stage
• ~15% were successful attempts
• Only about 5% failed during the PARSING or GENERATION stages

Test Coverage Patterns
Examining the test pass rates revealed two distinct patterns:
• Basic functionality (7 tests): Node startup with valid/invalid parameters and handling overlapping scans using nscan utility
• Advanced scenarios (9 tests): Including handling invalid JSON format in the node <-> nscan interface and managing outdated scan results

This suggests that generating code with specific behavior for edge cases remains challenging.

I've included all metrics and analysis notebooks in my project repository, so feel free to explore the data yourself!

#ROS2 #AI #NetworkScanning #Robotics #CodeGenerating #Codestral #testing
🔥2
🌱 Can You Simulate Organic Life with ROS Nodes? Absolutely!

I've been exploring the idea of using ROS2 nodes not just for robots, but as building blocks for simulating organic life—and the results are super promising!

Why is this approach interesting?
• Each ROS node acts like a "cell" or "organ," handling one function (movement, sensing, decision-making, etc.).
• The distributed, modular nature of ROS is perfect for mimicking how biological systems work together in real life.
• Nodes communicate via topics and services—very much like cells communicate through signals in nature.
• With ROS’s flexibility, you can easily scale up complexity, experiment with emergent behavior, and create fantastically detailed digital creatures.

What’s possible?
• Model complex, bio-inspired behaviors (think neural signals, homeostasis, swarming).
• Use ROS tools like Gazebo for 3D, physics-based environments.
• Mix and match algorithms in Python or C++ for rich, dynamic "organisms."
• Great for experimenting with concepts from biology, robotics, or artificial life.

Challenges?
Real-world biology is still way more complicated, but ROS nodes give us an amazing, practical starting point. Visualization and detailed modeling might need extra tools, but the pathway is wide open for creativity.

Bottom line: Using ROS nodes to simulate organic forms is not just possible—it’s a powerful, scalable way to blend robotics, biology, and AI. Can't wait to see where this leads!

🔧 Interested in the project or have questions? Join the discussion and let's build some digital life together!

#ROS2 #AI #BioInspired #OrganicSimulation #Robotics
2
👊 Bender: I'm gonna be the greatest Ultimate Robot Fighter ever!

Пару дней назад в Китае прошел турнир по кикбоксингу среди роботов Unitree G1.

Каждый бой состоял из двух частей: демонстрация навыков, за которой следовали три двухминутных раунда боя. Роботы могли набирать очки, нанося удары руками и ногами в голову или корпус, если удалось повалить противника и он не смог подняться в течение восьми секунд, раунд заканчивался.

Ждем появления лиги Ultimate Robot Fighting и мирового чемпионата по боям роботов 🍿

#новости #robotics
2🆒1👾1
🤖 Просто робот, просто час разбирает посылки

Компания Figure выложила необычное видео, в котором их гуманоидный робот Figure 02 в течение часа разбирает посылки на конвейере. Наконец, появилась возможность проверить достоверность тезиса о том, что можно бесконечно смотреть на три вещи: как течет вода, как горит огонь и как кто-то работает. Я не смог – сдался после третьей минуты. Если наблюдать за роботом не так интересно, то вот почитать статью Scaling Helix: a New State of the Art in Humanoid Logistics, которая описывает этот кейс – очень даже.

Ключевые моменты статьи
Производительность и гибкость. Робот научился работать с разными типами упаковки (деформируемые пакеты, конверты), а его скорость и ловкость приблизились к человеческим.
Улучшение эффективности. Среднее время обработки одной посылки сократилось до 4,05 секунды, а точность сканирования штрихкодов увеличилась до 95%.
✧ Инновации. Родилось несколько новых подходов: «память зрения» помогает лучше планировать действия, а обратная связь по усилию улучшает точность.
Масштабирование данных. Увеличение времени тренировок с 10 до 60 часов привело к значительному росту скорости и точности.

Круто, конечно, выглядит, как этот робот работает, – но меня не покидал вопрос: а зачем ему ноги? Вот если бы их заменить на еще одни руки – дело бы точно веселее пошло! 🤷‍♂️

#news #Robotics
😁2🆒1👾1
🤖 Gazebo - фреймворк для симуляции роботов

Начинаю серию постов о Gazebo - мощном, и при этом открытом, модульном фреймворке, предлагающем широкий инструментарий для симуляции робототехнических систем. С его помощью планирую продолжить эксперименты с симуляцией биоповедения, но уже с более сложными и интересными сценариями.

Работу с Gazebo условно можно разделить на три больших блока:
Создание описания мира
На этом этапе формируется SDF-файл (Simulation Description Format), который задаёт виртуальную сцену: модели роботов, параметры окружающей среды, сенсоры, источники света, объекты взаимодействия и прочие элементы. По своей сути SDF - это обычный XML-файл с иерархической структурой, что позволяет достаточно легко описать и затем проследить взаимосвязи составных частей сцены и их элементов.

Запуск Gazebo Sim для конфигурации виртуального мира
При запуске приложения Gazebo Sim происходит чтение SDF-файла, на основе которого автоматически выстраивается виртуальная среда. Фреймворк динамически подгружает необходимые серверные и клиентские плагины для физических процессов, визуализации, сенсоров и других функций. Все блоки и функции реализованы в виде модулей, поэтому возможно точечно добавлять или отключать нужные компоненты, не перекомпилируя приложение.

Запуск симуляции и сбор данных
После конфигурации начинается симуляция — виртуальный мир "оживает", роботы получают возможность взаимодействовать с окружением и между собой. При этом доступна богатая система для сбора и анализа данных: состояние объектов, измерения сенсоров, логи, экспорт результатов для последующей обработки. Всё это позволяет анализировать поведение сложных систем в реалистичных сценариях, а также оперативно вносить изменения в параметры эксперимента или конфигурацию среды.

#knowledge #gazebo #Robotics
1
🏗 Архитектура Gazebo Sim

В целом, она описана здесь, но т.к. я сам только разбираюсь во всем этом, то решил сделать небольшое резюме.

#knowledge #gazebo #Robotics
🆒1
1. Общая структура
Gazebo Sim состоит из двух основных процессов: серверного (backend) и клиентского (frontend), которые запускаются при старте симуляции. Сервер отвечает за физику, обработку команд и другие вычисления, а клиент за отображение и взаимодействие с пользователем через GUI.

2. Архитектура на основе плагинов
Вся функциональность симулятора реализована в виде плагинов, которые могут подключаться и отключаться во время выполнения. Есть плагины сервера (например, для физики или сенсоров), а есть плагины GUI (например, для визуализации и управления). Пользователь может добавлять, удалять или разрабатывать свои плагины.

3. Серверный процесс
На сервере используется архитектура entity-component-system (ECS), где entity - это любой объект сцены, а component - его характеристики (позиция, геометрия и т.д.). Серверные плагины взаимодействуют с этими сущностями: например, система физики реагирует на заданные силы. Работа построена вокруг основного симуляционного цикла с последовательными шагами обновления состояния объектов.

4. Клиентский процесс
Клиентская часть (GUI) также состоит из плагинов для отображения 3D-сцены, окон управления и других интерактивных элементов. Эти плагины получают сжатые данные о состоянии сцены от сервера и реагируют на них, не изменяя непосредственно состояние симуляции. Общение между плагинами GUI организовано через события (events).

5. Взаимодействие сервера и клиента
Клиент и сервер обмениваются информацией через систему сообщений Gazebo Transport и Messages. Сервер с помощью специального плагина Scene Broadcaster периодически отправляет клиенту сжатое состояние сцены, которое визуализируется, а клиент может посылать команды (например, на создание или удаление объектов) обратно через свой интерфейс.

6. Модульность
Все компоненты (базовые библиотеки, плагины, GUI) модульны и могут использоваться и обновляться независимо друг от друга. Это упрощает расширение и настройку симулятора под любые задачи — от интеграции новых физических движков до экспериментов с пользовательским интерфейсом.

7. Внешние процессы
Отдельные серверные и клиентские плагины способны взаимодействовать с внешними процессами — например, ROS (Robot Operating System) или другими сторонними сервисами и приложениями. Некоторые плагины (например, для сенсоров или управления движением) отправляют и получают сообщения не только между сервером и клиентом Gazebo, но и напрямую во внешние среды. Благодаря такой возможности, Gazebo интегрируется в распределённые системы управления, поддерживает обмен данными с ROS-узлами, а также расширяет сценарии взаимодействия за пределы собственной симуляционной среды.

В итоге, фреймворк позволяет описать множество сценариев симуляции: от настройки мира с произвольными моделями, сенсорами и физическими условиями до динамического подключения новых физических движков, визуализации, систем сбора данных и обмена сообщениями с внешними процессами, включая ROS. Все компоненты могут настраиваться и расширяться с помощью плагинов. Пользователь не ограничен некоей стандартной функциональностью, а может создавать свои уникальные сценарии, масштабируя и изменяя симуляцию под любые задачи.

#knowledge #gazebo #Robotics
👾1