These are chat archives for dronekit/dronekit-android

24th
Jun 2016
Kelly Schrock
@kellyschrock
Jun 24 2016 03:49
@pablomar13 Thanks! It's coming along pretty well, just doing some stuff with Follow. Something a bit different. :-D
Phu Nguyen
@phmagic
Jun 24 2016 20:18
noobie question
how do I link to a client lib that's in development?
Peng Cheng
@tribbloid
Jun 24 2016 20:18
greetings
TShapinsky
@TShapinsky
Jun 24 2016 20:22
Phu Nguyen
@phmagic
Jun 24 2016 20:27
thx!
Peng Cheng
@tribbloid
Jun 24 2016 20:51
thanks a lot! I need it too
Peng Cheng
@tribbloid
Jun 24 2016 21:10
can I ask another question? The develop branch of Tower cannot be build on my machine
when I run gradle build I got the following error information:
A problem occurred configuring project ':Android'.
Could not resolve all dependencies for configuration ':Android:_prodReleaseCompile'.
Authentication scheme 'all'(Authentication) is not supported by protocol 'file'
Fredia Huya-Kouadio
@ne0fhyk
Jun 24 2016 21:11
@tribbloid give me 5min and I'll fix the issue
TShapinsky
@TShapinsky
Jun 24 2016 21:11
Check your build variant.
Peng Cheng
@tribbloid
Jun 24 2016 21:11
thanks a lot sir. Big fan
TShapinsky
@TShapinsky
Jun 24 2016 21:12
Nvm, Freddie's got it
Fredia Huya-Kouadio
@ne0fhyk
Jun 24 2016 21:24
@tribbloid should be good to go now! sync with the latest from develop and try to build again.
Peng Cheng
@tribbloid
Jun 24 2016 21:24
all hail freddie
give me a few minutes, updating sdk now
building now, looks all good
Also, are you working on isolating on tower-lib into an independent & platform agnostic java library?
Peng Cheng
@tribbloid
Jun 24 2016 21:29
I saw some activities from tower-lib:0.0.0-alpha14 on travisCI
Fredia Huya-Kouadio
@ne0fhyk
Jun 24 2016 21:30
@tribbloid that was some tests for the next update to the dronekit-android client lib.
Peng Cheng
@tribbloid
Jun 24 2016 21:31
I see
Fredia Huya-Kouadio
@ne0fhyk
Jun 24 2016 21:32
@tribbloid it would be ideal for that library to be a platform agnostic java library, but at the moment, it leverages a lot of android functionality, and i unfortunately lack the time to start work on moving it away from android
Peng Cheng
@tribbloid
Jun 24 2016 21:33
like 3DR service?
its also in Java
Fredia Huya-Kouadio
@ne0fhyk
Jun 24 2016 21:34
@tribbloid the updates made to the client lib are available on the dronekit-android version_3.0 branch
@tribbloid yea 3dr services uses the android os to access low level resources (usb, udp, tcp) and the client lib uses android ipc to convey drone telemetry between several running apps.
Peng Cheng
@tribbloid
Jun 24 2016 21:39
@ne0fhyk does the low level usb/udp/tcp telemetry component wraps mavlink that can be compiled anywhere?
Fredia Huya-Kouadio
@ne0fhyk
Jun 24 2016 21:41
@tribbloid yes, the mavlink library is platform agnostic: https://github.com/ne0fhyk/mavlink
Peng Cheng
@tribbloid
Jun 24 2016 21:44
@ne0fhyk so the interfaces being accessed by dronekit-android are not too low? If its possible to use different mavlink binaries for different OS
Fredia Huya-Kouadio
@ne0fhyk
Jun 24 2016 21:47
@tribbloid well the mavlink libraries we use are automatically generated in platform agnostic java. so these libraries can be reused on android, desktop (windows, linux, mac)
@tribbloid dronekit-android expects the mavlink library to be in java, so it wouldn't work if you compile a binary (c/c++) version of the mavlink library instead.
Peng Cheng
@tribbloid
Jun 24 2016 21:49
@ne0fhyk I see, that's even better :) So the only thing that prevents it from being deployed on Linux is the IPC?
ideally mavlink should handle all low-level hardware access
Fredia Huya-Kouadio
@ne0fhyk
Jun 24 2016 21:51
@tribbloid yep :)
@tribbloid we use android aidl as ipc mechanism: https://developer.android.com/guide/components/aidl.html
Peng Cheng
@tribbloid
Jun 24 2016 21:52
@ne0fhyk I see
Fredia Huya-Kouadio
@ne0fhyk
Jun 24 2016 21:52
@tribbloid if this was available on other platform (i.e: linux) then porting and making the library platform agnostic would be feasible.
Peng Cheng
@tribbloid
Jun 24 2016 21:53
@ne0fhyk So I have the following 3 options to connect the dots:
  1. package tower, dronekit-lib & drone-kit service in one fat jar, run it in 1 JVM and circumvent the inter-process communication
  1. switch to dronekit-python
Fredia Huya-Kouadio
@ne0fhyk
Jun 24 2016 21:55
@tribbloid which platform are you trying to run Tower on?
Peng Cheng
@tribbloid
Jun 24 2016 21:55
  1. use the low-level hardware access dependency in https://github.com/geeksville/arduleader, which is compiled in Scala/sbt
ubuntu & Apache Spark
sorry I forgot how to count
Fredia Huya-Kouadio
@ne0fhyk
Jun 24 2016 21:57
@tribbloid google is planning to support android apps on chromeos: https://chrome.googleblog.com/2016/05/the-google-play-store-coming-to.html
@tribbloid so another option would be for Tower to run on chromeos, and from there run on a desktop os running chrome (or chromium)
@tribbloid the way i see it:
Peng Cheng
@tribbloid
Jun 24 2016 21:59
@ne0fhyk yeah it all depends on weighing costs of making the missing pieces
Fredia Huya-Kouadio
@ne0fhyk
Jun 24 2016 21:59
  • option 1: would be a lot of work, and might not be entirely feasible
  • option 2: good solution if you need to access the api directly (i.e: programmatically). However dronekit-android and dronekit-python have too much difference for Tower to be able to run on top of dronekit-python
Peng Cheng
@tribbloid
Jun 24 2016 22:00
@ne0fhyk is it mandatory to have multi-process in drone control? Why IPC is hard to circumvent?
Fredia Huya-Kouadio
@ne0fhyk
Jun 24 2016 22:03
  • option 3: good and valid solution. andropilot might actually support multiple platforms, though you would have to check with @geeksville to make sure.
  • option 4: good solution as well, but dependent on google's timing for chrome os support of android apps.
@tribbloid not necessary on desktop, but the current dronekit-android api was designed with mobile in mind and with android ipc at its core, and so large part of it would need to be refactored to support desktop
Peng Cheng
@tribbloid
Jun 24 2016 22:11
@ne0fhyk Plz let me do a code analysis to understand how pervasive it is. I trust the community of tower much more than andropilot. Many features (e.g. UVC device video feed) are very important to ensure hardware compatibility