Как сделать управляемую тележку 2 — различия между версиями

Материал из virt2real wiki
Перейти к: навигация, поиск
Строка 150: Строка 150:
 
<videoflash>5z3Q7oSjhC0</videoflash>
 
<videoflash>5z3Q7oSjhC0</videoflash>
 
<br clear="all">
 
<br clear="all">
 +
 +
 +
 +
=Настройка буфера видео=
 +
 +
Видеопоток проходит буферизацию перед воспроизведением, для устранения дропов - т.е. рассыпания картинки. Для низкой задержки буфер приходится делать маленьким, чтобы минимизировать лаги. Однако, при неустойчивом коннекте картинку не из чего выстраивать, так что в любом случае будет или дроп или увеличение задержки, других вариантов просто нет.
 +
 +
Однако можно настроить буферизацию под конкретные условия. Для визуализации заполнения буфера поверх видео (в окне оверлея) выводится небольшой оранжевый индикатор, находится в правом нижнем углу. Подробное описание можно почитать в разделе про [[RCboard]], а сейчас рассмотрим практическое применение.
 +
 +
Когда всё нормально и видеопоток приходит без проблем, индикатор постоянно заполнен или постоянно пустой. Это зависит от режима буферизации, который задаётся в v2rplayer в менюшке, раздел "видеопоток -> настройка видео". Параметр "rtpjitterbuffer" как раз и задаёт тип буферизации. Если включён режим "buffer" то индикатор буфера должен быть постоянно заполнен. В режиме "slave" индикатор должен быть постоянно пустой. В режиме "none" - тоже пустой.
 +
 +
Основная настройка буферизации сводится к настройке параметров "буфер" и "макс.задержка" там же, в настройках видео. Если индикатор буфера начинает скакать - надо увеличить значение в поле "буфер". Макс. задержка не так однозначно влияет, так что её подбирать надо экспериментально. Так же буфер должен быть не меньше чем значение MTU в настройках бортовой части.
  
  
 
[[Категория:Инструкции]]
 
[[Категория:Инструкции]]

Версия 18:10, 1 июля 2014

На базе RCboard


Содержание

Вступление

В этой инструкции рассмотрим создание простейшей управляемой гусеничной тележки. У меня пока нет нормального Pan-tilt для камеры, так что камера зафиксирована, крутиться не умеет. Так что управление ею я не делал (пока ещё). Так что тележка пока будет просто ездить. Но ездить она будет и при локальном управлении (через домашний Wi-Fi), через Интернет, через тот же роутер, но с доступом "снаружи" и через Интернет с помощью Yota.


Сборка железа

Итак, нам потребуются:

  • тележка (гусеничная или колёсная)
  • Виртурилка (как же без неё)
  • моторшилд, или любые другие драйверы коллекторных моторов (пока задействовано будет 2 канала)
  • Wi-Fi модуль Virt2real или USB Wi-Fi свисток


Я обычно использую гусеничную тележку Dagu RP5. Она уже фигурировала в инструкции под названием Как сделать управляемую тележку. Собственно, сборка аналогична сборке из той инструкции, только подключать будем только моторы гусениц.


Rcboard telegue.png


Моторы гусениц подключаются к пинам разъёма J1 моторшилда. Правый мотор - к контактной паре 1, левый - к паре 2. Моторы должны быть не сильно мощными, моторшилд обеспечивает максимальный ток на 1.5А канал (кратковременно возможно повышение тока до 2А, при постоянном превышении нагрузки сработает защита и канал будет обесточен).

Также нужно надеть перемычку на джампер J11 в положение 1-2 (внешнее питание).

Для локальной связи будем использовать Wi-Fi. Тут на выбор - либо использовать родной модуль Virt2real Wi-Fi, либо использовать USB Wi-Fi. На данный момент с Virt2real Wi-Fi имеются проблемы (дохнут, заразы). Из USB свистков самый дальнобойный оказался ASUS N10. Другие проверенные свистки ASUS N53, D-link DWA160 (rev.B2), ASUS N-13 отлично работают в текущей прошивке, но дальнобойность оказалась чуть поменьше чем у N10.

Для непосредственного (без Wi-Fi) выхода в Интернет будем использовать USB свисток Yota. Существуют свистки нескольких видов, различаются незначительно, работоспособность в прошивке одинаковая.


Настройки борта

