Я считаю, что каждый, кто занимается алгоритмами роботов, знаком с ROS и Gazebo. Можно сказать, что это два наших основных инструмента. ROS означает Robot Operating System. Он предоставляет нам программную операционную платформу. Собственный алгоритм робота. Gazebo — это мощная платформа для 3D-моделирования физики с мощным физическим движком, высококачественным графическим рендерингом, удобным программированием и графическим интерфейсом, а самое главное — с открытым исходным кодом и бесплатными функциями.
Итак, давайте посмотрим, как беседка и роза работают вместе? У Gazebo и ros совершенно разные функции, да и внутренний механизм сообщений и драйвер тоже далеки друг от друга, так как же они общаются?
Это официальная схема кадраКак видно из рисунка, при передаче сообщения ros оно отдается не в беседку, а контроллеру в Controller Manager.После того, как контроллер в контроллере вычислит соответствующее значение, данные перетекают в интерфейс, этот интерфейс затем передается в модуль Gazebo; когда Gazebo завершает вычисление данных, данные также передаются в интерфейс с именем JointState, а затем передаются в контроллер, который затем публикует сообщение.
Этот модуль является главным героем пакета функций ros_control, который мы собираемся представить сегодня.Он переписывает исходный пакет pr2_mechanism ros так, чтобы он мог управлять всеми роботами, а не только PR2. На следующем рисунке показан рабочий процесс ros_control, вы можете видеть, что в качестве входных данных он принимает данные о состоянии соединения привода робота и желаемое состояние. Он использует обычный механизм обратной связи контура управления (обычно ПИД-регулятор) для управления выходным сигналом (обычно крутящим моментом).
Архитектура ros_control
-
Контроллер Контроллер: прочитайте состояние в интерфейсе аппаратных ресурсов и выдайте команды управления. Не прикасайтесь к оборудованию напрямую, запрашивайте ресурсы на уровне аппаратной абстракции;
-
Диспетчер контроллеров Диспетчер контроллеров: общий интерфейс для управления различными контроллерами;
-
Аппаратная абстракция робота RobotHW: непосредственное взаимодействие с аппаратными ресурсами и выполнение аппаратных операций с помощью методов записи и чтения. Управление аппаратными ресурсами и устранение аппаратных конфликтов;
-
Аппаратная абстракция робота RobotHW: непосредственное взаимодействие с аппаратными ресурсами и выполнение аппаратных операций с помощью методов записи и чтения. Управление аппаратными ресурсами и устранение аппаратных конфликтов;
Ниже мы в основном узнаем о контроллере Controller и диспетчере контроллеров Controller Manager.
Контроллер КонтроллерТипы контроллеров, предоставляемых ros_control, следующие:Диспетчер контроллеров Диспетчер контроллеров Он используется для управления несколькими контроллерами и реализации таких операций, как загрузка, запуск и остановка контроллеров.
1. Работа с командной строкой
- rosrun controller_manager controller_manager <controller_name>
включают:
load unload start stop spawn: load & start kill: stop & unload
- Посмотреть состояние контроллера
rosrun controller_manager controller_manager включают: список типы списков reload-библиотеки перезагрузить библиотеки — восстановить
2. запустить
3. Инструменты визуализации rosrun rqt_controller_manager rqt_controller_manager
Выше приведен механизм связи между беседкой и розой, надеюсь, редактор поможет вам яснее понять беседку и розу. Если вы хотите узнать больше об определенном разделе, вы можете проверить официальный сайт Рос:wiki.ros.org/ros_control
- End -
Благодаря быстрому развитию технологий Amu Lab будет идти в ногу с темпами развития технологий и продолжать рекомендовать всем новейшие технологии и оборудование в индустрии робототехники. Наблюдение за тем, как студенты, прошедшие обучение у нас, делают рывки в технологиях, является величайшей ценностью нашего обучения. Если вы работаете в индустрии роботов, обратите внимание на нашу публичную учетную запись, мы продолжим публиковать самую ценную информацию и технологии в индустрии роботов. Amu Lab стремится к обучению и интеллектуальному оборудованию передовых ИТ-технологий, делая исследования и разработки роботов более эффективными!