В этом примере показано, как настроить механизм симулятора Gazebo ®. Этот пример готовит вас к дальнейшим исследованиям с Gazebo, а также к исследованиям с моделируемым TurtleBot ®.
Gazebo - симулятор, позволяющий тестировать и экспериментировать реалистично с физическими сценариями. Gazebo является полезным инструментом в робототехнике, поскольку позволяет быстро создавать и запускать эксперименты с твердой физикой и хорошей графикой. MATLAB ® соединяется с Gazebo через интерфейс ROS.
Можно скачать изображение виртуальной машины, в котором уже установлены ROS и Gazebo. Эта виртуальная машина основана на Ubuntu ® Linux ® и предварительно сконфигурирована для поддержки примеров в ROS Toolbox™.
Загрузите и установите виртуальную машину ROS.
Запустите виртуальную машину.
На рабочем столе Ubuntu вы видите несколько скриптов запуска в мире Gazebo, а также другие ярлыки утилиты. Для примеров TurtleBot ® используйте значки Gazebo Empty, Gazebo House, Gazebo Office или Gazebo Sign Follower ROS.
Щелкните Gazebo House. Мир открывается.
Примечание: Если экран Gazebo выглядит полностью черным, обновите изображение, минимизируя его и затем максимизируя.
Откройте новый терминал в виртуальной машине Ubuntu.
Тип ifconfig
и вернитесь, чтобы просмотреть сетевую информацию для виртуальной машины.
Под eth0
, а inet addr
отображает IP-адрес виртуальной машины.
Для настройки сети необходимо задать два переменных окружения ROS: ROS_MASTER_URI и ROS_IP. Если вы используете демонстрации с рабочего стола виртуальной машины Linux ®, эти переменные обычно автоматически устанавливаются при запуске.
(Необязательно) Если вы используете свою собственную виртуальную машину, настройте переменные путем выполнения следующих команд в терминале. Замените IP_OF_VM
с IP-адресом, полученным через ifconfig
):
echo export ROS_MASTER_URI=http://IP_OF_VM:11311 >> ~/.bashrc echo export ROS_IP=IP_OF_VM >> ~/.bashrc
Проверяйте переменные окружения с помощью echo $ENV_VAR
(замена ENV_VAR соответствующего переменного окружения). Вы можете закрыть и снова открыть терминал, чтобы он вступил в эффект.
Следующая схема иллюстрирует правильные назначения переменных окружения (с поддельными IP-адресами)
Если Gazebo уже работает на распределении Linux, настройте симулятор так, как описано здесь:
На сайте ROS скачайте соответствующие пакеты для TurtleBot.
Следуйте инструкциям на веб-сайте ROS, чтобы запустить TurtleBot в моделируемом окружении Gazebo.
Убедитесь, что переменные окружения заданы соответствующим образом, и что вы можете пинать назад и вперед между вашим хостом-компьютером и компьютером Gazebo. Существует много способов настроить сеть. Пример «Подключение к сети ROS» содержит советы по проверке соединения между устройствами в сети ROS.
Чтобы использовать любые команды ROS в терминалах машин Linux, необходимо настроить окружение терминала, чтобы использовать правильную установку ROS. Перед выполнением каких-либо команд ROS введите в терминал соответствующий скрипт настройки окружения ROS. В ВМ команда: source
/opt/ros/melodic/setup.bash
Убедитесь, что у вас есть доступ к следующим разделам. В терминале на машине Linux введите rostopic list
чтобы просмотреть хотя бы эти доступные темы.
/clock /cmd_vel /imu /odom /scan /tf
Найдите IP-адрес своего хоста-компьютера в сети. На компьютере с Windows ® в командной строке введите ipconfig
. На компьютере с Mac или Linux откройте терминал и введите ifconfig
. Пример ipconfig
показан.
Примечание: Тип соединения может варьироваться в зависимости от того, как вы подключены к ноутбуку. В этом случае вы используете Ethernet, однако во многих случаях беспроводная связь (wlan) является подходящим соединением.
Пинг машины симулятора ping IP_OF_VM
. Успешное ping
показан первым, за которым следует неудачная ping
.
Дополнительные примеры Gazebo см. в разделе «Выбор и размещение рабочих процессов в Gazebo с использованием ROS» (Robotics System Toolbox)
Для примеров TurtleBot см.: Общайтесь с TurtleBot