Comments (7)
sounds good -- we can make a little 3d render on that -- perhaps a separate alignment tab -- that moves with the settings -- then no additional manual needed. let's close this one and we can open another on improved board alignment setter or something similar.
from headtracker.
Second note: all rotations should be switched to quaternions, to prevent possible gimbal lock situations. A Euler->Quaternion converter can be shown in the GUI, but internally everything is quaternions.
from headtracker.
ok, for the first step, let's consider a new orientation -- how about this:
- assume the board is a vehicle oriented like this:
- with the board flat (flat on the table, components up)
- and with the usb connector facing forward
- then +x is 'forward', and roll right should be 'increase in ppm'
- then +y is 'left' and tilt down should 'increase in ppm'
- and +z is 'up', and pan left should 'increase in ppm'
then for orientation, an example:
if we install the board on the right side of DJI with connector facing back we would translate like this:
- X -90 -- this rolls device with components facing DJI first
- Y +170 -- this then flips the device around for the mount. note this isn't perfectly 180 as the side of the headset is slightly inward panned
- Z 0 -- device is still horizontal
@dlktdr can you check my math here?
from headtracker.
With that reference frame which is ENU, here is what I come up with. All assuming we keep the same order of operations x-> y-> z
Red X
Green Y
Blue Z
I'm not sure but I don't think this was your intention?
from headtracker.
Ok, I see the difference -- in my case, I performed the xyz rotation according to the board axis, not a global axis. If this should be performed according to global, then does this look like the rotation?
x +90
y +180
z +10
from headtracker.
Ahh.. Yes those rotation values make sense.
from headtracker.
Been thinking about this, and after a bit of discussion on discord. I think we should keep with the current sensor orientation and labelling of the tilt, roll, pan outputs. As long as the frame stays right handed which is a must from IMU sensor, the board rotation option will take care of all mounting possibilities after that.
Both NED and ENU standards have the X axis pointing forward. As it's currently setup in the code/labelling Y points forward. If we follow the standard convention ENU or NED of a tilt/pitch is a rotation in X, then the standard Euler is only going to have a range of +/-90, which isn't ideal as @kobelev-tech brought up.
So I think the ideal situation is keep the current right handed orientation from the sensors, and the current labelling that Tilt is a rotation in X, Roll is a Rotation in Y and pan a Rotation in Z.
Might not be a standard, but can make a drawing and have something to reference if required. Also no code changes or new videos required :)
Eventually remove that pesky board orientation and have it rotate the IMU output with a few snapshots during calibration. e.g. Hold Level, push button, Look Up push button, Look Down, push button. From which we can determine the world frame from, Or (Hold Level, Look Left, Look Right) This is actually completed in Pauls code #124, just needs to be implemented in the GUI and tested.
from headtracker.
Related Issues (20)
- Use adafruit uf2 bootloader for nrf52 board? HOT 1
- Multiple boards and flashing updates
- Re-programming a Receiver as a Transmitter Happymodel EP2 HOT 9
- Possibility to have 16 channel over Bluetooth HOT 2
- Re-center using bluetooth HOT 2
- Not Working on DX8 g2 HOT 8
- ELRS Backpack wireless headtracker function support HOT 8
- Unable to open bossac_mac HOT 4
- Win32 app HOT 1
- PPM input not working on a Futaba 8FG HOT 1
- Futaba 8FG - PPM - can't use channel after 8 HOT 8
- (Un)plugging the USB plug on DTQSYS board affects the channel output range. HOT 1
- only short bluetooth connection HOT 2
- ABX00069Drift problems HOT 3
- support for the BLE33 IOT nano HOT 1
- Windows 11 support HOT 2
- No IMU output on nano 33 BLE Rev2 with fw 2.2 HOT 8
- arduino nano 33 ble FW 2.21 resetting periodically all 35seconds HOT 2
- arduino nano 33 ble FW 2_3pre no BLE connection possible HOT 1
- arduino nano 33 ble FW 2_4pre no BLE connection possible, but gets deleted with reboot HOT 16
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 headtracker.