aruco.launch: add placement, length and map arguments

This commit is contained in:
Oleg Kalachev
2020-10-20 13:22:55 +03:00
parent c93beec30d
commit d6590e9a8d
5 changed files with 52 additions and 32 deletions

View File

@@ -1,5 +1,9 @@
# Навигация по картам ArUco-маркеров
> **Note** Документация для версий [образа](image.md), начиная с версии **0.22**. Для более ранних версий см. [документацию для версии **0.20**](https://github.com/CopterExpress/clover/blob/v0.20/docs/ru/aruco_map.md).
<!-- -->
> **Info** Для распознавания маркеров модуль камеры должен быть корректно подключен и [сконфигурирован](camera.md).
<!-- -->
@@ -39,13 +43,13 @@ id_маркера размераркера x y z угол_z угол_y уго
Где `угол_N` – это угол поворота маркера вокруг оси N в радианах.
Путь к файлу с картой задается в параметре `map`:
Файлы карт располагаются в каталоге `~/catkin_ws/src/clover/aruco_pose/map`. Название файла с картой задается в аргументе `map`:
```xml
<param name="map" value="$(find aruco_pose)/map/map.txt"/>
<arg name="map" default="map.txt"/>
```
Смотрите примеры карт маркеров в каталоге [`~/catkin_ws/src/clover/aruco_pose/map`](https://github.com/CopterExpress/clover/tree/master/aruco_pose/map).
Смотрите примеры карт маркеров в [`вышеуказанном каталоге`](https://github.com/CopterExpress/clover/tree/master/aruco_pose/map).
Файл карты может быть сгенерирован с помощью инструмента `genmap.py`:
@@ -154,10 +158,10 @@ navigate(frame_id='aruco_5', x=0, y=0, z=1)
Для навигации по маркерам, расположенным на потолке, необходимо поставить основную камеру так, чтобы она смотрела вверх и [установить соответствующий фрейм камеры](camera_setup.md#frame).
Также в файле `~/catkin_ws/src/clover/clover/launch/aruco.launch` необходимо установить параметр `known_tilt` в секциях `aruco_detect` и `aruco_map` в значение `map_flipped`:
Также в файле `~/catkin_ws/src/clover/clover/launch/aruco.launch` необходимо выставить аргумент `placement` в значение `ceiling`:
```xml
<param name="known_tilt" value="map_flipped"/>
<arg name="placement" default="ceiling"/>
```
При такой конфигурации фрейм `aruco_map` также окажется перевернутым. Таким образом, для полета на высоту 2 метра ниже потолка, аргумент `z` нужно устанавливать в 2:

View File

@@ -1,5 +1,9 @@
# Распознавание ArUco-маркеров
> **Note** Документация для версий [образа](image.md), начиная с версии **0.22**. Для более ранних версий см. [документацию для версии **0.20**](https://github.com/CopterExpress/clover/blob/v0.20/docs/ru/aruco_marker.md).
<!-- -->
> **Info** Для распознавания маркеров модуль камеры должен быть корректно подключен и [сконфигурирован](camera_setup.md).
Модуль `aruco_detect` распознает ArUco-маркеры и публикует их позиции в ROS-топики и в [TF](frames.md).
@@ -22,22 +26,20 @@
<arg name="aruco_detect" default="true"/>
```
Для правильной работы в этом же файле в секции `aruco_detect` должны быть выставлены параметры:
Для правильной работы в этом же файле также должны быть выставлены аргументы:
```xml
<param name="length" value="0.32"/> <!-- размер маркеров в метрах (не включая белую рамку) -->
<param name="estimate_poses" value="true"/> <!-- включение вычисления позиций маркеров -->
<param name="send_tf" value="true"/> <!-- отправлять позиции маркеров в виде TF-фреймов -->
<param name="known_tilt" value="map"/> <!-- наклон маркеров, см. далее -->
<arg name="placement" default="floor"/> <!-- расположение маркеров, см. далее -->
<arg name="length" default="0.33"/> <!-- размер маркеров в метрах (не включая белую рамку) -->
```
Значение параметра `known_tilt` следует выставлять следующим образом:
Значение аргумента `placement` следует выставлять следующим образом:
* если *все* маркеры наклеены на полу (земле), выставить значение `map`;
* если *все* маркеры наклеены на потолке, выставить значение `map_flipped`;
* если *все* маркеры наклеены на полу (земле), выставить значение `floor`;
* если *все* маркеры наклеены на потолке, выставить значение `ceiling`;
* в противном случае удалить строку с параметром.
Если некоторые маркеры имеют размер, отличный значения `length`, их размер может быть переопределен с помощью параметра `length_override`:
Если некоторые маркеры имеют размер, отличный значения `length`, их размер может быть переопределен с помощью параметра `length_override` ноды `aruco_detect`:
```xml
<param name="length_override/3" value="0.1"/> <!-- маркер c id 3 имеет размер 10 см -->