ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    EIS functionality

    Video and Image Sensors
    2
    6
    29
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      SKA
      last edited by

      Hi! I'm noticing some difference in functionality when I switch eis_mode from horizon-level to full-follow.

      I built voxl-camera-server off the eis branch and followed the instructions. everything seems to be working correctly including stabilization other than the final output rotation that I am looking for.

      My imu_apps to hires extrinsics are set up correctly and I want to apply this additional transform to the output:

       {
              "parent": "hires",
              "child":  "hires_eis",
              "T_child_wrt_parent": [0.066, 0.009, -0.012],
              "RPY_parent_to_child":    [0, 0, -90]
          }
      

      I'm noticing that if I set "eis_mode": "full-follow" the transform isnt applied but if i set "eis_mode": "horizon-level" it rotates the output window as expected. Here's what I see on voxl-portal when I switch eis_mode and leave the extrinsics file untouched.

      "eis_mode": "full-follow":
      146f1c37-7919-49a7-9e2a-b4581cc90629-image.png

      "eis_mode": "horizon-level":
      105fa5c2-0d7c-4d91-a8f7-bad7825cb8e8-image.png

      Hoping to find a way to get the output rotation working in full-follow mode. Thanks!

      Alex KushleyevA 1 Reply Last reply Reply Quote 0
      • Alex KushleyevA
        Alex Kushleyev ModalAI Team @SKA
        last edited by

        @SKA , I thought i fixed that issue a while ago, let me double check. Are you using voxl-camera-server from eis branch or an official release from an SDK?

        Alex

        S 1 Reply Last reply Reply Quote 0
        • S
          SKA @Alex Kushleyev
          last edited by

          @Alex-Kushleyev I'm building from the eis branch not the official release. Thanks!

          (Note: The images I included in my post are labeled backwards. first image is "eis_mode": "horizon-level" and the second image is "eis_mode": "full-follow")

          Alex KushleyevA 1 Reply Last reply Reply Quote 0
          • Alex KushleyevA
            Alex Kushleyev ModalAI Team @SKA
            last edited by

            @SKA , OK, so what you are saying is that in full-follow mode, the rotation parameter in the extrinsics hires -> hires_eis for the -90 degree rotation is not respected, correct?

            S 1 Reply Last reply Reply Quote 0
            • S
              SKA @Alex Kushleyev
              last edited by

              @Alex-Kushleyev yes, that's correct!

              Alex KushleyevA 1 Reply Last reply Reply Quote 0
              • Alex KushleyevA
                Alex Kushleyev ModalAI Team @SKA
                last edited by

                @SKA ,

                In your case, the issue should be solved by commenting out one line in https://gitlab.com/voxl-public/voxl-sdk/services/voxl-camera-server/-/blob/eis/src/misp.cpp :

                       //TODO: FIXME
                       //in roll following mode, the roll is not stabilized to the horizon, so it does not need to be flipped
                       //need to resolve this in a better way because Rout is meant for another purpose
                       if (!follow_roll)
                           rc_matrix_right_multiply_inplace(&eis_ctx.H.m, eis_ctx.Rout.m);    //rotate the image according to desired output rotation (nominally identity)
                

                Specifically, comment out the if statement : if (!follow_roll) , so that the Rout matrix is always applied to the full transform H.

                The issue is that I tried to solve another use case by using this parameter (when the voxl2 / IMU is flipped upside down while camera is right side up). I just tested and it appears to be working.

                I will figure out a better way of handling the upside down IMU in this case so that the output transform can be used correctly, but for now you can just comment out that if statement.

                Can you please let me know if that fix worked for you?

                Alex

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post
                Powered by NodeBB | Contributors