Автозапуск пользовательских программ

Когда вы познакомитесь с SDK и напишите свою управляющую программу, встанет вопрос ее автоматического запуска при включении робота. В Linux существуют разные способы для автозапуска. Широкоизвестный способ через файл /etc/rc.local является устаревшим.

Ниже описан актуальный способ обеспечения автозапуска. Этот способ используется и самим производителем робота [Unitree] для старта своих исполняемых файлов и скриптов (программы управления движением, спорт-режима, веб-интерфейса, настройки сети и т.п.)

Представим, что вы скомпилировали пример из SDK и имеете следующий исполняемый файл:

/home/pi/Unitree/sdk/unitree_legged_sdk/build/example_walk

Для обеспечения дополнительного функционала, будем запускать этот файл на исполнение из скрипта. Таким образом, мы сможем, к примеру, сделать небольшую отстрочку запуска (для ожидания запуска всех систем робота) или запускать несколько исполняемых файлов.

Создаем скрипт myscript.sh в домашнем каталоге (пользователь pi) на Raspberry Pi CM4 со следующим содержимым:

cd /home/pi/Unitree/sdk/unitree_legged_sdk/build
Sleep 500  # отсрочка запуска
sudo ./example_walk

После этого для файла скрипта устанавливаем возможность исполнения:

sudo chmod +x myscript.sh

Далее настраиваем автозапуск этого скрипта методом - “через каталог .config”. Для этого по пути /home/pi/.config/autostart/ создаем файл myscript.desktop со следующим содержимым:

[Desktop Entry]
Name=myscript
Comment=for start my programms
Exec=bash /home/pi/myscript.sh
Terminal=false
Type=Application
Categories=System;Utility;Archiving;
StartupNotify=false
NoDisplay=true

В каталоге уже лежит файл unitree.desktop, используемый для запуска стартового скрипта программ производителя. Можно скопировать его и использовать для запуска своего скрипта, немного подправив.

После этого при включении робот будет исполнять этот скрипт и исполнять прописанные в нем инструкции, в том числе команду запуска исполняемого файла.