dronekit / dronekit-android Goto Github PK
View Code? Open in Web Editor NEWAndroid DroneKit implementation
Home Page: http://android.dronekit.io/
Android DroneKit implementation
Home Page: http://android.dronekit.io/
On my Galaxy tablet they are currently stored in \Android\data\org.droidplanner.services.android\files\tlogs\org.droidplanner.android\ it would be nice to change that so they are written to my SD Card instead.
java.lang.NullpointerException
at
org.droidplanner.core.gcs.roi.ROIEstimator.updateRIO(ROIEstimator.java:90)
at
org.droidplanner.core.gcs.roi.ROIEstimator$1.run(ROIEstimattor.java:30)
at
...
using version 1.2.9
Clicking the "learn more" button links to here
i have been trying and failing to get the Client library working in Eclipse.
Eclipse doesn't like AAR files, so I have been extracting the contents, but in the latest DroneKit this gives missing references.
It appears that the AidlLib.jar is the problem. It has grown from about 500K to 2.5MB and seems to have an AndroidManifest as well as the Android Support compatibility library.
I thought I could try building a client library in AndroidStudio, but even this is a problem as it doesn't like the AidlLib.jar due to the support lib and manifest.
I tried removing the Android compatibility lib from my Studio test app and it still fails with the manifest:
Error:duplicate files during packaging of APK /Users/shawn/AndroidStudioProjects/dronekit/app/build/outputs/apk/app-debug-unaligned.apk
Path in archive: AndroidManifest.xml
Origin 1: /Users/shawn/AndroidStudioProjects/dronekit/app/build/intermediates/resources/resources-debug.ap_
Origin 2: /Users/shawn/AndroidStudioProjects/dronekit/app/build/intermediates/exploded-aar/com.o3dr/dronekit-android/2.2.19/libs/AidlLib.jar
You can ignore those files in your build.gradle:
android {
packagingOptions {
exclude 'AndroidManifest.xml'
}
}
Now I could continue trying to get this to work, but I think the AidlLib.jar build is just not right, as it was just classes before.
Here I will list tutorials that would definitely benefit to all users of 3DRServices and are currently missing:
Will the ClientLib support RcOutput ?
Sending a new value for a parameter to the vehicle should invalidate the cached list of parameters.
If you connect 3DR Radio to your phone/tablet, but copter is not in range, and after that try to connect 2 times via USB, first try will fail (as it should be), but second will succeed. This error is cyclic e.g. if you disconnect, then connect again first attempt will fail, second will succeed and so on.
Also, if you unplug 3DR Radio when connection is established, AttributeEvent.STATE_DISCONNECTED will occur. But after fake connection described above is established, unplugging creates NPE MavLinkConnection.java:232.
https://github.com/DroidPlanner/DroneKit-Android/blob/develop/README.md could be improved.
Better readme files to use as examples:
https://github.com/spree/spree
https://github.com/rails/rails
https://github.com/typicode/json-server
https://github.com/facebook/PathPicker
Tlog is currently logged as soon as the app is connected to the vehicle.
Change it to start logging when the copter is armed, and stop when the copter is disarmed.
Please expose also the Follow Type "HeadingAngle" (which seems to be the generic function to Follow_Left, Follow_Right, Follow_Lead) together with a function to set the angle to the 3DRService interface. In my app I would like to set a certain heading angle, e.g. 45°.
Add the option to join the beta testing group in the mailing list.
FYI some confusion from this user on getting SITL set up: http://android.dronekit.io/getting_started.html#setting-up-sitl-on-linux
From user (to Phu):
"I think if the steps you listed above were included in http://android.dronekit.io/getting_started.html#setting-up-sitl-on-linux, it would clear up most of the confusion. There are some instructions on setting up SITL in those docs, but more guidance would certainly be helpful. The missing part for me was that I didn't know I had to connect using UDP in Tower."
The instructions that were provided additionally:
"UDP is the default type for Mavlink messages to get through.
Have you tried running SITL with an explicit --out IP address?
Steps: Connect your SITL machine and your Nexus to the same Wi-FI network.
Navigate to ardupilot/ArduCopter
Run:
sim_vehicle.sh -L 3DRBerkeley --console --out <MOBILE_DEVICE_IP>:14550
This says: run SITL with a default location of 3DRBerkeley and pip it out to MOBILE_DEVICE_IP.
Then on your Nexus, use a UDP connection, no need to specify the IP of vehicle.
"
Hi all, the repo is being renamed from 3DRServices
to DroneKit-Android
.
Given github nice toolkit, the update should be transparent to all devs/users. However don't hesitate to let me know if you experiences issues with the renamed git repo.
Thanks!
When MAVLINK_MSG_ID_STATUSTEXT is received, 3DRServices simply brings its message to developer.
Instead, it would be useful for developer to get PreArm, Arm etc. errors reasons by enum, thus omitting parsing step.
my camera profile stored under droidplanner camerainfo are not listed in structure scanner or survey. i also try to crate a new dir called camera_info. but the same problem camera xml files which are in this dirs will not loaded. i use the latest version from google play and an samsung galaxy s3 phone
Please allow negative values for setGuidedAltitude, on version 1.2.8 it seems to be limited to 2m for copter. I want to use it in the mountains during a descent with negative altitude (to arming) up to at least 1000m.
It seems that in version 1.2.8 the ROI altitude for normal FollowMe (not guided scan) seems to be fixed to 0 meters. It would be nice to have a function to set the ROI altitude during FollowMe, like the function setGuidedAltitude(double altitude) just for ROI.
Autopilot component id is 1
. Any other component id should be ignored, or specifically white-listed.
It is not normal to also upload the built HTML in the same tree - is this intentional?
Propose changes:
The documentation for DroneKit says to use the client library via:
compile 'com.o3dr:dronekit-android:2.2.+'
But the only libraries on http://jcenter.bintray.com/com/o3dr/ are 3dr-services-lib.
I have tried a local build of dronekit but that ends up with missing com.o3dr.android.client imports for ControlTower, Drone etc. although com.o3dr.services.android.lib imports are OK.
Admittedly I am trying to extract the AAR to use it in Eclipse, but this was working for the 3DR Services Lib.
Check as mentioned above, or require an app name (or package name) tag for successful api connection.
Refractor classes and documentation to reflect the name change from droneapi to DroneKit.
The guide is available @ https://droidplanner.github.io/3DRServices/.
The source code for the documentation is available under the documentation branch.
Add the option to join the beta testing.
The right javadocs link should be http://android.dronekit.io/javadoc/ there are some references left to the github docs can we replace those please?
When sending a msg_command_long
, the autopilot will reply with a msg_command_ack
response.
Listen to the response to figure out if the command was successful.
For dp-pebble I was hoping to wait for the user to connect using droidplanner. Then once the user connected, dp-pebble would automatically get connected as well.
Something that would allow me to call drone.connectExisting()
Copy and update the documentation support from DroneKit-Python. This includes the vagrantfile to automate docs building and a contribution page.
@ne0fhyk - I have assigned to you for the vagrantfile updates (chase @mrpollo for any help needed). When those are complete please re-assign to me and I will add/update the contributing page. OK?
I tried sending raw Mavlink message via Drone.sendMavlinkMessage(). Copter doesn't react. Tried ARM and RC_OVERRIDE messages
Reason:
sendMavlinkMessage() under the hood sets sysId and compId, but target_system and target_component are left blank
Quickfix: set target_system = 1 of your Mavlink message
"Look at Me" mode, which is just the ROI portion of Follow Me with a stationary position.
http://android.dronekit.io/ or index.rst
The second paragraph should be swapped with the last paragraph (is "least important" information for developers)
The word "guide" in the second paragraph isn't quite right because it implies "instructions" rather than "listing"
The guide to apps built with DroneKit can be found
on the Google Play Store under the name: 3DR Services.
Catalog (or even listing) would be better. So:
The catalog of apps built with DroneKit can be found
on the Google Play Store under the name: 3DR Services.
or
A catalog of all DroneKit apps on the Google Play Store can be found in 3DR Services.
Currently, only warnings and failsafes are available through the SDK.
E.g. read/write gimbals roll, pitch, yaw via Mavlink message (radio output is not a clean design).
Additionally, add option to control copters yaw (for example, if gimbal is 2-axis)
Per guide, one needs to listen to onStart/onStop events and disconnect during onStop. However, when configuration changes, onStop is called, so that drone is disconnected, while app still requires connection to drone. From user perspective it could be loss of drone control from, say, orientation change.
Reconnecting is not good idea, because drone could be in-flight, and sudden disconnect might cause a failsafe.
Sphinx doesn't care what underline characters you use to mark up headings, as long as they are longer than the preceding text.
However it is usually easier to read and edit the markup if you use the following underline markup pattern for the different levels and have a space before the heading (except for title)
================
Document Title
================
A first level heading
=====================
A second level heading
----------------------------------------
etc
This is because = is the easiest character for your eye to scan as a heading line.
When attempt to connect to drone via USB fails, onDroneConnectionFailed(ConnectionResult connectionResult) is called. When you try connectionResult.getErrorCode(), you always get zero.
It would be useful for developers to know why connection failed with error code.
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.