---
# System prepended metadata

title: Инструкция по запуску

---

# Инструкция по запуску



| Проекты                                    | Где    | Путь                                   | Репа                                                    | Автор  |
|:------------------------------------------ |:------ |:-------------------------------------- |:------------------------------------------------------- |:------ |
| DoorOpen, ParamServer, ElevatorDoorChecker | Husky  | ```~/Repos/door_open_ws```             | [+](https://github.com/danissomo/opd_pkg_set)           | Даниил |
| PushButton                                 | Husky  | ```~/Repos/manipulator/lift_call_ws``` | -                                                       | Даниил |
| HandleKeypoints                            | server | ```~/dan_ws```                         | [+](https://github.com/danissomo/yolo_handle_keypoints) | Даниил |
| ElevatorButtons                            | server | ```~/elev_buttons_dockered```          | [+](https://github.com/danissomo/elev_buttons_dockered) | Даниил |
| Голос                                      | ??     | ??                                     | [+](https://github.com/Petilia/const_voice_flow)        | Илья   |
|                                            |        |                                        |                                                         |        |




## wifi <--> modem
1. Вставить модем
2. Выключить вайфай
    ```bash
    sudo nmcli radio wifi off
    sudo nmcli radio wifi #check status
    ```
3. Перезагрузить робота
    ```bash
    sudo reboot now
    ```
*Note:* 
Беспроводное подключение к роботу (через zerotier) заработает в течение пары минут, то что робот не мгновенно доступен после перезагрузки - нормально

Для переключения выполняем действия в инвертированном порядке - отключаем модем, включаем wifi (sudo nmcli radio wifi on), перезагружаем робота.

## Move to point (Кирилл)

В терминале 1 на роботе (доступны карты 1, 3 и 5 этажей):
```python3 ~/cartographer_ws/run_cartographer.py --load-map [номер этажа] -l```

В терминале 2 на роботе (доступны карты 1, 3 и 5 этажей):
```python3 ~/rtabmap_ws/run_rtabmap.py --load-map [номер этажа]```

В терминале 3 на ноуте:
```bash
set_husky_rosmaster
rviz -d carto_rtabmap.rviz
```
Немного поездить, чтобы робот локализовался. Когда произойдёт локализация, появится карта занятости всего этажа. Локализация в коридорах может быть неправильной, тогда нужно перезапустить cartographer и попробовать локализоваться в другом месте.

#### Старый пайплайн, если с новым что-то не работает:
В терминале 1 на роботе:
```run_lol_odom```

В терминале 2 на ноуте:
```bash
set_husky_rosmaster
rviz -d lol.rviz
```
указать начальную позицию робота (2d pose estimate) так, чтобы совпала локализация с картой

В терминале 3 на роботе:
```python3 ~/rtabmap_ws/run_rtabmap.py```

В терминале 4 на роботе:
```bash
cd pointnav_ws
source devel/setup.bash
roslaunch theta_star_planner point_nav_action_server.launch
```

## Navigate 2d (Мухаммад)
В терминале 5 на роботе:
```bash
roslaunch add_frame add_frame.launch
```

В терминале 6 на роботе: (для 525 правой двери)
```bash
roslaunch door_operations door_operations.launch door_status:=right
```

## Manipulator (Даниил)

### Parameter server
Мои узлы ссылаются на сервер параметров, который просто устанваливает переменные в rosparam.

Пока при старте он не запускается.
```bash
cd ~/Repos/door_open_ws
source devel/setup.bash
rosrun manipulator_param_server server.py
```
### Elevator door checker
```bash
cd ~/Repos/door_open_ws
source devel/setup.bash
rosrun check_back checker.py
```

### Включение манипулятора
Манипулятор не включится автоматически, если до его включения не нажать кнопку ‘go’ на пульте.
В противном случае придется включать его вручную:
манипулятор должен находится в режиме normal. Эта панель открывается если тапнуть по кружку.
![image alt](https://i.imgur.com/22cV0A3.jpg "title" =400x) ![](https://i.imgur.com/zVqRC4N.jpg "title" =400x)

#### Скрипты управления манипулятором
```ur5_fold``` - складывает манипулятор
```ur5_freedrive``` - включает режим, когда манипулятор можно двигать руками
```gripper_gamepad``` - управление захватом с геймпада стрелочками ввех-вниз

### Door open
*На сервере: *
*[ ssh admin@lnsigo.mipt.ru -p2247
password: 4d84XpkM ]*

```bash
cd  ~/dan_ws
source ./devel/setup.bash
rosrun handle_keypoints_node one_cmd_run.sh
```


*На роботе: (updated)*
```bash
cd ~/Repos/door_open_ws
source ./devel/setup.bash
rosrun manipulator_param_server server.py
rosrun door_open door_open_node.py
```

## State machine (Сергей)
*В терминале 1 на роботе:*
```bash
cd /home/administrator/Repos/Linok/strategic_node/docker
./start.sh
./into.sh
source devel/setup.bash
rosrun state_machine offline_scenario.py
```

Запуститься такой сценарий:
state machine for offline scenario (not general enviroment -> 525 room)
1) Move to point (MoveToPoint.action, x=-89, y=-11.5)
2) Controller->parking (Navigate2D.action)
###3) Open the Door (OpenDoor.srv)
4) Move with the door (Navigate2D.action)
###5) Detach gripper (DetachGripper.srv)
6) Go trought the door (Navigate2D.action)

В терминале 2 на роботе:
```rostopic pub /commands_from_dream std_msgs/String “go” --once```

## Голос (Илья)
Запуск кода, который позволяет постоянно слушать все вокруг, распознавать через speechkit текст и отправлять запросы в dream. ([репо](https://github.com/Petilia/const_voice_flow))
На роботе - ```~/Repos/const_voice_flow```
Собираем образ:
```bash
cd docker
./build.sh
```
Подключение микрофона:
Сначала подключаем микрофон в USB-разъем
Только после этого запускаем контейнер:
```./start.sh```
Внутри контейнера:
Вывести список подключенных устройств - среди них должен быть Plantronics Callisto: 
```python py_files/check_devices.py```
Запуск прослушки/распознавания/запросов в dream:
```python py_files/listener.py```
