Временная шкала миссий не работает после загрузки во время взлета - PullRequest
0 голосов
/ 09 июля 2019

У меня проблема с выполнением метода startTakeOff(), и обратный вызов этого метода возвращается до того, как (0,5 метра) дрон достигнет высоты, которую он предполагает (1,2 метра) - эта часть задокументирована (startTakeoff()) - что немного странно. После возвращения обратного вызова я загружаю действия на временную шкалу (получая обратный вызов успеха), а затем запускаю метод startTimeline(), я также зарегистрировал прослушиватель, который печатает состояние события всей временной шкалы, и я вижу, что запускается временная шкала, затем запускается GoToAction (первый на временной шкале) , но дрон ничего не делает, не двигается и ничего не делает.

Если я очищаю временную шкалу, перезагружаю действия и снова запускаю startTimeline() (без вызова stopTimeline()), он работает так, как и предполагалось.

Мой вопрос - есть ли «чистый» способ отложить обратный вызов takeOff? Или заставить график работать без перезагрузки? Под «чистым» я подразумеваю, что я могу установить собственный тайм-аут, который будет загружать и запускать временную шкалу, но это не лучшая практика ...

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

OSDK предоставит вам только некоторые образцы. Это не на 100% уверен в работе. Вы должны подумать и найти решение своей проблемы.

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

Вы можете использовать такую ​​систему, как SVO, для достижения этой цели. https://github.com/uzh-rpg/rpg_svo

SVO дает вам обратную связь о вашем текущем статусе дрона. Таким образом, вместо использования задержки

start take off
while uav not at 1.2 meter -> (take off running) do nothing

while uav airbone -> do the thing you want

Кроме того, вы можете ввести тайм-аут в случае, если перегрузки и дрон не смогут успешно взлететь.

enter image description here

Я видел людей, которые заставляли SVO / PTAM / Vinsmono работать на телефоне Android раньше. Поэтому я думаю, что вы могли бы сделать то же самое.

0 голосов
/ 09 июля 2019

Нет, OSDK запускает обратный вызов, когда он покидает землю, ваш единственный вариант - наблюдать и ждать, пока он достигнет 1,2 м.

...