# Советы по разработке собственного ПО

В этом разделе приводятся рекомендации, что нужно делать, если вы хотите заняться разработкой собственных дополнений к ПО робота.

{% hint style="info" %}
Мы рекомендуем разрабатывать и выполнять ваше собственное ПО на отдельном компьютере, который подключен к бортовому компьютеру робота через WiFi или Ethernet. Устанавливать дополнительное ПО и менять различные параметры на бортовом компьютере робота стоит только в случае крайней необходимости.
{% endhint %}

1. Прежде чем проверить работоспособность своего модуля на аппаратной платформе, сначала испытайте его в [симуляторе](/robot-sobaka-mors/simulyaciya/opisanie-imitacionnoi-modeli.md). Только когда удостоверитесь, что ваш модуль корректно работает на имитационной модели, тогда переходите к отладке на аппаратной платформе
2. Подробно изучите разделы Электроника, Программное обеспечение и Файловая система прежде чем приступать к работе.
3. Подключитесь к роботу по [ssh, remmina, sftp и настройте vscode](/robot-sobaka-mors/nastroika-i-obsluzhivanie/podklyuchenie-k-robotu-po-seti.md)
4. Изучите [примеры кода ](/robot-sobaka-mors/ustroistvo-robota/primery.md)по взаимодействию с роботом
5. При необходимости перезагрузки или отключения управляющего ROS-контроллера:&#x20;

* отключите Ubuntu-сервис контроллера

```
sudo systemctl stop mors.service
```

* запустить файл инициализации двигателей

```
~/start_offsets.sh
```

* теперь вы можете запускать ваши ROS-модули или любой другой софт. Если нужен контроллер, который стоит по умолчанию, то используйте команду `roslaunch mors bringup.launch`&#x20;

5. Если вам нужно подключить к роботу ваше собственное устройство, то делайте это в соотсветствии с разделом [Подключение дополнительных устройств](/robot-sobaka-mors/nastroika-i-obsluzhivanie/podklyuchenie-dopolnitelnykh-ustroistv.md)

{% hint style="warning" %}
То, что описано в пунктах ниже делайте только в случае крайней необходимости!
{% endhint %}

6. Если вы хотите реализовать своё собственное действие (например, сидеть, дать лапу и т.д.), то предлагаем вам, как это уже говорилось выше, сделать отдельный ROS-пакет, который будет выполняться на отдельном компьютере. Если вам действительно нужно это выполнить внутри текущего управляющего контроллера, то вы можете сделать это в пакете locomotion\_controller. Перейдите в папку \~/mors\_ws/src/locomotion\_controller/scripts/actions.  В ней лежат файлы actionN.py с номерами от 1 до 8. Все файлы до action6.py включительно уже заняты различными действиями. Вы  можете создать своё собственное в файлах action7.py и action8.py. Код предыдущих файлов достаточно прост в понимании, поэтому мы предлагаем их использовать в качестве примера.
7. При необходимости, вы можете заменить текущие ROS-модули своими собственными, например если вы хотите подключить другой джойстик или использовать свой собственный алгоритм локомоции. Не забывайте, что для взаимодействия с сервоприводами, используется протокол LCM. В качестве пакета для запуска всех компонентов контроллера, выступает пакет mors. В нём содержатся все необходимые launch-файлы. Рекомендуем вам создать собственный launch-файл, если запуск компонентов планируется быть отличным от стандартного.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://voltbro.gitbook.io/robot-sobaka-mors/ustroistvo-robota/sovety-po-razrabotke-sobstvennogo-po.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
