ROS
Я не знаю NodeJS, но я использую ROS в течение нескольких лет, так что я могу дать вам некоторую информацию о нем.
ROS является модульным и имеет приятную систему издателя/подписчика для обмена сообщениями между отдельными модулями (называемыми узлами в ROS-жаргоне) с использованием функций обратного вызова.
Обычно у вас есть отдельный узел для каждой задачи и для каждого датчика. «Задающий узел», который нуждается в некоторых данных, подписывается на конкретную тему и регистрирует функцию обратного вызова. «Сенсорный узел» извлекает данные с датчика, обертывает данные в сообщении и публикует это сообщение в теме. Функции обратного вызова всех узлов, которые подписались на эту тему, автоматически вызывается каждый раз, когда публикуется новое сообщение. Таким образом, можно легко обмениваться данными между отдельными узлами, и вы можете легко обменивать части своей программы, например. если вы хотите использовать другой датчик или если задача изменилась.
Также очень легко подписаться на узлы, которые работают на другом компьютере в сети, поэтому вы можете без проблем получать данные с вашего ноутбука на беспилотный компьютер (при условии, что они подключены к одной сети).
ROS поддерживает как C++, так и Python. Существуют также привязки для Java, JavaScript и LISP, но я не знаю, насколько они полны и стабильны (они никогда не использовались).
В дополнение к базовой структуре ROS поставляется с множеством полезных модулей и хорошим инструментом визуализации и имеет комплексный beginner tutorial.
ROS кажется действительно хорошим вариантом, но мне интересно, сколько времени мне нужно для изучения основ, и того, что мне нужно для завершения этого проекта. Вы знаете, проблема в том, что я должен завершить этот проект и сообщить об этом второй неделе мая, и у меня есть работа на неполный рабочий день. Кроме того, мне нужно разработать приложение для Android, чтобы нарисовать траекторию, к которой приведет гудок, так что теперь все это вопрос времени. – lmiguelvargasf
@lmiguelvargasf: hm, мне кажется, что нужно некоторое время, чтобы ознакомиться со структурой ROS (вам нужно настроить рабочее пространство, создать и построить новый пакет для ваших вещей и т. Д.). Он использует CMake для своей системы сборки, поэтому, вероятно, это проще, если вы уже знакомы с CMake. – luator
Возможно, вы можете попробовать начать с учебников и посмотреть, если вы достигнете прогресса достаточно быстро. Я бы сказал, что первые 13 разделов учебника должны быть достаточными (и вы, вероятно, можете пропустить некоторые, чтобы быстрее добраться). – luator