Подразумевается, что на microSD карточку уже залита прошивка (версия от 18.06.2014 http://files.virt2real.ru/firmware/virt2real-board/1.1/18_06_2014_sdcard.hd.img.zip или младше) и настроено подключение по wi-fi к локальному роутеру.

Теперь нам требуется настроить RCboard по схеме "наземная часть - сервер".

  • Идём в админку, в раздел RC->RC Board. В подразделе "общие настройки" ставим галочку около "Запускать при включении питания", чтобы приложение RCboard прописалось в автозапуск.
  • Там же выбираем "Использовать Локальный конфиг". Жмём "Сохранить".
  • Идём в подраздел "Локальная конфигурация".

Так как наш девайс танкового типа (поворот за счёт разницы вращения гусениц), устанавливаем переменную devicetype в танковый тип.

devicetype=1

Так как мы настраиваем по схеме "наземная часть - сервер", то бортовая часть у нас является клиентом. Устанавливаем переменную role в это значение

role=client

Для режима "клиент" необходимо указать адрес сервера. Это ip адрес компьютера, с которого будем управлять тележкой.

server_addr=192.168.1.10

Также для режима "клиент" нужно указать порт сервера команд. По умолчанию V2Rplayer слушает порт 1082

port=1082

Битрейт видео устанавливаем 2 мегабита

bitrate=2600000

Параметр MTU устанавливаем в 30000 для максимального быстродействия. Здесь есть тонкость - такое значение можно установить только если хороший коннект, иначе будут частые рассыпания картинки. При плохой связи лучше установить дефолтное значение - 1444 или 1500.

mtu=30000

Порт для видеопотока обычно 3000

videoport=3000

Так как канал связи у нас Wi-Fi, надо указать это в настройках, чтобы получать параметры связи по каналу телеметрии. Интерфейс Wi-Fi устройства обычно называется wlan0, но если у вас другое название - надо его указывать вместо wlan0

wlantype=1
wifi_iface=wlan0

Остальные параметры можно не изменять.

Жмём кнопку "Сохранить". Всё, настройка борта завершена. Теперь надо или запустить RCboard вручную, зайдя в основной подраздел меню RC->RC board и нажав Большую Синюю кнопку. Либо можно перезагрузить бортовую Виртурилку, rcboard запустится автоматически.


Настройка рулилки

Качаем приложение http://files.virt2real.ru/soft/v2rplayer/v2rplayer-0.1.zip , разархивируем куда-нибудь и запускаем файл v2r_player.exe.

!!! Приложение пока работоспособно только по Windows 7 x64

Так как приложение по умолчанию настроено на схему "наземная часть - сервер", то там уже должна появиться картинка с камеры тележки и внизу, в строке телеметрии, должны появиться надписи "Подключено", статус коннекта Wi-Fi и напряжение батареи тележки.

Выглядеть должно примерно вот так

Rcboardexample1.png



Так как джойстик мы ещё не настраивали, можно поездить с помощью клавиатуры. Клавиши "вперёд","назад", "влево", "вправо", "A" и "S" для изменения скорости, "Ctrl" - форсаж.


Теперь подключим джойстик.

Подключение джойстика

Берём обычный джойстик (желательно с аналоговыми осями, для пропорционального управления), втыкаем в USB порт компьютера. Я обычно использую Logitech Rumble Gamepad F510.

Убеждаемся что джойстик видится виндой, после чего запускаем rcboard.

Щёлкаем правой кнопкой мыши по окну rcboard, заходим в меню Джойстик->Настройка.

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

Двигаем на джойстике нужную ось, в группе "Все оси джойстика" увидим изменяющиеся значения. Например, когда я двигаю на джойстике левую аналоговую палку вверх-вниз, изменяется значение "Y". Когда двигаю её же влево-вправо, то изменяется "X". Допустим, я хочу чтобы вверх-вниз задавало направление движения, а влево-вправо - повороты. Для этого щёлкаем правой кнопкой мыши по числу, которое написано рядом названием оси, откроется менюшка со списком каналов. Ось X это получается руль, значит выбираем "Канал 1", Ось Y - газ, выбираем "Канал 2".

Теперь самое главное - задаём танковый тип управления. Под каналами передатчика есть выбор типа, "автомобильное" и "танковое". Выбираем танковое, после чего сохраняем изменения кнопкой "Сохранить".

Снова видим окно с видео, пробуем подвигать оси джойстика и видим что тележка ездит вперёд-назад правильно, а вот влево-вправо ездит наоборот. Идём обратно в настройки джойстика и ставим галочку в чекбоксе "инверс" около "канал 1 (руль)". Сохраняем настройки и снова пробуем поездить.



Подключение RC аппы

Для тележки удобнее использовать обычную RC аппаратуру управления куркового типа. Необходимо подключить её к компьютеру через тренерский разъём. Для этого существуют специальные USB адаптеры, который на входе имеет сигнал PPM-SUM от аппы. Адаптер втыкается в USB порт компьютера и аппа начинает выглядеть для операционной системы как обычный USB джойстик. Собсственно, в остальном настройка полностью аналогична настройке обычного USB джойстика, разве что оси могут быть другие.


Подключение USB руля/педалей

Процесс подключения аналогичен подключению обычного USB джойстика, разница лишь в настройке осей. Я использую руль Logitech Driving Force GT, так что всё буду описывать на его примере. Для других рулей всё должно быть аналогично, только оси могут быть использованы другие.

Мой руль по умолчанию работает в нативном режиме, т.е. каждая педаль использует свою ось. В этом основное отличие от обычного джойстика, где газ и тормоз (езда назад) используют одну общую ось. Но педаль газа использует свою ось (у меня это ось Y), а педаль тормоза - ось Rz, так что нам необходимо сделать их суммирование для получение полноценного канала газа.

Для этого служит так называемая "Составная ось". Всего лишь надо назначить ось газа на одну составную ось ("составная 1", она же CMP1) а ось тормоза - на вторую ("составная 2", она же CMP2). А вот результирующую ось ("SUM") уже назначаем на канал газа. Если тележка едет вперёд, хотя жмём газ - надо поставить инверсию на канале газа.

Вроде несложно, но добавлю видеодемонстрашку на всякий случай.



Настройка буфера видео

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

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

Когда всё нормально и видеопоток приходит без проблем, индикатор постоянно заполнен или постоянно пустой. Это зависит от режима буферизации, который задаётся в v2rplayer в менюшке, раздел "видеопоток -> настройка видео". Параметр "rtpjitterbuffer" как раз и задаёт тип буферизации. Если включён режим "buffer" то индикатор буфера должен быть постоянно заполнен. В режиме "slave" индикатор должен быть постоянно пустой. В режиме "none" - тоже пустой.

Основная настройка буферизации сводится к настройке параметров "буфер" и "макс.задержка" там же, в настройках видео. Если индикатор буфера начинает скакать - надо увеличить значение в поле "буфер". Макс. задержка не так однозначно влияет, так что её подбирать надо экспериментально. Так же буфер должен быть не меньше чем значение MTU в настройках бортовой части.