Hi DevX,
could you please put in rewasd the described "swap roll and yaw" mode?
I also want to play in this type of manner.
Maybe you can put in a filter that works similar to using the accelerometer for correction, because the user (at least averaged over time) normally directs the controller towards the same direction. If the user changes his playing position, reseting could also be an option.
Or just discard very small (produced by drift) yaw numbers?
Thanks!
Best regards
Tom
Announcement
Collapse
No announcement yet.
I can't swap the yaw and roll axes on a Joy-Con controller.
Collapse
X
-
Thank you so much for this explanation! I get it now and the difference between Gyro and Tilt mode.Originally Posted by DevX View Post> but this also does not make sense to me in that I don't see why this still does not allow Yaw to be used in the horizontal position of the JoyCon in Tilt mode, when it does in Gyro mode
Please reread what we posted above about how Tilt operates, lack of magnetometer etc.
All gamepads have 6-axis IMUs, which contain 3-axis accelerometer and 3-axis gyroscope and they are used for quite different things.
Tilt or Gyro are absolutely different modes in reWASD.
-----------
Gyro mode measures rotation SPEED, i.e. how fast angle changes, but it does not care about ANGLE itself.
When you stop rotating your device gyro output will stop too, so it works similar to mouse.
It works on all 3 gyroscope axis and in any device orientation. It does not need accelerometer or magnetometer, because gyroscope measurements are relative to device itself.
That is why you can map any gyro axis in reWASD to mouse and swap them as you like.
The drawback of gyro is that it is subject to drift with time, but this is not so critical for mouse mapping as you can adjust deadzone etc.
----------
Tilt is more complex mode as it measures actual resulting rotation ANGLE but does not care about its SPEED.
When you stop rotating your device tilt output will NOT stop, but will show you the resulting accumulated ANGLE starting from some reference point.
So it works similar to stick, not mouse.
And Reset Tilt command on your profile does just that - it remembers current gamepad orientation and uses it as reference point for future measurements.
To calculate tilt reWASD uses both gyroscope (to calculate angle deltas) and accelerometer (for angle correction in case of gyro drift). This is called sensor fusion.
It is more advanced operating mode but it cannot work on all 3-axes, because vertical axis (yaw relative to user) cannot be corrected by accelerometer.
And, as device has no magnetometer, the resulting angle will drift periodically and will not be precise. It will be like "bad stick".
That is why Tilt mode uses 2 axis only, which are perpendicular to gravity, and vertical axis is not usable.
As sad earlier, we can try to add it in future, so you can map this ANGLE as well, but with some compromises.
----------
I hope the above explanation helps.
- Flag
Leave a comment:
-
DevX, this explanation of yours is very didactic. I, at least, have learned many things about the Joy-con controller, reWASD, and both the gyroscope and the accelerometer, with this thread that I opened at the time. But this post of yours makes it much clearer for me how gyroscope and accelerometer work. Thank you!!Originally Posted by DevX View PostGyro mode measures rotation SPEED, i.e. how fast angle changes, but it does not care about ANGLE itself.
When you stop rotating your device gyro output will stop too, so it works similar to mouse.
It works on all 3 gyroscope axis and in any device orientation. It does not need accelerometer or magnetometer, because gyroscope measurements are relative to device itself.
That is why you can map any gyro axis in reWASD to mouse and swap them as you like.
The drawback of gyro is that it is subject to drift with time, but this is not so critical for mouse mapping as you can adjust deadzone etc.
----------
Tilt is more complex mode as it measures actual resulting rotation ANGLE but does not care about its SPEED.
When you stop rotating your device tilt output will NOT stop, but will show you the resulting accumulated ANGLE starting from some reference point.
So it works similar to stick, not mouse.
And Reset Tilt command on your profile does just that - it remembers current gamepad orientation and uses it as reference point for future measurements.
To calculate tilt reWASD uses both gyroscope (to calculate angle deltas) and accelerometer (for angle correction in case of gyro drift). This is called sensor fusion.
It is more advanced operating mode but it cannot work on all 3-axes, because vertical axis (yaw relative to user) cannot be corrected by accelerometer.
And, as device has no magnetometer, the resulting angle will drift periodically and will not be precise. It will be like "bad stick".
That is why Tilt mode uses 2 axis only, which are perpendicular to gravity, and vertical axis is not usable.
As sad earlier, we can try to add it in future, so you can map this ANGLE as well, but with some compromises.
----------
- Flag
Leave a comment:
-
> but this also does not make sense to me in that I don't see why this still does not allow Yaw to be used in the horizontal position of the JoyCon in Tilt mode, when it does in Gyro mode
Please reread what we posted above about how Tilt operates, lack of magnetometer etc.
All gamepads have 6-axis IMUs, which contain 3-axis accelerometer and 3-axis gyroscope and they are used for quite different things.
Tilt or Gyro are absolutely different modes in reWASD.
-----------
Gyro mode measures rotation SPEED, i.e. how fast angle changes, but it does not care about ANGLE itself.
When you stop rotating your device gyro output will stop too, so it works similar to mouse.
It works on all 3 gyroscope axis and in any device orientation. It does not need accelerometer or magnetometer, because gyroscope measurements are relative to device itself.
That is why you can map any gyro axis in reWASD to mouse and swap them as you like.
The drawback of gyro is that it is subject to drift with time, but this is not so critical for mouse mapping as you can adjust deadzone etc.
----------
Tilt is more complex mode as it measures actual resulting rotation ANGLE but does not care about its SPEED.
When you stop rotating your device tilt output will NOT stop, but will show you the resulting accumulated ANGLE starting from some reference point.
So it works similar to stick, not mouse.
And Reset Tilt command on your profile does just that - it remembers current gamepad orientation and uses it as reference point for future measurements.
To calculate tilt reWASD uses both gyroscope (to calculate angle deltas) and accelerometer (for angle correction in case of gyro drift). This is called sensor fusion.
It is more advanced operating mode but it cannot work on all 3-axes, because vertical axis (yaw relative to user) cannot be corrected by accelerometer.
And, as device has no magnetometer, the resulting angle will drift periodically and will not be precise. It will be like "bad stick".
That is why Tilt mode uses 2 axis only, which are perpendicular to gravity, and vertical axis is not usable.
As sad earlier, we can try to add it in future, so you can map this ANGLE as well, but with some compromises.
----------
I hope the above explanation helps.
- Flag
Leave a comment:
-
Thank you for these explanations as they are helping. My question to this though is does the gravity not factor into regular Gyro mode then, or why Tilt mode is reliant on it so that it doesn't work there but does in Gyro mode? Is it because Tilt mode requires a 'center point' to return to that is not available on that axis?Originally Posted by DevX View PostI see your goal - you want 'rotate head from left to right'. But tilt is of no use here because your head rotates around vertical axis. The only way to control JoyCon via tilt is via tilting your head forward/backward and left/right.
But in your case you need pure rotation angle around vertical axis, independently from tilt.
Unfortunately, no such mapping currently exists in reWASD. The reason behind this is that JoyCon, like all gamepads, has no magnetometer and yaw angle will suffer from gyro drift.
It cannot be "compensated" with accelerometer, because accelerometer does not see rotation around vertical axis (gravity vector). This is also the reason why tilt cannot use vertical axis.
In theory, though, we could implement such option, but allow user to also reset yaw position if needed, so he can correct neutral position periodically if drift becomes too big.
Thank you for your post anyway and we'll consider it as suggestion!
Maybe some day we'll include such option.
- Flag
Leave a comment:
-
Just to clear up my video was indeed recorded with the JoyCon in a normal gamepad position, but it didn't matter because in either horizontal or vertical Yaw would not work even it Reset Tilt was used to set a new neutral point.
Sorry but I still don't quite understand this
Ok so now I know that referencing pitch/yaw/roll is done relative to the JoyCon's position, but this also does not make sense to me in that I don't see why this still does not allow Yaw to be used in the horizontal position of the JoyCon in Tilt mode, when it does in Gyro mode or using it to map to the Mouse. I play tons of games using Yaw movement with JoyCon horizontally, and they work fine when mapped to a Mouse in Gyro mode (example: https://www.youtube.com/watch?v=JaMtU87MNKk ), but once changed to tilt mode Yaw does not work anymore and only Roll does.Originally Posted by DevX View Post>This video shows that Yaw is not working correctly, right?
It's quite the opposite - the video clearly shows that yaw axis of JoyCon controls tilt. It is 0:36 on video. And 0:39 shows that roll axis does nothing in vertical orientation. So it works as intended.
So we don't understand what you want to achieve.
Please note then when we are speaking about pitch, roll and yaw we mean axes relative to JoyCon itself.
And I think a lot of the confusion is coming from the terminology being relative to the JoyCon's orientation. In the video posted by 1ncorrect, it is said 'Yaw is working right' while the JoyCon is held vertically, and tilted downward left and right. So in this case we are saying the top of a JoyCon, where the shoulder buttons are, to be the 'nose' of the Gyro and so if it is pointing straight up then tilting in that way would indeed be Yaw. But when why can we not 'aim the nose' forwards (horizontally) and Yaw relative to that orientation?
The fact that in Gyro Mode, or Gyro Mouse mode, that the Yaw motion in horizontal position works tells us that reWASD can see that type of motion from the gyro already. It's just that it doesn't apply to Tilt mode for some reason.
The motion made at 1:06 of the video is the one that I am unable to get working. That is the objective, horizontal position Yaw movement in Tilt mode, is there any way to achieve this?
- Flag
Leave a comment:
-
That's how it's!!! That just is my intention!!! I understand, within my limitations on the subject, what you are saying, and yes, with an option similar to "Reset tilt" it would be a great solution. I hope you can implement it in reWASD in the future (not too distant 😜).Originally Posted by DevX View PostI see your goal - you want 'rotate head from left to right'. But tilt is of no use here because your head rotates around vertical axis. The only way to control JoyCon via tilt is via tilting your head forward/backward and left/right.
But in your case you need pure rotation angle around vertical axis, independently from tilt.
Unfortunately, no such mapping currently exists in reWASD. The reason behind this is that JoyCon, like all gamepads, has no magnetometer and yaw angle will suffer from gyro drift.
It cannot be "compensated" with accelerometer, because accelerometer does not see rotation around vertical axis (gravity vector). This is also the reason why tilt cannot use vertical axis.
In theory, though, we could implement such option, but allow user to also reset yaw position if needed, so he can correct neutral position periodically if drift becomes too big.
Thank you for your post anyway and we'll consider it as suggestion!
Maybe some day we'll include such option.
Many thanks for everything.
Cheers!!
- Flag
Leave a comment:
-
I see your goal - you want 'rotate head from left to right'. But tilt is of no use here because your head rotates around vertical axis. The only way to control JoyCon via tilt is via tilting your head forward/backward and left/right.
But in your case you need pure rotation angle around vertical axis, independently from tilt.
Unfortunately, no such mapping currently exists in reWASD. The reason behind this is that JoyCon, like all gamepads, has no magnetometer and yaw angle will suffer from gyro drift.
It cannot be "compensated" with accelerometer, because accelerometer does not see rotation around vertical axis (gravity vector). This is also the reason why tilt cannot use vertical axis.
In theory, though, we could implement such option, but allow user to also reset yaw position if needed, so he can correct neutral position periodically if drift becomes too big.
Thank you for your post anyway and we'll consider it as suggestion!
Maybe some day we'll include such option.
- Flag
Leave a comment:
-
It's true!! @jeynos's video is recorded with an overhead shot. Well, then there is nothing I can do to be able to use one axis of the Joy-con (in "Tilt mode") with the rotation of my head from left to right. 😢Hopefully at some point you will be able to implement that option in your great software that is reWASD. Thank you to all of you who have been involved for all your efforts! 👏👏👏
cheers!!!
- Flag
Leave a comment:
-
This is not possible.
As already told you , if your JoyCon axis is vertical (i.e. parallel to gravity vector) then this axis cannot be used for tilt. In this case we talk about 'roll' axis of JoyCon.
If you want to use this axis for tilt then you need to hold your JoyCon horizontally and issue Reset tilt command.
Then roll and yaw axes will be swapped. You cannot swap them in same orientation. In each orientation only 1 of these axes can be used for tilt, but not both.
So maybe this is misunderstanding on your part how tilt works. Axis can be used to tilt only if it is perpendicular to gravity (i.e. horizontal).
Most likely you don't need tilt then and want something else.
It fact tilt works like stick - you can think as if it is 3rd stick of gamepad. It has only 2 working axes. Vertical axis cannot be used as it does not affect tilt.
>but in this video by jeynos (where he reproduces the same issue I have) ( https://www.youtube.com/watch?v=r6Oo333OF3g ) he shows that his Joy-con, in vertical orientation,
No, if you look carefully his JoyCon seems to be horizontal! The video seems was made from above.
- Flag
Leave a comment:
-
Our desire is, with the Joy-con in vertical orientation, to be able to swap between the Yaw and Roll axes. Personally, I want to be able to control the Roll axis, in vertical orientation, with my Joy-con (in "Tilt mode", of course). 😊👌Originally Posted by DevX View Post>So we don't understand what you want to achieve.
- Flag
Leave a comment:
-
There is one thing that has caught my attention: In the video that 1ncorrect attached shows (with my reWASD config) clearly that the Joy-con, in vertical orientation, controls the Yaw axis (00:33) and shows that Roll axis does nothing, in vertical orientation (00:39), OK. But in this video by jeynos (where he reproduces the same issue I have) ( https://www.youtube.com/watch?v=r6Oo333OF3g ) he shows that his Joy-con, in vertical orientation, controls the Roll axis (00:25) and also shows that the Yaw axis does nothing (00:30). When I saw this in each of the two videos I was very surprised. I have tried jeynos's config on my reWASD and with my reWASD the Joy-con, in vertical orientation, controls the Yaw axis but not the Roll axis.
- Flag
Leave a comment:
-
>This video shows that Yaw is not working correctly, right?
It's quite the opposite - the video clearly shows that yaw axis of JoyCon controls tilt. It is 0:36 on video. And 0:39 shows that roll axis does nothing in vertical orientation. So it works as intended.
So we don't understand what you want to achieve.
Please note then when we are speaking about pitch, roll and yaw we mean axes relative to JoyCon itself.
> can be executed with the movement of the Joy-con that you show at 00:39
When JoyCon is vertical its roll axis is vertical too (along gravity vector) and it is not used for tilt. And this video show it. Rotations around gravity vector cannot be used for tilt. To change tilt you can only rotate device around axes which are perpendicular to gravity vector.
- Flag
Leave a comment:
-
This video shows that Yaw is not working correctly, right? When the JoyCon is vertical, tilting it in the way in the video is Roll, not Yaw. And when the Joycon is moved horizontal and tilt is reset, it is again Roll that moves left right, not Yaw. So I am confused and I think there is a miscommunication here. However what is in the video is exactly how it works for me.
- Flag
Leave a comment:
Leave a comment: