Подключение робота к интернету
Центральным звеном в собаке является Raspberry Pi CM4, одной из функциональностей которой является быть точкой доступа и раздавать Wi-Fi. Чтобы подключить собаку к своему роутеру в качестве клиента и сделать этот процесс автоматическим предлагается следующий способ:
- подключите монитор и клавиатуру/мышь к Raspberry (HDMI и USB разъем возле Ethernet)
- откройте терминал, пропишите:
sudo ifconfig wlan0 up
после чего в визуальном режиме в углу экрана найдите вашу сеть и подключитесь. Интернет не будет доступен, нужно прописать еще основной шлюз:
sudo route add default gw 192.168.0.1 wlan0 # вместо 192.168.0.1 IP-адрес вашего роутера
Теперь интернет с Raspberry Pi будет доступен, проверяем.
Если доступ в интернет с Raspberry нужен однократно, то этого хватит. Однако после перезагрузки настройки слетят, поэтому данный процесс нужно автоматизировать. Наиболее правильный подход будет следующим.
1) Обеспечение автоматического поднятия интерфейса wlan0
Для конфигурации локальной сети на робособаке производитель использует bash-скрипт:
/home/pi/Unitree/autostart/configNetwork/configNetwork.sh
Здесь происходит поднятие интерфейса wlan1, используемого для работы в режиме точки доступа (раздачи Wi-Fi). Именно здесь мы обеспечим поднятие и интерфейса wlan0 (для работы в режиме клиента сети). Добавим строку sudo ifconfig wlan0 up
.
2) Автоматическое подключение к беспроводной сети
Если к роутеру уже было выполнено подключение, как указывалось выше (визуально через апплет сетевого менеджера), то параметры беспроводной сети хранятся в файле: /etc/wpa_supplicant/wpa_supplicant.conf
Набор параметров для подключения к беспроводной сети следующий:
network={
ssid="ИМЯ_WIFI_СЕТИ"
psk="ПАРОЛЬ"
key_mgmt=WPA-PSK
}
Если же подключение еще не выполнялось, то при отсутствии желания подключать монитор, можно прописать эти данные в этом файле самостоятельно.
Теперь, зная имя сети и пароль, Raspberry Pi CM4 робособаки должен автоматически подключаться к ней. Если ваш роутер работает в режиме DHCP и динамической конфигурации Raspberry достаточно, то настройка завершена. Если же требуется статический IP-адрес, то необходимо выполнить еще один шаг.
3) Конфигурирование статического IP-адреса
Обеспечить постоянный IP-адрес Raspberry можно средствами вашего роутера с помощью привязки по MAC-адресу.
Либо задайте конфигурацию для интерфейса в самом Raspberry в файле /etc/dhcpcd.conf
, используя следующий шаблон:
interface wlan0
static ip_address=192.168.1.149/24 # статический IP-адрес и маска подсети
static routers=192.168.1.1 # основной шлюз
static domain_name_servers=8.8.8.8 # DNS
metric 155 # метрика для основного шлюза, задает приоритет маршрута
noipv6
4) Настройка интернета на других бортовых компьютерах
Таким образом мы добились автоматического подключения робота Go1 к вашей Wi-Fi сети. Однако, помимо Raspberry Pi, на борту робота есть и другие одноплатные компьютеры - три NVidia Jetson Nano. Интернет для них может обеспечивать Raspberry Pi. Необходимо на Raspberry Pi включить режим перенаправления трафика, обычно по-умолчанию отключенный в большинстве Linux дистрибутивов. Для этого нужно отредактировать файл /etc/sysctl.conf
. Раскомментируйте следующую строку:
net.ipv4.ip_forward=1
Чтобы изменение вступило в силу выполните:
sudo sysctl -p /etc/sysctl.conf
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
Теперь интернет должен быть на всех бортовых компьютерах.