Comments (8)
Hi, first of all thanks for your comments. I know it's more a case study as a feature implementation until now.
I totally agree with you Arnaud roll/pitch and yaw should both controlled by the sensor because split controlling (yaw by the joystick) is not so intuitively and not ergonomically.
I'm not sure if it's possible to reduce the delay because the sensor polling is already set to max update rate.
However, in my opinion it's a good way to control the CF for beginners, in the future!
Because the feedback is naturally, if the response is with min delay.
I will take a look on the yaw controlling in one of the custom CF FW. I think some work with the gyro is already done there and i would include a parameter 0-360° Yaw to sync the yaw in the CF FW.
And yes the orientation of the Android Device could be set to zero at lift off for better handling.
Original Comment By: Sascha Heymann
from crazyflie-android-client.
Agreed, with the yaw controlled by the joystick it already permits to get a good feeling of the sensor control. One thing that could be nice is if the 0 of pitch/roll would be taken when the thrust starts to be operated. That would allow to use it with the phone inclined and to always take-off flat.
Original Comment By: Arnaud Taffanel
from crazyflie-android-client.
I'd did some tests with the sensors as well, but wasn't completely satisfied yet. Still needs more testing. I think we should concentrate on roll and pitch first and add yaw later.
Original Comment By: @fredg02
from crazyflie-android-client.
I tested further and the pitch-roll is actually working fine but I still get problems with the Yaw that quickly starts to drift a lot.
The version with Yaw on the phone is impossible to get used to :-). If the CF yaw would be sync with the phone that could be really great! but that would certainly require an absolute control of the yaw in the Crazyflie, we have to think about adding that to the firmware ....
Original Comment By: Arnaud Taffanel
from crazyflie-android-client.
I tested with Nexus 7 and GalaxyNexus and I have some dificulty flying: the yaw is not stable at all and the pitch/roll seems delayed. I tested the roll/pitch version. I will investigate and test more later today.
Original Comment By: Arnaud Taffanel
from crazyflie-android-client.
I have tried some things and there are my impressions:
- to control the CF by phone motion sensor for roll and pitch works great (download roll/pitch APK)
- I also add that the yaw motion of the phone control the yaw of the CF (donload APK with YAW feature, DEV!)
- The yaw feature is very tricky and at the moment not 100% safe, but this way to fly the CF is really awesome. After a couple of minutes it is so naturally to control the CF, that you forget that you controlling it. And one hand control is also possible!
- In mode 1 the left (yaw) screen pad can be used to set a yaw offset correction during flight because with the yaw feature the movement (yaw) of the user is a problem. The yaw offset is also set to zero every lift off.
- Thrust controlling by motion is in my opinion to hard to do and not useful. The problems are oscillation, noise of the height of the phone, counter for thrust up+/down- (accelerometer)
- TODO: Change yaw sensor from "TYPE_ORIENTATION" (0-360°) to "TYPE_LINEAR_ACCELERATION" with a counter left-/right+
- TODO: use the CF gyro sensor to sync it with the phone orientation (yaw).
RFC I'm happy for some comments :)
Happy testing!
DISCLAIMER: (http://wiki.bitcraze.se/projects:crazyflie:safety)
Original Comment By: Sascha Heymann
from crazyflie-android-client.
I'm working on that feature! And there is a first running version in my repo (see here).
If you chose (fly) Mode 1 than it is possible to control roll and pitch of the CF with the phone motion sensors. Thrust and yaw via onscreen joysticks. Zero level for roll/pitch is screen facing up.
BTW: I'm really impressed how fast the response is and almost without latency. Much more controllable than with the onscreen Pads.
Original Comment By: Sascha Heymann
from crazyflie-android-client.
Roll and pitch control through gyroscope sensors has been implemented in release playstore0.1 . Thanks to @pappz for his pull request.
Useful yaw control would be quite difficult to implement and should be handled in a separate issue.
from crazyflie-android-client.
Related Issues (20)
- NullPointerException in se.bitcraze.crazyflie.lib.BleLink$SendBlePacket.run
- LogConfig should not allow to add the same log variable twice
- NPE in MainActivity.updateRollTrim HOT 1
- Remove compatibility with CF1 (especially tests)
- NPE in BleLink$SendBlePacket.run
- Dark theme
- Screen orientation should be locked while being connected
- Show info in Crazyradio connections settings, when not connected
- Improve UX when Crazyflie is not found
- Improve visual layout of action buttons for LED ring and buzzer
- Improve connection process (show progress dialog)
- Fix issue with Android Pie (9) where screen rotates back and forth when going through settings
- Support new logging and param API
- Platform is displayed as "Unknown" in bootloader page HOT 3
- Oreo adaptive icon shape HOT 1
- Enable firmware flashing over the air using BLE instead of just Crazyradio PA HOT 2
- Implement Assisted mode control. HOT 3
- Update Android target API level to 33 HOT 1
- RFC: Convert the project to Kotlin?
- Latest parameters structure doesn't work anymore
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from crazyflie-android-client.