Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse
Brand Logo

ModalAI Forum

  1. ModalAI Support Forum
  2. VOXL Dev Kits
  3. VOXL-CAM
  4. ARDUPILOT VOXL CAM ORIENTATION ISSUE ?

ARDUPILOT VOXL CAM ORIENTATION ISSUE ?

Scheduled Pinned Locked Moved VOXL-CAM
21 Posts 6 Posters 5.0k Views 2 Watching
  • 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 Offline
    S Offline
    serge
    Contributor
    wrote on last edited by
    #11

    After many test we get singular issue.

    All seem to be related to bad reference between autopilot and voxlcam.

    We initialising, we we go straight to the north, there is no errors, as soon as we make turn EK3 failsafe.

    Maybe we need proffessionnal support from you, can you please contact us ?

    Kind regards.

    1 Reply Last reply
    0
    • Chad SweetC Offline
      Chad SweetC Offline
      Chad Sweet
      ModalAI Team
      wrote on last edited by
      #12

      A good document on how to modify the extrinsics can be found here

      That being said, for an indoor rover the easiest path is to flip VOXL CAM upside down and keep everything as default

      S 1 Reply Last reply
      0
      • Chad SweetC Chad Sweet

        A good document on how to modify the extrinsics can be found here

        That being said, for an indoor rover the easiest path is to flip VOXL CAM upside down and keep everything as default

        S Offline
        S Offline
        serge
        Contributor
        wrote on last edited by
        #13

        @Chad-Sweet Hello,

        How to setup extrinsics for upside down ?

        Can you help?

        1 Reply Last reply
        0
        • S Offline
          S Offline
          serge
          Contributor
          wrote on last edited by serge
          #14

          @Chad-Sweet Hello,

          Ok for test the upside down, can you share here the extrinsics to put it upside down?

          As you can show on the photos on posts above, I set the extrinsics file to this values below to match the tracking camera positionning, and I achieve better positionning and qvio quality.

          Please check my extrinsics below:
          {
          "name": "seeker_v1_voxlcam",
          "extrinsics": [{
          "parent": "imu0",
          "child": "tracking",
          "T_child_wrt_parent": [0.041, 0.014, 0.01],
          "RPY_parent_to_child": [0, 0, 0]
          }, {
          "parent": "imu1",
          "child": "tracking",
          "T_child_wrt_parent": [-0.0074, 0.021, 0.01],
          "RPY_parent_to_child": [0, 0, 0]
          }, {
          "parent": "body",
          "child": "imu0",
          "T_child_wrt_parent": [0.0496, -0.0152, 0.0161],
          "RPY_parent_to_child": [0, 90, 90]
          }, {
          "parent": "body",
          "child": "imu1",
          "T_child_wrt_parent": [0.0465, 0.0332, -0.013],
          "RPY_parent_to_child": [0, 90, 90]
          }, {
          "parent": "body",
          "child": "stereo_l",
          "T_child_wrt_parent": [0.055, -0.04, 0],
          "RPY_parent_to_child": [0, 90, 90]
          }, {
          "parent": "body",
          "child": "ground",
          "T_child_wrt_parent": [0, 0, 0.045],
          "RPY_parent_to_child": [0, 0, 0]
          }, {
          "parent": "imu1",
          "child": "imu0",
          "T_child_wrt_parent": [-0.0484, 0.037, 0.002],
          "RPY_parent_to_child": [0, 0, 0]
          }, {
          "parent": "body",
          "child": "tof",
          "T_child_wrt_parent": [0.055, 0, 0],
          "RPY_parent_to_child": [0, 90, -90]
          }]
          }

          But the issue, is that I always get bad positionning.

          please check the ardurover log via the link below:
          https://1drv.ms/u/s!AssmjyIs_YcBqz7NvkZmM4Gv7LZt?e=mBVFhS

          You can see that we achieve to make U chape trajectory, but at some point, qvio loses the yaw.......

          Please check the log.

          Please also tell me how to make qvio logs with voxlcam for you post analys what going on.

          Also, please tel me what qvio quality number must be achieved when going forward and making turns?

          c7ba084c-33fb-4db7-af48-5aefa5c70a15-image.png

          here you have the best logs we achieved.
          at the end qvio lose yaw....

          I really would like to try the upside down voxlcam with tracking camera mounted as factory deliver it.

          Please let me know how to achieve this, I think that extrinsics file is not the only conf file to tune for it, and all the items must be reversed?

          It would be gracefull from your part to provide consistant support for it by giving the extrisincs and sharing it at all your customers here.

          Kind regards.

          S 1 Reply Last reply
          0
          • S serge

            @Chad-Sweet Hello,

            Ok for test the upside down, can you share here the extrinsics to put it upside down?

            As you can show on the photos on posts above, I set the extrinsics file to this values below to match the tracking camera positionning, and I achieve better positionning and qvio quality.

            Please check my extrinsics below:
            {
            "name": "seeker_v1_voxlcam",
            "extrinsics": [{
            "parent": "imu0",
            "child": "tracking",
            "T_child_wrt_parent": [0.041, 0.014, 0.01],
            "RPY_parent_to_child": [0, 0, 0]
            }, {
            "parent": "imu1",
            "child": "tracking",
            "T_child_wrt_parent": [-0.0074, 0.021, 0.01],
            "RPY_parent_to_child": [0, 0, 0]
            }, {
            "parent": "body",
            "child": "imu0",
            "T_child_wrt_parent": [0.0496, -0.0152, 0.0161],
            "RPY_parent_to_child": [0, 90, 90]
            }, {
            "parent": "body",
            "child": "imu1",
            "T_child_wrt_parent": [0.0465, 0.0332, -0.013],
            "RPY_parent_to_child": [0, 90, 90]
            }, {
            "parent": "body",
            "child": "stereo_l",
            "T_child_wrt_parent": [0.055, -0.04, 0],
            "RPY_parent_to_child": [0, 90, 90]
            }, {
            "parent": "body",
            "child": "ground",
            "T_child_wrt_parent": [0, 0, 0.045],
            "RPY_parent_to_child": [0, 0, 0]
            }, {
            "parent": "imu1",
            "child": "imu0",
            "T_child_wrt_parent": [-0.0484, 0.037, 0.002],
            "RPY_parent_to_child": [0, 0, 0]
            }, {
            "parent": "body",
            "child": "tof",
            "T_child_wrt_parent": [0.055, 0, 0],
            "RPY_parent_to_child": [0, 90, -90]
            }]
            }

            But the issue, is that I always get bad positionning.

            please check the ardurover log via the link below:
            https://1drv.ms/u/s!AssmjyIs_YcBqz7NvkZmM4Gv7LZt?e=mBVFhS

            You can see that we achieve to make U chape trajectory, but at some point, qvio loses the yaw.......

            Please check the log.

            Please also tell me how to make qvio logs with voxlcam for you post analys what going on.

            Also, please tel me what qvio quality number must be achieved when going forward and making turns?

            c7ba084c-33fb-4db7-af48-5aefa5c70a15-image.png

            here you have the best logs we achieved.
            at the end qvio lose yaw....

            I really would like to try the upside down voxlcam with tracking camera mounted as factory deliver it.

            Please let me know how to achieve this, I think that extrinsics file is not the only conf file to tune for it, and all the items must be reversed?

            It would be gracefull from your part to provide consistant support for it by giving the extrisincs and sharing it at all your customers here.

            Kind regards.

            S Offline
            S Offline
            sergio
            wrote on last edited by
            #15

            @serge said in ARDUPILOT VOXL CAM ORIENTATION ISSUE ?:

            @Chad-Sweet Hello,

            Ok for test the upside down, can you share here the extrinsics to put it upside down?

            As you can show on the photos on posts above, I set the extrinsics file to this values below to match the tracking camera positionning, and I achieve better positionning and qvio quality.

            Please check my extrinsics below:
            {
            "name": "seeker_v1_voxlcam",
            "extrinsics": [{
            "parent": "imu0",
            "child": "tracking",
            "T_child_wrt_parent": [0.041, 0.014, 0.01],
            "RPY_parent_to_child": [0, 0, 0]
            }, {
            "parent": "imu1",
            "child": "tracking",
            "T_child_wrt_parent": [-0.0074, 0.021, 0.01],
            "RPY_parent_to_child": [0, 0, 0]
            }, {
            "parent": "body",
            "child": "imu0",
            "T_child_wrt_parent": [0.0496, -0.0152, 0.0161],
            "RPY_parent_to_child": [0, 90, 90]
            }, {
            "parent": "body",
            "child": "imu1",
            "T_child_wrt_parent": [0.0465, 0.0332, -0.013],
            "RPY_parent_to_child": [0, 90, 90]
            }, {
            "parent": "body",
            "child": "stereo_l",
            "T_child_wrt_parent": [0.055, -0.04, 0],
            "RPY_parent_to_child": [0, 90, 90]
            }, {
            "parent": "body",
            "child": "ground",
            "T_child_wrt_parent": [0, 0, 0.045],
            "RPY_parent_to_child": [0, 0, 0]
            }, {
            "parent": "imu1",
            "child": "imu0",
            "T_child_wrt_parent": [-0.0484, 0.037, 0.002],
            "RPY_parent_to_child": [0, 0, 0]
            }, {
            "parent": "body",
            "child": "tof",
            "T_child_wrt_parent": [0.055, 0, 0],
            "RPY_parent_to_child": [0, 90, -90]
            }]
            }

            But the issue, is that I always get bad positionning.

            please check the ardurover log via the link below:
            https://1drv.ms/u/s!AssmjyIs_YcBqz7NvkZmM4Gv7LZt?e=mBVFhS

            You can see that we achieve to make U chape trajectory, but at some point, qvio loses the yaw.......

            Please check the log.

            Please also tell me how to make qvio logs with voxlcam for you post analys what going on.

            Also, please tel me what qvio quality number must be achieved when going forward and making turns?

            c7ba084c-33fb-4db7-af48-5aefa5c70a15-image.png

            here you have the best logs we achieved.
            at the end qvio lose yaw....

            I really would like to try the upside down voxlcam with tracking camera mounted as factory deliver it.

            Please let me know how to achieve this, I think that extrinsics file is not the only conf file to tune for it, and all the items must be reversed?

            It would be gracefull from your part to provide consistant support for it by giving the extrisincs and sharing it at all your customers here.

            Kind regards.

            Dear Chad, Please, can you tell me if tracking camera is factory calibrated? Do you advice to calibrate it to enhance the results?

            S 1 Reply Last reply
            0
            • S sergio

              @serge said in ARDUPILOT VOXL CAM ORIENTATION ISSUE ?:

              @Chad-Sweet Hello,

              Ok for test the upside down, can you share here the extrinsics to put it upside down?

              As you can show on the photos on posts above, I set the extrinsics file to this values below to match the tracking camera positionning, and I achieve better positionning and qvio quality.

              Please check my extrinsics below:
              {
              "name": "seeker_v1_voxlcam",
              "extrinsics": [{
              "parent": "imu0",
              "child": "tracking",
              "T_child_wrt_parent": [0.041, 0.014, 0.01],
              "RPY_parent_to_child": [0, 0, 0]
              }, {
              "parent": "imu1",
              "child": "tracking",
              "T_child_wrt_parent": [-0.0074, 0.021, 0.01],
              "RPY_parent_to_child": [0, 0, 0]
              }, {
              "parent": "body",
              "child": "imu0",
              "T_child_wrt_parent": [0.0496, -0.0152, 0.0161],
              "RPY_parent_to_child": [0, 90, 90]
              }, {
              "parent": "body",
              "child": "imu1",
              "T_child_wrt_parent": [0.0465, 0.0332, -0.013],
              "RPY_parent_to_child": [0, 90, 90]
              }, {
              "parent": "body",
              "child": "stereo_l",
              "T_child_wrt_parent": [0.055, -0.04, 0],
              "RPY_parent_to_child": [0, 90, 90]
              }, {
              "parent": "body",
              "child": "ground",
              "T_child_wrt_parent": [0, 0, 0.045],
              "RPY_parent_to_child": [0, 0, 0]
              }, {
              "parent": "imu1",
              "child": "imu0",
              "T_child_wrt_parent": [-0.0484, 0.037, 0.002],
              "RPY_parent_to_child": [0, 0, 0]
              }, {
              "parent": "body",
              "child": "tof",
              "T_child_wrt_parent": [0.055, 0, 0],
              "RPY_parent_to_child": [0, 90, -90]
              }]
              }

              But the issue, is that I always get bad positionning.

              please check the ardurover log via the link below:
              https://1drv.ms/u/s!AssmjyIs_YcBqz7NvkZmM4Gv7LZt?e=mBVFhS

              You can see that we achieve to make U chape trajectory, but at some point, qvio loses the yaw.......

              Please check the log.

              Please also tell me how to make qvio logs with voxlcam for you post analys what going on.

              Also, please tel me what qvio quality number must be achieved when going forward and making turns?

              c7ba084c-33fb-4db7-af48-5aefa5c70a15-image.png

              here you have the best logs we achieved.
              at the end qvio lose yaw....

              I really would like to try the upside down voxlcam with tracking camera mounted as factory deliver it.

              Please let me know how to achieve this, I think that extrinsics file is not the only conf file to tune for it, and all the items must be reversed?

              It would be gracefull from your part to provide consistant support for it by giving the extrisincs and sharing it at all your customers here.

              Kind regards.

              Dear Chad, Please, can you tell me if tracking camera is factory calibrated? Do you advice to calibrate it to enhance the results?

              S Offline
              S Offline
              serge
              Contributor
              wrote on last edited by
              #16

              @sergio said in ARDUPILOT VOXL CAM ORIENTATION ISSUE ?:

              @serge said in ARDUPILOT VOXL CAM ORIENTATION ISSUE ?:

              @Chad-Sweet Hello,

              Ok for test the upside down, can you share here the extrinsics to put it upside down?

              As you can show on the photos on posts above, I set the extrinsics file to this values below to match the tracking camera positionning, and I achieve better positionning and qvio quality.

              Please check my extrinsics below:
              {
              "name": "seeker_v1_voxlcam",
              "extrinsics": [{
              "parent": "imu0",
              "child": "tracking",
              "T_child_wrt_parent": [0.041, 0.014, 0.01],
              "RPY_parent_to_child": [0, 0, 0]
              }, {
              "parent": "imu1",
              "child": "tracking",
              "T_child_wrt_parent": [-0.0074, 0.021, 0.01],
              "RPY_parent_to_child": [0, 0, 0]
              }, {
              "parent": "body",
              "child": "imu0",
              "T_child_wrt_parent": [0.0496, -0.0152, 0.0161],
              "RPY_parent_to_child": [0, 90, 90]
              }, {
              "parent": "body",
              "child": "imu1",
              "T_child_wrt_parent": [0.0465, 0.0332, -0.013],
              "RPY_parent_to_child": [0, 90, 90]
              }, {
              "parent": "body",
              "child": "stereo_l",
              "T_child_wrt_parent": [0.055, -0.04, 0],
              "RPY_parent_to_child": [0, 90, 90]
              }, {
              "parent": "body",
              "child": "ground",
              "T_child_wrt_parent": [0, 0, 0.045],
              "RPY_parent_to_child": [0, 0, 0]
              }, {
              "parent": "imu1",
              "child": "imu0",
              "T_child_wrt_parent": [-0.0484, 0.037, 0.002],
              "RPY_parent_to_child": [0, 0, 0]
              }, {
              "parent": "body",
              "child": "tof",
              "T_child_wrt_parent": [0.055, 0, 0],
              "RPY_parent_to_child": [0, 90, -90]
              }]
              }

              But the issue, is that I always get bad positionning.

              please check the ardurover log via the link below:
              https://1drv.ms/u/s!AssmjyIs_YcBqz7NvkZmM4Gv7LZt?e=mBVFhS

              You can see that we achieve to make U chape trajectory, but at some point, qvio loses the yaw.......

              Please check the log.

              Please also tell me how to make qvio logs with voxlcam for you post analys what going on.

              Also, please tel me what qvio quality number must be achieved when going forward and making turns?

              c7ba084c-33fb-4db7-af48-5aefa5c70a15-image.png

              here you have the best logs we achieved.
              at the end qvio lose yaw....

              I really would like to try the upside down voxlcam with tracking camera mounted as factory deliver it.

              Please let me know how to achieve this, I think that extrinsics file is not the only conf file to tune for it, and all the items must be reversed?

              It would be gracefull from your part to provide consistant support for it by giving the extrisincs and sharing it at all your customers here.

              Kind regards.

              Dear Chad, Please, can you tell me if tracking camera is factory calibrated? Do you advice to calibrate it to enhance the results?

              Also Please send me the voxl cam intrinsics for upside down the voxlcam in rover app.

              I really need your support to go forward please.

              1 Reply Last reply
              0
              • ? Offline
                ? Offline
                A Former User
                wrote on last edited by
                #17

                All of the cameras are calibrated coming out of the factory. If you need to recalibrate the cameras the instructions to do so can be found here. If you're placing the voxl-cam in a new location on a body you'll just need to change all of the something->body relations in that extrinsics file (the rest will be the same because the other relations are all within the voxl-cam which you're moving as a unit). Do this by picking a location on your platform to serve as the body center and measure the translation and rotation between the voxl-cam and your vehicle.

                S 1 Reply Last reply
                0
                • ? A Former User

                  All of the cameras are calibrated coming out of the factory. If you need to recalibrate the cameras the instructions to do so can be found here. If you're placing the voxl-cam in a new location on a body you'll just need to change all of the something->body relations in that extrinsics file (the rest will be the same because the other relations are all within the voxl-cam which you're moving as a unit). Do this by picking a location on your platform to serve as the body center and measure the translation and rotation between the voxl-cam and your vehicle.

                  S Offline
                  S Offline
                  sergio
                  wrote on last edited by
                  #18

                  @Alex-Gardner so you confirm that as i just changed the tracking cam position (see upper post):

                  • as intrinsic not mention body relation with tracking cam , I dont need to change any other intrinsic than imu1 and imu2 relation to tracking cam, and thats what i do ?

                  • you confirm that body intrinsic position on the voxl cam is the center of the voxl cam?

                  S 1 Reply Last reply
                  0
                  • S sergio

                    @Alex-Gardner so you confirm that as i just changed the tracking cam position (see upper post):

                    • as intrinsic not mention body relation with tracking cam , I dont need to change any other intrinsic than imu1 and imu2 relation to tracking cam, and thats what i do ?

                    • you confirm that body intrinsic position on the voxl cam is the center of the voxl cam?

                    S Offline
                    S Offline
                    sergio
                    wrote on last edited by
                    #19

                    @sergio said in ARDUPILOT VOXL CAM ORIENTATION ISSUE ?:

                    @Alex-Gardner so you confirm that as i just changed the tracking cam position (see upper post):

                    • as intrinsic not mention body relation with tracking cam , I dont need to change any other intrinsic than imu1 and imu2 relation to tracking cam, and thats what i do ?

                    • you confirm that body intrinsic position on the voxl cam is the center of the voxl cam?
                      If not can you show where is the virtual position of body related to voxlcam?

                    Also what is ground position in intrinsics?

                    1 Reply Last reply
                    0
                    • Chad SweetC Offline
                      Chad SweetC Offline
                      Chad Sweet
                      ModalAI Team
                      wrote on last edited by
                      #20

                      If you pointed the VOXL CAM, as originally built, upside down you would not need to change the extrinsics. The extrinsics are between the internal image sensors and IMU.

                      1 Reply Last reply
                      0
                      • Cliff WongC Offline
                        Cliff WongC Offline
                        Cliff Wong
                        ModalAI Team
                        wrote on last edited by Cliff Wong
                        #21

                        Hi Sergio. I'm handle a number of rover configurations here for the team. Reading thru the posts, let's take a step back to confirm your setup.

                        a. you are using the cube to output IMU data into voxl-cam.
                        b. you are using voxl-cam to output odom data [back] to the cube for (e.g. external vision localization)
                        c. the camera has been moved from the stock position of -45deg from horizon w.r.t. voxl-cam body to 0deg from horizon w.r.t. voxl cam body.
                        d. the cube is mounted w/IMU in standard orientation (0 deg to horizon/forward, aka imu RPY is 0,0,0)
                        e. you are not using a modalai flight core (option for voxl-cam purchase)

                        First of make sure your PX4 SENS_BOARD_ROT (or AHRS_ORIENTATION if Ardupilot) is set for a cube setup (I recall should be "No rotation" as well as from your photo). Please reply if that is all correct. If so, then we can move to the next step where I can show you how confirm vio's pose estimation (after that then we'll look at position accuracy).

                        1 Reply Last reply
                        0

                        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                        With your input, this post could be even better 💗

                        Register Login
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        ModalAI
                        Categories Recent Tags ModalAI.com Docs
                        © 2026 ModalAI® · Accelerating autonomy for smaller, smarter, safer drones · Powered by NodeBB
                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups