Announcement

Collapse
No announcement yet.

I can't swap the yaw and roll axes on a Joy-Con controller.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #46
    Originally Posted by DevX View Post
    > the movement of the Pitch axis, for example, is always the same
    Let's make it more clear - pitch axis (rotation around X) never changes in any tilt mode. Only roll (rotation around Y) and yaw (rotation around Z) axes should be swapped. Here we assume direction of X is right from user, Y is to screen, and Z is up, and these axes are relative to JoyCon itself.
    In horizontal mode only X (pitch) and Y (roll) contribute to tilt. Z (yaw) does nothing as it is directed along gravity vector and it is not possible to detect reliably, because device has no magnetometer.
    Now, if you place your JoyCon vertically and issue ''reset tilt' command, reWASD should change tilt mode. In such case only X (pitch)and Z(yaw) will work for tilt, because they are perpendicular to gravity vector . Y (roll) cannot work because it is now directed up along gravity.
    Please note again, that X,Y and Z in this context are relative to JoyCon itself.
    That is how it works in general.
    We'll recheck your configs and try reproduce this situation if this is bug or some misunderstanding.
    Thank you very much, DevX, for this detailed explanation. It helps me personally to understand a little better how your reWASD software works and how it interprets the Joy-con controller.
    The issues basically resides in the fact that to issue "Reset Tilt" does not swap between the "Roll" and "Yaw" axes. Joy-con behaves as if its spatial positioning values were reset to 0 from that position in which was spatially at the time of to issue "Reset Tilt". This phenomenon occurs regardless of whether the Joy-con is vertical or horizontal; in both positions it behaves like this.
    But I'm convinced that you will find what happens and how to implement it in reWASD for full use of the Joy-con. Your software is very complete and the most advanced on the market. You are doing a great job! πŸ’ͺ​

    Comment


    • #47
      Originally Posted by Santi-Tetra View Post

      Of course. I think it's this file, right? I attach an image of my reWASD to confirm it.
      After discussions with the team, we recorded a video where we checked and showed that the joycon behaves correctly when resetting tilt.
      You can download it from this link.

      Comment


      • #48
        Hi.
        You have reproduced the problem that jeynos and I have and the same thing happens to you as to us. Our wish is that the movement of the Joy-con that is seen at 00:33 of your video, and that is reflected in the graph, can be executed with the movement of the Joy-con that you show at 00:39. It is not necessary, in my case, that the control is necessarily horizontal; if it worked vertically I would reposition the Joy-con on my headphones. But the issues is that with the Joy-con vertically when issue "Reset Tilt" it doesn't recognize the movement that I want either (00:39 of your video).
        But among all of us we are "narrowing the fence" to the issue πŸ˜ƒβ€‹

        Comment


        • #49
          Originally Posted by 1ncorrect View Post

          After discussions with the team, we recorded a video where we checked and showed that the joycon behaves correctly when resetting tilt.
          You can download it from this link.
          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.

          Comment


          • #50
            >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.

            Comment


            • #51
              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.

              Comment


              • #52
                Originally Posted by DevX View Post
                >So we don't understand what you want to achieve.
                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). πŸ˜ŠπŸ‘Œ

                Comment


                • #53
                  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.

                  Comment


                  • #54
                    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!!!​

                    Comment


                    • #55
                      Thank you for your understanding.

                      Comment


                      • #56
                        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.

                        Comment


                        • #57
                          Originally Posted by DevX View Post
                          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.
                          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 😜).
                          Many thanks for everything.
                          Cheers!!​

                          Comment


                          • #58
                            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

                            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.
                            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.

                            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?

                            Comment


                            • #59
                              Originally Posted by DevX View Post
                              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.
                              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?

                              Comment


                              • #60
                                > 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.

                                Comment

                                Working...
                                X