Настройка коммуникации между устройствами

Настройка коммуникации между устройствами

Стартовые параметры окружения терминала и ROS

В стандартном режиме Робоголова запускается как самостоятельное устройство, все ROS-сущности запускаются на локальном компьютере устройства (на Raspberry Pi). В этот момент с Робоголовой уже можно работать.

Если вам необходимо настроить взаимодействие с образовательным роботом TurtleBro, то проделайте следующие шаги:

1. Подключите оба устройства к одной Wi-Fi сети

Чтобы настроить взаимодействие между устройствами, они должны находиться в одной сети, как и компьютер, с которого будет производиться работа.

2. Узнайте IP-адреса устройств

Вы можете воспользоваться разделом Определение IP-адреса Робоголовы или инструкцией к роботу TurtleBro: Как определить IP-адрес робота.

Для дальнейшей инструкции примем, что следующие IP-адреса устройств:

Устройство
IP-адрес

Робот TurtleBro

172.20.10.9

Робоголова Bbrain

172.20.10.10

3. Подключитесь к Робоголове по SSH

ssh pi@<IP-адрес_Робоголовы>
# Пароль по умолчанию: brobro

4. Остановите ubuntu-сервис

sudo systemctl stop robohead.service

5. Настройка файла .bashrc

  1. Откройте файл:

    sudo nano ~/.bashrc
  2. Перейдите в конец файла и найдите блок:

    # for work with another robot
    # ip of another robot:
    #export ROS_MASTER_URI=http://192.168.1.73:11311
    # ip of robohead:
    #export ROS_HOSTNAME=192.168.1.53
    
    # for local work (without a robot)
    export ROS_MASTER_URI=http://127.0.0.1:11311
    export ROS_HOSTNAME=127.0.0.1
  3. Закомментируйте локальные настройки:

    #export ROS_MASTER_URI=http://127.0.0.1:11311
    #export ROS_HOSTNAME=127.0.0.1
  4. Раскомментируйте настройки для взаимодействия и укажите правильные адреса:

    export ROS_MASTER_URI=http://172.20.10.9:11311
    export ROS_HOSTNAME=172.20.10.10
  5. Сохраните и выйдите: CTRL+S, CTRL+X

6. Настройка файла start.sh

  1. Откройте файл:

    sudo nano ~/start.sh
  2. Примените те же изменения, что и в .bashrc, внутри скрипта:

    #!/bin/bash
    source /opt/ros/noetic/setup.bash
    source /home/pi/robohead_ws/devel/setup.bash
    
    export PYTHONPATH=$PYTHONPATH:$ROS_ROOT/core/roslib/src
    export PYTHONPATH=$PYTHONPATH:/usr/bin/python3
    export PYTHONPATH=$PYTHONPATH:/home/pi/.local/lib/python3.8/site-packages
    
    # for work with another robot
    export ROS_MASTER_URI=http://172.20.10.9:11311
    export ROS_HOSTNAME=172.20.10.10
    
    # for local work (without a robot)
    #export ROS_MASTER_URI=http://127.0.0.1:11311
    #export ROS_HOSTNAME=127.0.0.1
    
    roslaunch robohead_controller robohead_controller_py.launch
  3. Сохраните и выйдите: CTRL+S, CTRL+X

7. Синхронизация данных и перезагрузка устройства

sudo sync
sudo reboot

Примечание: после этого Робоголова будет загружаться только если TurtleBro работает и находится в той же Wi-Fi сети.

8. Использование пакета turtlebro_voice_nav

Для взаимодействия устройств можно использовать пакет turtlebro_voice_nav.

Last updated