> For the complete documentation index, see [llms.txt](https://voltbro.gitbook.io/robot-sobaka-mors/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://voltbro.gitbook.io/robot-sobaka-mors/ustroistvo-robota/primery.md).

# Примеры

Для простоты понимания, как взаимодействовать с роботом через ROS и LCM, мы сделали ряд примеров. Если вы хотите делать собственно ПО для робота, настоятельно рекомендуем сначала изучить эти примеры. В файлах примеров имеются комментарии. Зная общие принципы Python и ROS, вы без труда сможете в них разобраться. Запускать примеры можно как в [симуляторе](/robot-sobaka-mors/simulyaciya/opisanie-imitacionnoi-modeli.md), так и на реальном роботе.

Все примеры, касающиеся ROS, лучше всего запускать с вашего компьютера, который подключен к роботу по сети. Чтобы подключиться, следуйте инструкциям в разделах [Подключение к роботу по сети](/robot-sobaka-mors/nastroika-i-obsluzhivanie/podklyuchenie-k-robotu-po-seti.md) и [Подключение к ROS на роботе](/robot-sobaka-mors/nastroika-i-obsluzhivanie/podklyuchenie-k-ros-na-robote.md).

Пример, касающийся LCM (demo\_lcm.py), запускайте на бортовом компьютере робота.

{% hint style="info" %}
Скачать примеры  можно по [ссылке](https://github.com/voltdog/mors_demo).
{% endhint %}

Ниже приведен общий принцип работы с примерами:

1. Включите робота и настройте подключение по [сети](/robot-sobaka-mors/nastroika-i-obsluzhivanie/podklyuchenie-k-robotu-po-seti.md) и [ROS](/robot-sobaka-mors/nastroika-i-obsluzhivanie/podklyuchenie-k-ros-na-robote.md)
2. Скачайте пакет mors\_demo в своё рабочее пространство ROS

```
cd <ROS-workspace>/src
git clone https://github.com/voltdog/mors_demo.git
```

3. Произведите компиляцию

```
cd <ROS-workspace>
catkin_make
```

4. Чтобы не уменьшить риск поломки робота, в первый раз запускайте каждый пример, установив робота на стойку.&#x20;
5. Запустите любой пример из папке scripts

```
rosrun mors_demo demo_body.py
```

{% hint style="warning" %}
Если во время выполнения примеров вы наблюдаете рывки, то обратитесь к разделу [Устранение неполадок](/robot-sobaka-mors/nastroika-i-obsluzhivanie/ustranenie-nepoladok.md#esli-robot-dergaetsya-vo-vremya-vypolneniya-primerov).
{% endhint %}

## Описание примеров

### demo\_actions

Робот встает, и по очереди начинает исполнять заскриптованные команды: даёт одну лапу, даёт другую лапу, кувыркается, садится и машет лапой, садится на несколько секунд и затем встает. В конце робот ложится на землю и отключает питание с двигателей.

{% hint style="warning" %}
Перед запуском убедитесь, что слева от робота есть 1.5 м свободного пространства!
{% endhint %}

Запуск скрипта:

```
rosrun mors_demo demo_actions.py
```

### demo\_body

Робот встает и начинает перемещать корпус, меняя своё линейное положение и ориентацию. По завершении, робот ложится и снимает питание с двигателей.

Запуск скрипта:

```
rosrun mors_demo demo_body.py
```

### demo\_joints

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

{% hint style="warning" %}
Обязательно установите робота на стойку перед запуском этого примера! Будьте аккуратны: робот достаточно сильно размахивает ногами.
{% endhint %}

Запуск скрипта:

<pre><code><strong>rosrun mors_demo demo_joints.py
</strong></code></pre>

### demo\_lcm

Этот пример делает то же самое, что и demo\_joints.py, но только взаимедействие в приводами происходит напрямую через LCM. Во время работы скрипта производится вывод в консоль текущих показаний датчиков угла поворта сочленений.

Этот пример нужно запускать только на бортовом компьютере робота. Для запуска произведите следующие действия:

1. Подключитесь к роботу через SSH или RDP.
2. Перейдите в ros-воркспейс и скачайте пакет mors\_demo:

```
cd mors_ws/src
git clone https://github.com/voltdog/mors_demo.git
```

3. Произведите сборку пакета:

```
cd ~/mors_ws
catkin_make --only-pkg-with-deps mors_demo
```

4. Завершите работу [ubuntu-сервиса](/robot-sobaka-mors/nastroika-i-obsluzhivanie/ubuntu-servis.md) mors.service

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

5. Запустите скрипт инициализации приводов

```
cd ~
./start_offsets.sh
```

Если вы видите постоянно бегущие данные и они не прекращаются, то не обращайте на это внимание.

6. В новом терминале запустите roscore:

```
roscore
```

7. Еще в одном терминале запустите пример:

```
rosrun mors_demo demo_lcm.py
```

Если потом вы решить запустить другие примеры или включить управление роботом с джойстика, то  это можно сделать тремя способами:

* перезагрузить робот
* запустить launch-файл управляющего ПО:

```
roslaunch mors bringup.launch
```

* запустить ubuntu-сервис

```
sudo systemctl start mors.service
```

### demo\_leds

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

Запуск скрипта:

<pre><code><strong>rosrun mors_demo demo_leds.py
</strong></code></pre>

### demo\_legs

Файл содержит пример кода управления стопами шагающего робота МОРС. Во время демонстрационного примера робот двигает стопами по окружности. Каждая нога отрабатывает движение в своей плоскости.

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

Запуск скрипта:

<pre><code><strong>rosrun mors_demo demo_legs.py
</strong></code></pre>

### demo\_sensors

Файл содержит пример кода для получения данных с датчиков робота. Во время работы скрипта, данные выводятся в консоль. Во время работы файла, вы можете управлять роботом в любом режиме.

Список выводимых данных:

* углы поворота сочленений
* кватернион углового положения
* линейные ускорения
* температура
* входное напряжение
* потребляемый ток
* состояние кнопки на корпусе

Запуск скрипта:

<pre><code><strong>rosrun mors_demo demo_sensors.py
</strong></code></pre>

### demo\_walk

Файл содержит пример управления ходьбой робота (вдоль осей XY и вокруг оси Z).

{% hint style="warning" %}
Перед запуском примера, убедитесь, что сперереди у робота есть минимум 3 метра свободного пространства!
{% endhint %}

Запуск скрипта:

```
rosrun mors_demo demo_walk.py
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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/primery.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.
