I mostly move the mouse but also type a little.
geeksville / arduleader Goto Github PK
View Code? Open in Web Editor NEWAn android ground controller (and other things) for Mavlink/Arduplane
License: Other
An android ground controller (and other things) for Mavlink/Arduplane
License: Other
Log file from my Andropilot : https://docs.google.com/file/d/0B9Rr1JTp37U9bDA1cnNhcnhkNHM/edit?usp=sharing
All takeoffs and landing are done in stabilize mode - some flying is done in Loiter mode, and RTL is tested (these mode changes are set from transmitter)
Problem: Andropilot is displaying stabilize/loiter by toggling between "manual" and "FBW-A" - not displaying the correct mode.
Moving around in map causes screen to switch to next window. Left,up,down movement was ok. Just panning right.
Device: HTC one x plus
New UI is very slick.
Your app "must" connect via BT to flightdata. I solder my 3DR to a bluetooth smirf gold (I switch only RX/TX). On the BT-Module comes 1:1 the same data. I've use this with copter-gcs (similar project).
Great work Kevin!,
Add password protected user mode only for monitoring mavlink data, which don't allow for example pid or flight mode changes. So basically we are only receiving data, no transmitting except packet requests.
Optional feature would be combined user mode, where user can select from list what changes are allowed.
This feature will help to avoid unwanted changes in flight resulting crash if ground station is used by unauthorized person or spectator.
Regards Jani
tail of empty apparently bad...
java.lang.UnsupportedOperationException: empty.tail
at scala.collection.TraversableLike$class.tail(TraversableLike.scala:445)
at scala.collection.AbstractTraversable.tail(Traversable.scala:105)
at com.geeksville.andropilot.MainActivity.handleWaypoints(MainActivity.scala:364)
at com.geeksville.andropilot.MainActivity$MyVehicleMonitor$$anonfun$onWaypointsDownloaded$1.apply$mcV$sp(MainActivity.scala:157)
at com.geeksville.util.ThreadTools$$anon$1.run(ThreadTools.scala:11)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4448)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
at dalvik.system.NativeStart.main(Native Method)
compatScreenHeightDp=544
compatScreenWidthDp=320
compatSmallestScreenWidthDp=320
fontScale=1.0
hardKeyboardHidden=HARDKEYBOARDHIDDEN_YES
keyboard=KEYBOARD_NOKEYS
keyboardHidden=KEYBOARDHIDDEN_NO
locale=zh_CN
mcc=460
mnc=2
navigation=NAVIGATION_NONAV
navigationHidden=NAVIGATIONHIDDEN_YES
orientation=ORIENTATION_PORTRAIT
screenHeightDp=544
screenLayout=SCREENLAYOUT_SIZE_NORMAL+SCREENLAYOUT_LONG_YES
screenWidthDp=320
seq=11
skinPackage=com.sonyericsson.blacktheme
smallestScreenWidthDp=320
textLayoutDirection=0
touchscreen=TOUCHSCREEN_FINGER
uiMode=UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO
userSetLocale=false
Thus the slow updates for rc servos
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.geeksville.andropilot/com.geeksville.andropilot.MainActivity}: java.util.NoSuchElementException: None.get
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2001)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2028)
at android.app.ActivityThread.access$600(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1179)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4508)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.util.NoSuchElementException: None.get
at scala.None$.get(Option.scala:313)
at scala.None$.get(Option.scala:311)
at com.geeksville.andropilot.MainActivity.map(MainActivity.scala:68)
at com.geeksville.andropilot.MainActivity.initMap(MainActivity.scala:457)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:282)
at android.app.Activity.performCreate(Activity.java:4479)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1965)
... 11 more
java.util.NoSuchElementException: None.get
at scala.None$.get(Option.scala:313)
at scala.None$.get(Option.scala:311)
at com.geeksville.andropilot.MainActivity.map(MainActivity.scala:68)
at com.geeksville.andropilot.MainActivity.initMap(MainActivity.scala:457)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:282)
at android.app.Activity.performCreate(Activity.java:4479)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1965)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2028)
at android.app.ActivityThread.access$600(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1179)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4508)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
at dalvik.system.NativeStart.main(Native Method)
BOARD=yecon75_tb_ics
BOOTLOADER=unknown
BRAND=alps
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
DEVICE=yecon75_tb_ics
DISPLAY=Mediacom M-MP7503G - Ver 4.10
FINGERPRINT=alps/yecon75_tb_ics/yecon75_tb_ics:4.0.4/IMM76D/1355360860:user/test-keys
HARDWARE=mt6575
HOST=kf-mid
ID=IMM76D
IS_DEBUGGABLE=false
MANUFACTURER=alps
MODEL=SmartPad7503G
PRODUCT=yecon75_tb_ics
RADIO=unknown
SERIAL=0123456789ABCDEF
TAGS=test-keys
TIME=1355361417000
TYPE=user
UNKNOWN=unknown
USER=hcl
compatScreenHeightDp=320
compatScreenWidthDp=593
compatSmallestScreenWidthDp=320
fontScale=1.0
hardKeyboardHidden=HARDKEYBOARDHIDDEN_YES
keyboard=KEYBOARD_NOKEYS
keyboardHidden=KEYBOARDHIDDEN_NO
locale=it_IT
mcc=222
mnc=1
navigation=NAVIGATION_DPAD
navigationHidden=NAVIGATIONHIDDEN_NO
orientation=ORIENTATION_LANDSCAPE
screenHeightDp=552
screenLayout=SCREENLAYOUT_SIZE_LARGE+SCREENLAYOUT_LONG_NO
screenWidthDp=1024
seq=23
simSetLocale=false
smallestScreenWidthDp=600
textLayoutDirection=0
touchscreen=TOUCHSCREEN_FINGER
uiMode=UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO
userSetLocale=false
Yes, current version of Google maps, but running a custom ROM (ReVolt JB v2.8.2). I don't know what time the cash report was sent but about 25 mins ago (now is 3:36pm UTC). I uninstalled the Play store version and downloaded one from the github downloads which doesn't have the option to send a crash report but I'll get the play store one again and send the report with my name on it.
Edit: sent new crash report at 3:45UTC
Ubuntu 12.04 64bit.
Nexus 7 Jelly Bean 4.2.1
> compile
[info] Dexing /home/danpe/Projects/andropilot/arduleader/andropilot/target/classes.dex
trouble processing:
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker$2.class
...while processing com/bvcode/ncopter/widgets/NumberPicker$2.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/ScopeDisplay$ScopeThread.class
...while processing com/bvcode/ncopter/widgets/ScopeDisplay$ScopeThread.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker$1.class
...while processing com/bvcode/ncopter/widgets/NumberPicker$1.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/DoubleNumberPicker.class
...while processing com/bvcode/ncopter/widgets/DoubleNumberPicker.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker.class
...while processing com/bvcode/ncopter/widgets/NumberPicker.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker$Formatter.class
...while processing com/bvcode/ncopter/widgets/NumberPicker$Formatter.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/HUD$ScopeThread.class
...while processing com/bvcode/ncopter/widgets/HUD$ScopeThread.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/ScopeDisplay$1.class
...while processing com/bvcode/ncopter/widgets/ScopeDisplay$1.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker$NumberRangeKeyListener.class
...while processing com/bvcode/ncopter/widgets/NumberPicker$NumberRangeKeyListener.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/DoubleNumberPicker$1.class
...while processing com/bvcode/ncopter/widgets/DoubleNumberPicker$1.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPickerButton.class
...while processing com/bvcode/ncopter/widgets/NumberPickerButton.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/MinMaxCurrentSlider.class
...while processing com/bvcode/ncopter/widgets/MinMaxCurrentSlider.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/HUD.class
...while processing com/bvcode/ncopter/widgets/HUD.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/ScopeDisplay$ScaleListener.class
...while processing com/bvcode/ncopter/widgets/ScopeDisplay$ScaleListener.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/comms/DeviceListActivity.class
...while processing com/bvcode/ncopter/comms/DeviceListActivity.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/comms/DeviceListActivity$3.class
...while processing com/bvcode/ncopter/comms/DeviceListActivity$3.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/comms/DeviceListActivity$2.class
...while processing com/bvcode/ncopter/comms/DeviceListActivity$2.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/comms/DeviceListActivity$1.class
...while processing com/bvcode/ncopter/comms/DeviceListActivity$1.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker$NumberPickerInputFilter.class
...while processing com/bvcode/ncopter/widgets/NumberPicker$NumberPickerInputFilter.class
bad class file magic (cafebabe) or version (0033.0000)
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/bvcode/ncopter/widgets/NumberPicker$OnChangedListener.class
...while processing com/bvcode/ncopter/widgets/NumberPicker$OnChangedListener.class
...while parsing com/bvcode/ncopter/widgets/ScopeDisplay.class
...while processing com/bvcode/ncopter/widgets/ScopeDisplay.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$string.class
...while processing com/geeksville/andropilot/R$string.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$style.class
...while processing com/geeksville/andropilot/R$style.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$styleable.class
...while processing com/geeksville/andropilot/R$styleable.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R.class
...while processing com/geeksville/andropilot/R.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$array.class
...while processing com/geeksville/andropilot/R$array.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$layout.class
...while processing com/geeksville/andropilot/R$layout.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$xml.class
...while processing com/geeksville/andropilot/R$xml.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$menu.class
...while processing com/geeksville/andropilot/R$menu.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$id.class
...while processing com/geeksville/andropilot/R$id.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$attr.class
...while processing com/geeksville/andropilot/R$attr.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/google/android/gms/R$string.class
...while processing com/google/android/gms/R$string.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/google/android/gms/R$styleable.class
...while processing com/google/android/gms/R$styleable.class
trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/google/android/gms/R.class
...while processing com/google/android/gms/R.class
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/geeksville/andropilot/R$drawable.class
...while processing com/geeksville/andropilot/R$drawable.class
35 warnings
[info] Packaging /home/danpe/Projects/andropilot/arduleader/andropilot/target/andropilot-1.0.07.apk
[info] pkg: /data/local/tmp/andropilot-1.0.07.apk
[info] Success
[info] 3431 KB/s (1506555 bytes in 0.428s)
[info] Starting: Intent { act=android.intent.action.MAIN cmp=com.geeksville.andropilot/.gui.MainActivity }
[success] Total time: 54 s, completed Mar 9, 2013 12:00:33 AM
>
E/AndroidRuntime(26794): FATAL EXCEPTION: main
E/AndroidRuntime(26794): java.lang.NoClassDefFoundError: com.geeksville.andropilot.R$layout
E/AndroidRuntime(26794): at com.geeksville.andropilot.gui.MainActivity.onCreate(MainActivity.scala:190)
E/AndroidRuntime(26794): at android.app.Activity.performCreate(Activity.java:5104)
E/AndroidRuntime(26794): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
E/AndroidRuntime(26794): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
E/AndroidRuntime(26794): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
E/AndroidRuntime(26794): at android.app.ActivityThread.access$600(ActivityThread.java:141)
E/AndroidRuntime(26794): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
E/AndroidRuntime(26794): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(26794): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(26794): at android.app.ActivityThread.main(ActivityThread.java:5039)
E/AndroidRuntime(26794): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(26794): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(26794): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/AndroidRuntime(26794): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
E/AndroidRuntime(26794): at dalvik.system.NativeStart.main(Native Method)
Allow direct apm connection via usb. For ground testing, setup, etc.
sbt compile gets me:
[info] Updating {file:/Users/james/runtime-EclipseApplicationwithEquinoxWeaving/arduleader/}andropilot... [info] Resolving org.scala-lang#scala-library;2.10.0 ... [warn] Resource id 'param_value' mapped to android.widget.EditText and android.widget.TextView [info] Resolving org.scala-lang#scala-actors;2.10.0 ... [info] Wrote /Users/james/runtime-EclipseApplicationwithEquinoxWeaving/arduleader/andropilot/target/scala-2.10/src_managed/main/scala/com/geeksville/andropilot/TR.scala [info] Resolving google-play-services#google-play-services_2.10;0.1-SNAPSHOT ... [warn] module not found: google-play-services#google-play-services_2.10;0.1-SNAPSHOT [warn] ==== RESTPhone Nexus: tried [warn] http://localhost:8081/nexus/content/groups/public/google-play-services/google-play-services_2.10/0.1-SNAPSHOT/google-play-services_2.10-0.1-SNAPSHOT.pom [warn] ==== sonatype-snapshots: tried [warn] https://oss.sonatype.org/content/repositories/snapshots/google-play-services/google-play-services_2.10/0.1-SNAPSHOT/google-play-services_2.10-0.1-SNAPSHOT.pom [warn] ==== local: tried [warn] /Users/james/.ivy2eclipse/local/google-play-services/google-play-services_2.10/0.1-SNAPSHOT/ivys/ivy.xml [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: UNRESOLVED DEPENDENCIES :: [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: google-play-services#google-play-services_2.10;0.1-SNAPSHOT: not found [warn] :::::::::::::::::::::::::::::::::::::::::::::: [trace] Stack trace suppressed: run last andropilot/*:update for the full output. [error] (andropilot/*:update) sbt.ResolveException: unresolved dependency: google-play-services#google-play-services_2.10;0.1-SNAPSHOT: not found [error] Total time: 1 s, completed Feb 10, 2013 10:54:25 AM
As of 64266a4
My audio volume is most often low.
the easy way to adjust volume (not ring-volume) is when AndroPilot speaks - that is not too often.
It would be nice if it could set volume, -or- if it was easy to make it speak at start.
maybe loud readout of some essential data once connected ? - that would give some time to increase the volume ..
I flew today in auto mode, . between some waypoints.
the plane, (not quad but plane) symbol seems to only be updated once arriving at the positions.
I can provide tlog from this flight if it helps.
java.lang.RuntimeException: Unable to create service com.geeksville.andropilot.service.AndropilotService: java.io.IOException: Could not claim data interface.
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2366)
at android.app.ActivityThread.access$1600(ActivityThread.java:134)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1287)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4697)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.io.IOException: Could not claim data interface.
at com.hoho.android.usbserial.driver.CdcAcmSerialDriver.open(CdcAcmSerialDriver.java:73)
at com.geeksville.andropilot.service.AndroidSerial.open(AndroidSerial.scala:176)
at com.geeksville.andropilot.service.AndroidSerial.(AndroidSerial.scala:59)
at com.geeksville.andropilot.service.MavlinkAndroid$.create(MavlinkAndroid.scala:11)
at com.geeksville.andropilot.service.AndropilotService$$anonfun$serialAttached$2.apply(AndropilotService.scala:262)
at com.geeksville.andropilot.service.AndropilotService.serialAttached(AndropilotService.scala:252)
at com.geeksville.andropilot.service.AndropilotService.onCreate(AndropilotService.scala:161)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2356)
... 10 more
java.io.IOException: Could not claim data interface.
at com.hoho.android.usbserial.driver.CdcAcmSerialDriver.open(CdcAcmSerialDriver.java:73)
at com.geeksville.andropilot.service.AndroidSerial.open(AndroidSerial.scala:176)
at com.geeksville.andropilot.service.AndroidSerial.(AndroidSerial.scala:59)
at com.geeksville.andropilot.service.MavlinkAndroid$.create(MavlinkAndroid.scala:11)
at com.geeksville.andropilot.service.AndropilotService$$anonfun$serialAttached$2.apply(AndropilotService.scala:262)
at com.geeksville.andropilot.service.AndropilotService.serialAttached(AndropilotService.scala:252)
at com.geeksville.andropilot.service.AndropilotService.onCreate(AndropilotService.scala:161)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2356)
at android.app.ActivityThread.access$1600(ActivityThread.java:134)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1287)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4697)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
at dalvik.system.NativeStart.main(Native Method)
Add firmware management for direct connected devices.
Very low importance.
Hi Kevin,
Amazing project.
Now I'm testing it and I've found some issues. First, the hardware used:
APM1 with firmware V2.68 (ARDUPLANE)
Modem RFD900
Samsung Galaxy S3 with android 4.1.1
I can connect with the airplane, show its position when getting a GPS Fix, see HUD's movements and see RF channels values. The issues I've found are:
Thats it.
Marcos Souza
Press and hold on the map starts a guided flight, please add some logic to add safety - like "if distance" to new target >200m then ask for confirmation.
subject says it all :)
you want complete logging, avoid lost parts of log due to sleep.
Kevin,
I tried across 4 APM 2.5s on different craft with 1.30. Versions from 2.6 through 2.9.1 and I am getting no data out of the 3DR Telemtry. The plane turns Blue, but does not lock into home position, I get no updates and the Vehicle Overview is black and the "looking for vehicle" has no updates. I have validated that all 4 work perfect at the proper baud rate with Mission Planner and when I back install 1.27 it works to give me data again although 1.27 was limited in what we could do. The param screen sometimes it just shows a Circle and nothing ever comes up, other times it shows partial params, with alot of the with ? marks....When I click on the plane icon I get only Alt 137m showing, so I am not receiving the other data I did in 1.27 like battery voltage etc...when I click on the plane icon. Let me know if this is just me or something that needs troubleshooting, happy to help solve this. Very eager to get 1.30 running I have some live tests I wanted to do with it and make some videos walking through it.
1/22/2013 0:00:22,493e83df-d179-4da2-b93d-f9fed1bd57aa,9,0.1.9,com.geeksville.andropilot,/data/data/com.geeksville.andropilot/files,GT-P7510,samsung,GT-P7510,3.2,"BOARD=GT-P7510
BOOTLOADER=P7500XXKJ2
BRAND=samsung
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
DEVICE=GT-P7510
DISPLAY=HTJ85B
FINGERPRINT=samsung/GT-P7510/GT-P7510:3.2/HTJ85B/XWKL1:user/release-keys
HARDWARE=p3
HOST=DELL85
ID=HTJ85B
MANUFACTURER=samsung
MODEL=GT-P7510
PRODUCT=GT-P7510
RADIO=unknown
SERIAL=C4F12D20CD89A2F
TAGS=release-keys
TIME=1323235728000
TYPE=user
UNKNOWN=unknown
USER=root
",14080704512,13791928320,,,"java.lang.RuntimeException: Unable to start activity ComponentInfo{com.geeksville.andropilot/com.geeksville.andropilot.MainActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1818)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1834)
at android.app.ActivityThread.access$500(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1027)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4126)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:688)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:724)
at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
at android.view.LayoutInflater.inflate(LayoutInflater.java:391)
at android.view.LayoutInflater.inflate(LayoutInflater.java:347)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:256)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1782)
... 11 more
Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7f030009
at android.content.res.Resources.getText(Resources.java:238)
at android.content.res.Resources.getString(Resources.java:322)
at com.google.android.gms.common.GooglePlayServicesUtil.b(Unknown Source)
at com.google.android.gms.internal.d.a(Unknown Source)
at com.google.android.gms.internal.d.onCreateView(Unknown Source)
at com.google.android.gms.maps.MapFragment.onCreateView(Unknown Source)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:754)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:956)
at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1035)
at android.app.Activity.onCreateView(Activity.java:4177)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:664)
... 18 more
android.view.InflateException: Binary XML file line #6: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:688)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:724)
at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
at android.view.LayoutInflater.inflate(LayoutInflater.java:391)
at android.view.LayoutInflater.inflate(LayoutInflater.java:347)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:256)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1782)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1834)
at android.app.ActivityThread.access$500(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1027)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4126)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7f030009
at android.content.res.Resources.getText(Resources.java:238)
at android.content.res.Resources.getString(Resources.java:322)
at com.google.android.gms.common.GooglePlayServicesUtil.b(Unknown Source)
at com.google.android.gms.internal.d.a(Unknown Source)
at com.google.android.gms.internal.d.onCreateView(Unknown Source)
at com.google.android.gms.maps.MapFragment.onCreateView(Unknown Source)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:754)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:956)
at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1035)
at android.app.Activity.onCreateView(Activity.java:4177)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:664)
... 18 more
android.content.res.Resources$NotFoundException: String resource ID #0x7f030009
at android.content.res.Resources.getText(Resources.java:238)
at android.content.res.Resources.getString(Resources.java:322)
at com.google.android.gms.common.GooglePlayServicesUtil.b(Unknown Source)
at com.google.android.gms.internal.d.a(Unknown Source)
at com.google.android.gms.internal.d.onCreateView(Unknown Source)
at com.google.android.gms.maps.MapFragment.onCreateView(Unknown Source)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:754)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:956)
at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1035)
at android.app.Activity.onCreateView(Activity.java:4177)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:664)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:724)
at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
at android.view.LayoutInflater.inflate(LayoutInflater.java:391)
at android.view.LayoutInflater.inflate(LayoutInflater.java:347)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:256)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1782)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1834)
at android.app.ActivityThread.access$500(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1027)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4126)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
","locale=nl_NL
compatScreenHeightDp=320
compatScreenWidthDp=545
compatSmallestScreenWidthDp=320
fontScale=1.0
hardKeyboardHidden=HARDKEYBOARDHIDDEN_YES
keyboard=KEYBOARD_NOKEYS
keyboardHidden=KEYBOARDHIDDEN_NO
FlipFont=0
mcc=0
mnc=0
navigation=NAVIGATION_NONAV
navigationHidden=NAVIGATIONHIDDEN_YES
orientation=ORIENTATION_LANDSCAPE
screenHeightDp=752
screenLayout=SCREENLAYOUT_SIZE_XLARGE+SCREENLAYOUT_LONG_NO
screenWidthDp=1280
seq=4
smallestScreenWidthDp=800
touchscreen=TOUCHSCREEN_FINGER
uiMode=UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO
userSetLocale=false
","locale=nl_NL
compatScreenHeightDp=320
compatScreenWidthDp=545
compatSmallestScreenWidthDp=320
fontScale=1.0
hardKeyboardHidden=HARDKEYBOARDHIDDEN_YES
keyboard=KEYBOARD_NOKEYS
keyboardHidden=KEYBOARDHIDDEN_NO
FlipFont=0
mcc=0
mnc=0
navigation=NAVIGATION_NONAV
navigationHidden=NAVIGATIONHIDDEN_YES
orientation=ORIENTATION_LANDSCAPE
screenHeightDp=752
screenLayout=SCREENLAYOUT_SIZE_XLARGE+SCREENLAYOUT_LONG_NO
screenWidthDp=1280
seq=4
smallestScreenWidthDp=800
touchscreen=TOUCHSCREEN_FINGER
uiMode=UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO
userSetLocale=false
","width=1280
height=752
pixelFormat=1
refreshRate=60.0fps
metrics.density=x1.0
metrics.scaledDensity=x1.0
metrics.widthPixels=1280
metrics.heightPixels=752
metrics.xdpi=149.82489
metrics.ydpi=150.51852",,N/A,2013-01-22T09:59:28.000+00:00,2013-01-22T09:59:28.000+00:00,"Applications Memory Usage (kB):
Uptime: 1231452 Realtime: 1400728
** MEMINFO in pid 3737 [com.geeksville.andropilot] **
native dalvik other total
size: 3124 6791 N/A 9915
allocated: 3123 6521 N/A 9644
free: 0 270 N/A 270
(Pss): 552 1570 4686 6808
(shared dirty): 972 2044 7732 10748
(priv dirty): 532 236 4084 4852
Objects
Views: 2 ViewRoots: 0
AppContexts: 2 Activities: 1
Assets: 3 AssetManagers: 3
Local Binders: 1 Proxy Binders: 6
Death Recipients: 0
OpenSSL Sockets: 0
SQL
heap: 0 MEMORY_USED: 0
PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0
Hi Kevin,
This looks like fantastic work and we can't wait to start using it, but somehow I was not yet able to get any reponse yet.
I do not have an APM but another MavLink autopilot (ardrone, https://github.com/mavlink/mavlink-ivy-interface, ...) so that is probably the reason. On all platforms I'm sending the same mavlink1.0 heartbeat, attitude, sys_status, global_position_int, param_value_pack at 1Hz, either over UDP:14550 or over FTDI232 cable@57600.
When I connect that to QGroundcontrol or even APM Planner Mav 1.0 I get position and attitude shown both with the UDP and serial connection.
When I connect AndroPilot (tried 0.1.10 and 0.1.28 to 0.1.35) on an Android 4.2 Samsung Nexus, I apparently get data since the logfile is not empty (included below) but the screen shows nothing (also included below). Moreover, in UDP mode the autopilot receives heartbeats from the phone: sysid=253. When I connect the FTDI cable, I see a message: 3DR Telemetry Connected. When unplugging the FTDI, it used to freeze+autoreboot the phone but 0.1.35 does not have that anymore. (I often can not close the app with the Back key though)
Any wild guess what might be going on? Or can you point me to the code where mavlink messages are being parsed? Who is sysid253, Isn't the Gcs sysid255? Is there some infinite while loop somewhere (getting parameters/waypoints which I don't have) or something like that?
Attachments:
http://www.diydrones.com/forum/attachment/download?id=705844%3AUploadedFile%3A1118869
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=http://play.google.com/store/apps/details?id=com.google.android.gms flg=0x80000 pkg=com.android.vending }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
at android.app.Activity.startActivityForResult(Activity.java:3370)
at android.app.Activity.startActivityForResult(Activity.java:3331)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:817)
at android.app.Activity.startActivity(Activity.java:3566)
at android.app.Activity.startActivity(Activity.java:3534)
at com.google.android.gms.internal.d$2.onClick(Unknown Source)
at android.view.View.performClick(View.java:4204)
at android.view.View$PerformClick.run(View.java:17355)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5195)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at dalvik.system.NativeStart.main(Native Method)
Im using Andropilot, version 1.1.00 on Samsung Galaxy Note 10.1 tablet with Android 4.1.2. When APM 2.5 is connected even if directly via USB cable or via 3DR telemetry, data are received from APM to Andropilot, (and shown in vehicle overview), but HUD remains frozen. What am I doing wrong?
ava.util.NoSuchElementException: None.get
at scala.None$.get(Option.scala:313)
at scala.None$.get(Option.scala:311)
at com.geeksville.andropilot.MyMapFragment.map(MyMapFragment.scala:34)
at com.geeksville.andropilot.MyMapFragment.onServiceConnected(MyMapFragment.scala:47)
at com.geeksville.andropilot.AndroServiceClient$$anon$1.onServiceConnected(AndroServiceClient.scala:76)
at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1097)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1114)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4899)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
at dalvik.system.NativeStart.main(Native Method)
Please add option to display most essential instruments over the map.
It seems like Andropilot is displaying all altitudes as AMSL.
My VLOS/BLOS license will always limit me - and many others- to altitude AGL.
most missions are VLOS, - meaning the most important altitude for me, is the altitude relative to the start point.
Please add option to make barometric altitude during arming, be "0" , so everything displayed is relative to that.
Log file from my Andropilot : https://docs.google.com/file/d/0B9Rr1JTp37U9bDA1cnNhcnhkNHM/edit?usp=sharing
All takeoffs and landing are done in stabilize mode - some flying is done in Loiter mode, and RTL is tested (these mode changes are set from transmitter)
Problem: selecting Auto, RTL (and possibly other) mode from droplist in upper right corner, does nothing.
Hi Kevin,
I just noticed the HEARTBEAT messages that andropilot is putting in the log from itself has type=16, which is MAV_TYPE_FLAPPING_WING. Quite funny really!
It should be type=6, which is MAV_TYPE_GCS, otherwise various mavlink log tools think they are seeing a mode change on every heartbeat packet, which breaks analysing log files.
It should also set HEARTBEAT.autopilot=8 (for MAV_AUTOPILOT_INVALID).
Cheers, Tridge
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.geeksville.andropilot/com.geeksville.andropilot.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2182)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2207)
at android.app.ActivityThread.access$600(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4899)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.geeksville.andropilot.MainActivity$$anonfun$onCreate$3.apply(MainActivity.scala:167)
at com.geeksville.andropilot.MainActivity$$anonfun$onCreate$3.apply(MainActivity.scala:154)
at scala.Option.map(Option.scala:145)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:154)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2136)
... 11 more
java.lang.NullPointerException
at com.geeksville.andropilot.MainActivity$$anonfun$onCreate$3.apply(MainActivity.scala:167)
at com.geeksville.andropilot.MainActivity$$anonfun$onCreate$3.apply(MainActivity.scala:154)
at scala.Option.map(Option.scala:145)
at com.geeksville.andropilot.MainActivity.onCreate(MainActivity.scala:154)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2136)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2207)
at android.app.ActivityThread.access$600(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4899)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
at dalvik.system.NativeStart.main(Native Method)
when starting the app, the aircraft is placed in the sea by africa, even when my GPS gets fix, (indicated by LED, not 100% sure of the quality of the fix) - the aircraft is still outside africe.
(see tlogs in mail from Andre)
It was very fine, if you can change the PID-settings for arducopter. There are many settings, who I want to change on airfield... ;-)
It will be a greate thing when you can implement a Follow Me system like here:
http://diydrones.com/profiles/blogs/having-fun-with-followme?xg_source=activity
when one can using the gps from the smartphone to let the copter follow it.
Best regards from germany!(sorry for my english)
All connected perfectly
Connected directly to the flight controller and also via 913mhz telemetry .
However is my issue once connected the data take forever to be updated to the andropilot app No maps no hub ( running the latest version
More details
Running app on a cubieboard ( http://cubieboard.org/ ) and odroid-x2( http://www.hardkernel.com/renewal_2011/products/prdt_info.php?g_code=G135235611947 ) both boards have the speed to run this app however something is wrong.
You can email me at stuartsja at gmail com and I will provide more details
I think what you are doing is the way to go especially with these development board the can make great ground stations
Turning on Udp recieve causes application force close.
Steps taken:
Turn on Udp recieve and turn off Udp forward.
Very impressive app Kevin!
I've been testing it against a SITL version of ArduPlane, usnig mavproxy to forward packets over a 3DR radio so I can test the full capabilities at home. A couple of things stand out as possible improvements:
speech output for key events. I find the main thing I use my ground station for while flying is the speech output, as I like to keep my eyes on the aircraft. The key things are "mode XXX", "height XXX" (every 10 meters is good), "battery XX%" (every 10% is good), and optionally airspeed. Is there a nice android text to speech lib that could be used for this? Perhaps with a set of dialogs to enable/disable?
height above ground, not above sea-level. The best message to use for relative height is GLOBAL_POSITION_INT.relative_alt*0.001 (to get it in meters). It would be even better to use a cached version of SRTM data to get the true AGL height, by querying SRTM for the terrain height. That is how mavproxy displays correct AGL altitude (see https://github.com/tridge/MAVProxy/blob/master/modules/mavproxy_map...)
a way to pre-cache the map tiles for an area, so it will work with no network access at the field. I ended up doing my own slipmap implementation for mavproxy to get this (see https://github.com/tridge/MAVProxy/blob/master/modules/mavproxy_map...)
a button to enable/disable following the planes location on the map
a menu to load/save the waypoints to local files.
a menu to load/save/display the geofence
There also seems to be a bug that causes the aircraft position to lag the true position by quite a long way. Perhaps there is a buffering problem on the mavlink connection to the radio? Are you assuming a stream rate, or just reading messages as fast as they come in?
Overall this is a great app though - I had planned on porting MAVProxy to android, but I think it may be better for me to learn a bit of Java coding and submit some patches for your app.
Thanks!
Thanks!
re: speech
Yes there is - in fact it uses the cool google speach stuff from maps so it even gets inflection right...
Good idea & easy to add
Re: height above ground
Good point
Re: precaching
Not allowed with the google maps client (the embedded version doesn't support precache yet). There is an android version of OSM - if someone wants to add it I'd happily accept a PR/help with questions. I might add it someday but probably not that soon...
Re: follow plane
Yep easy to add & a good idea
Re: save/load waypoints
Easy to add. Is there a 'standard' suffix for mavlink waypoint files (so I can have my app register with android that I handle those files - really sexy for opening email attachments or links on the web)
Likewise, is there a standard suffix for param files?
Re: Geofence
Good idea
More suggestions which the MP doesn't have yet:
announce and display a failsafe condition,
announce arming and disarming.
curretly it is doing 64 byte reads (max), we want more like 512. This should allow us to move up from the current 72 packets a sec to more like the 200 packets a sec on direct connect
Request for Andropilot to report vehicle altitude in AGL not MSL/ASL
"Manual" mode, would, if possible to apply - result in instant crash.
When detecting an arducopter, please display proper modes:
http://code.google.com/p/arducopter/wiki/AC2_ModeSwitch
java.lang.IllegalStateException: Content view not yet created
at android.support.v4.app.ListFragment.ensureList(ListFragment.java:328)
at android.support.v4.app.ListFragment.getListView(ListFragment.java:222)
at com.geeksville.andropilot.gui.WaypointListFragment.com$geeksville$andropilot$gui$WaypointListFragment$$handleWaypoints(WaypointListFragement.scala:136)
at com.geeksville.andropilot.gui.WaypointListFragment$$anonfun$onVehicleReceive$1$$anonfun$applyOrElse$1.apply(WaypointListFragement.scala:128)
at com.geeksville.andropilot.gui.WaypointListFragment$$anonfun$onVehicleReceive$1$$anonfun$applyOrElse$1.apply(WaypointListFragement.scala:128)
at com.geeksville.util.ThreadTools$$anon$1.run(ThreadTools.scala:11)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4514)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
test against an apm2.5 to see if it has the same issues
When telemetry is lost- display last coordinates/heading/altitude and time in the map.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.