Но Erlang может не быть лучшим подходом к любому приложению робота вообще.Но вы можете пойти на менее амбициозный тезис о том, что Эрланг поддерживает вычислительную модель, которая важна во многих робототехнических приложениях .Точки использования Erlang для робототехники включают
- параллелизм для моделирования и мониторинга параллельного мира;
- распределение датчиков, исполнительных механизмов и вычислительных ресурсов;
- конечные автоматы для связывания поведения;и
- супервизоры для отказоустойчивости.
Все может быть сделано на любом языке, но Erlang делает некоторые вещи удобными, особенно на архитектурном уровне.
Глава 14 в Параллельное программирование на Erlang , например, моделирует систему управления лифтом по одному процессу для каждого лифта и по одному для каждого этажа, а затем обсуждает структуру процесса для системы управления спутником.Лифты или спутники, возможно, не очень похожи на роботов, но их принципы одинаковы.
Работа Erlang & Robotics Corrado Santoro et al.много использует параллелизм.Их 2007 проект мобильного робота имеет множество различных (одновременных) режимов OTP, которые варьируются от низкого уровня ввода-вывода до высокого уровня планирования. Обучение Erlang с использованием робототехники и игрока / сцены * Еще одна недавняя работа - 1038 *.
Ваши идеи о роботе-футболе или роботе-уборщике хороши и имеют много возможностей для параллелизма и взаимодействия между роботами.Но вы не просто делаете произвольное приложение робота такого размера.Либо у вас есть команда и несколько конкретных роботов для работы, либо вы приобретаете себе симулятор (приобретайте симулятор в любом случае).
Попробуйте смоделировать количество роботов, которые движутся навстречу друг другу, пока все они не столкнутся, каждый робот запускает собственный процесс.Когда это сработает, замените задачу и добавьте процессы, которые (претендуют на) управляют двигателями, ощущают стены, видят окружающую среду, понимают команды пользователя, выходят из строя и т. Д., А также обмениваются сообщениями с другими роботами и процессами планирования.
Ознакомьтесь с архитектурами роботизированных систем , чтобы понять, что такие конструкции распространены и почему.Эрланг облегчил этот тип программирования?