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

    Starling 2 not following navigation path

    Ask your questions right here!
    3
    13
    259
    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.
    • G
      greg_s @ApoorvThapliyal
      last edited by greg_s

      Hello @ApoorvThapliyal,

      I put the log file here: log100.ulg on Filebin.net
      I also put the the output from voxl-vision-hub --debug_offboard suggested by @Cliff-Wong in another post in another upload here voxl-vision-hub-log.txt on Filebin.net.

      When I attempted the flight, the drone appeared to fly to the correct X and Z coordinates, but it was close to the floor and well below the correct Y coordinate.

      Here are a couple of picture of the map and projected route:
      plan1.jpg
      plan2.jpg

      And a couple of the map after the drone tried to navigate and ended up below the point:
      after_nav1.jpg
      after_nav2.jpg

      1 Reply Last reply Reply Quote 0
      • G
        greg_s
        last edited by

        For convenience I took out the section that has the trajectory from the voxl-vision-hub logs:

        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.8 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.7 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.7 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.7 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.7 yaw: 0.3
        commanding: XYZ -0.4 -0.2 -1.7 yaw: 0.3
        Received trajectory has duration 1.953539 seconds
        Received load and start command.
        commanding: XYZ -0.4 -0.2 -1.0 yaw: 0.7 V: 0.0 0.0 -0.0 A: 0.1 0.0 -0.0
        commanding: XYZ -0.4 -0.2 -1.0 yaw: 0.7 V: 0.0 0.0 -0.0 A: 0.2 0.2 -0.0
        commanding: XYZ -0.4 -0.2 -1.0 yaw: 0.7 V: 0.0 0.0 -0.0 A: 0.3 0.3 -0.0
        commanding: XYZ -0.4 -0.2 -1.0 yaw: 0.7 V: 0.0 0.0 -0.0 A: 0.5 0.5 -0.0
        commanding: XYZ -0.4 -0.2 -1.0 yaw: 0.7 V: 0.0 0.0 -0.0 A: 0.7 0.6 0.0
        commanding: XYZ -0.4 -0.2 -1.0 yaw: 0.7 V: 0.1 0.1 -0.0 A: 0.9 0.7 0.0
        commanding: XYZ -0.3 -0.2 -1.0 yaw: 0.7 V: 0.1 0.1 0.0 A: 1.0 0.9 0.0
        commanding: XYZ -0.3 -0.2 -1.0 yaw: 0.7 V: 0.1 0.1 0.0 A: 1.1 0.9 0.0
        commanding: XYZ -0.3 -0.2 -1.0 yaw: 0.7 V: 0.2 0.2 0.0 A: 1.1 1.0 0.0
        commanding: XYZ -0.3 -0.2 -1.0 yaw: 0.7 V: 0.2 0.2 0.0 A: 1.2 1.0 0.0
        commanding: XYZ -0.3 -0.2 -1.0 yaw: 0.7 V: 0.3 0.2 0.0 A: 1.2 1.0 0.0
        commanding: XYZ -0.3 -0.2 -1.0 yaw: 0.7 V: 0.3 0.3 0.0 A: 1.2 1.0 0.0
        commanding: XYZ -0.3 -0.1 -1.0 yaw: 0.7 V: 0.3 0.3 0.0 A: 1.2 1.0 0.0
        commanding: XYZ -0.3 -0.1 -1.0 yaw: 0.7 V: 0.4 0.3 0.0 A: 1.1 1.0 0.0
        commanding: XYZ -0.3 -0.1 -1.0 yaw: 0.7 V: 0.4 0.4 0.0 A: 1.1 1.0 0.0
        commanding: XYZ -0.3 -0.1 -1.0 yaw: 0.7 V: 0.4 0.4 0.0 A: 1.1 1.0 0.0
        Received trajectory has duration 1.452853 seconds
        Received insert command.
        commanding: XYZ -0.3 -0.1 -1.0 yaw: 0.7 V: 0.5 0.4 0.0 A: 1.1 0.9 0.0
        commanding: XYZ -0.2 -0.1 -1.0 yaw: 0.7 V: 0.5 0.4 0.0 A: 1.0 0.9 0.0
        commanding: XYZ -0.2 -0.1 -1.0 yaw: 0.7 V: 0.5 0.5 0.0 A: 1.0 0.9 0.0
        commanding: XYZ -0.2 -0.1 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: 0.9 0.8 0.0
        commanding: XYZ -0.2 -0.0 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: 0.8 0.7 0.1
        commanding: XYZ -0.2 -0.0 -1.0 yaw: 0.7 V: 0.6 0.6 0.0 A: 0.8 0.6 0.1
        commanding: XYZ -0.1 0.0 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.7 0.5 0.1
        commanding: XYZ -0.1 0.0 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.6 0.5 0.1
        commanding: XYZ -0.1 0.0 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.5 0.4 0.1
        commanding: XYZ -0.1 0.1 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.4 0.3 0.0
        commanding: XYZ -0.0 0.1 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.3 0.2 0.0
        commanding: XYZ -0.0 0.1 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.2 0.1 0.0
        commanding: XYZ 0.0 0.1 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: 0.0 0.0 0.0
        Received trajectory has duration 0.510237 seconds
        Received insert command.
        commanding: XYZ 0.0 0.1 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: -0.1 -0.1 0.0
        commanding: XYZ 0.1 0.2 -1.0 yaw: 0.7 V: 0.7 0.6 0.0 A: -0.2 -0.2 0.0
        commanding: XYZ 0.1 0.2 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: -0.2 -0.2 0.0
        commanding: XYZ 0.1 0.2 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: -0.3 -0.2 0.0
        commanding: XYZ 0.1 0.2 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: -0.4 -0.3 -0.0
        commanding: XYZ 0.1 0.2 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: -0.5 -0.4 -0.0
        commanding: XYZ 0.2 0.3 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: -0.6 -0.5 -0.0
        commanding: XYZ 0.2 0.3 -1.0 yaw: 0.7 V: 0.6 0.5 0.0 A: -0.7 -0.6 -0.0
        commanding: XYZ 0.2 0.3 -1.0 yaw: 0.7 V: 0.5 0.5 0.0 A: -0.7 -0.6 -0.0
        commanding: XYZ 0.2 0.3 -1.0 yaw: 0.7 V: 0.5 0.4 0.0 A: -0.7 -0.6 -0.0
        commanding: XYZ 0.2 0.3 -1.0 yaw: 0.7 V: 0.5 0.4 0.0 A: -0.8 -0.7 -0.0
        commanding: XYZ 0.2 0.3 -1.0 yaw: 0.7 V: 0.5 0.4 0.0 A: -0.8 -0.7 -0.0
        commanding: XYZ 0.3 0.3 -1.0 yaw: 0.7 V: 0.4 0.4 0.0 A: -0.8 -0.7 -0.0
        commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.4 0.3 0.0 A: -0.8 -0.7 -0.0
        commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.4 0.3 0.0 A: -0.8 -0.7 -0.0
        commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.4 0.3 0.0 A: -0.7 -0.6 -0.0
        commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.3 0.3 0.0 A: -0.5 -0.5 -0.0
        commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.3 0.3 0.0 A: -0.4 -0.3 0.0
        commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.3 0.3 0.0 A: -0.3 -0.3 0.0
        commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.3 0.2 0.0 A: -0.4 -0.4 0.0
        commanding: XYZ 0.3 0.4 -1.0 yaw: 0.7 V: 0.3 0.2 0.0 A: -0.6 -0.5 -0.0
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.2 0.2 0.0 A: -0.8 -0.7 -0.0
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.2 0.2 0.0 A: -1.1 -0.9 -0.1
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.2 0.1 0.0 A: -1.3 -1.1 -0.1
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.1 0.1 0.0 A: -1.4 -1.1 -0.1
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.1 0.1 0.0 A: -1.3 -1.1 -0.1
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.0 0.0 0.0 A: -1.0 -0.9 -0.1
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.0 0.0 0.0 A: -0.7 -0.6 -0.1
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.0 0.0 0.0 A: -0.3 -0.2 -0.0
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: 0.0 0.0 0.0 A: -0.0 -0.0 -0.0
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7 V: -0.0 -0.0 0.0 A: -0.0 -0.0 0.0
        FINISHED TRAJECTORY
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.4 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.5 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.5 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.5 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.5 -1.0 yaw: 0.7
        commanding: XYZ 0.4 0.5 -1.0 yaw: 0.7

        1 Reply Last reply Reply Quote 0
        • G
          greg_s
          last edited by

          @ApoorvThapliyal, if you/your team needs anymore information or data, do let me know. Thank you.

          A 1 Reply Last reply Reply Quote 0
          • A
            ApoorvThapliyal @greg_s
            last edited by

            Hey @greg_s
            I just wanted to confirm, are you dragging the planned point to the height desired? By default, simply clicking on the map will generate a point at height 0.
            Let me know, thanks

            G 2 Replies Last reply Reply Quote 0
            • G
              greg_s @ApoorvThapliyal
              last edited by

              Hello @ApoorvThapliyal,

              Yes, I am dragging the point up and panning the camera around to ensure it is roughly the same height as the drone. The line drawn for the path is pretty straight and at the correctly level. The drone just ends up flying down below the point after I have move it.

              1 Reply Last reply Reply Quote 0
              • G
                greg_s @ApoorvThapliyal
                last edited by

                Hello @ApoorvThapliyal,

                Is there anything more your teams need to investigate/troubleshoot the issue? Thanks.

                A 1 Reply Last reply Reply Quote 0
                • A
                  ApoorvThapliyal @greg_s
                  last edited by

                  Hey @greg_s
                  I was able to reproduce the issue where the drone does not fly correctly toward the setpoint. I think reviewing the extrinsics.conf file is a good next step, as there may be an incorrect transform defined there.

                  G 2 Replies Last reply Reply Quote 0
                  • G
                    greg_s @ApoorvThapliyal
                    last edited by greg_s

                    Hey @ApoorvThapliyal,

                    Here is the output of the extrinsics:

                    voxl2:~$ voxl-inspect-extrinsics --all
                    name: D0014_Starling_2
                    #0:
                    parent: imu_apps
                    child: tracking_front
                    T_child_wrt_parent: 0.037 0.000 0.001
                    RPY_parent_to_child: 0.0 90.0 90.0
                    R_child_to_parent: 0.000 -0.000 1.000
                    1.000 0.000 -0.000
                    -0.000 1.000 0.000

                    #1:
                    parent: imu_apps
                    child: tracking_down
                    T_child_wrt_parent: -0.088 -0.004 0.027
                    RPY_parent_to_child: 0.0 0.0 180.0
                    R_child_to_parent: -1.000 -0.000 0.000
                    0.000 -1.000 -0.000
                    0.000 0.000 1.000

                    #2:
                    parent: imu_apps
                    child: tracking_rear
                    T_child_wrt_parent: -0.092 0.016 0.004
                    RPY_parent_to_child: 0.0 -90.0 -90.0
                    R_child_to_parent: 0.000 0.000 -1.000
                    -1.000 0.000 -0.000
                    0.000 1.000 0.000

                    #3:
                    parent: imu_apps
                    child: hires
                    T_child_wrt_parent: 0.039 0.000 0.019
                    RPY_parent_to_child: 0.0 90.0 90.0
                    R_child_to_parent: 0.000 -0.000 1.000
                    1.000 0.000 -0.000
                    -0.000 1.000 0.000

                    #4:
                    parent: body
                    child: imu_apps
                    T_child_wrt_parent: 0.029 -0.006 -0.016
                    RPY_parent_to_child: 0.0 0.0 0.0
                    R_child_to_parent: 1.000 -0.000 0.000
                    0.000 1.000 -0.000
                    0.000 0.000 1.000

                    #5:
                    parent: body
                    child: imu_px4
                    T_child_wrt_parent: 0.004 0.007 -0.016
                    RPY_parent_to_child: 0.0 0.0 0.0
                    R_child_to_parent: 1.000 -0.000 0.000
                    0.000 1.000 -0.000
                    0.000 0.000 1.000

                    #6:
                    parent: imu_apps
                    child: lepton0_raw
                    T_child_wrt_parent: -0.085 0.013 0.024
                    RPY_parent_to_child: 0.0 0.0 90.0
                    R_child_to_parent: 0.000 -1.000 0.000
                    1.000 0.000 -0.000
                    0.000 0.000 1.000

                    #7:
                    parent: body
                    child: tof
                    T_child_wrt_parent: 0.066 0.009 -0.012
                    RPY_parent_to_child: 0.0 90.0 180.0
                    R_child_to_parent: -0.000 -0.000 1.000
                    0.000 -1.000 -0.000
                    1.000 0.000 0.000

                    #8:
                    parent: body
                    child: ground
                    T_child_wrt_parent: 0.000 0.000 0.033
                    RPY_parent_to_child: 0.0 0.0 0.0
                    R_child_to_parent: 1.000 -0.000 0.000
                    0.000 1.000 -0.000
                    0.000 0.000 1.000

                    1 Reply Last reply Reply Quote 0
                    • G
                      greg_s @ApoorvThapliyal
                      last edited by

                      Hello @ApoorvThapliyal,

                      Is there anything that looks wrong or off about the configuration? Should I look at any other file in particular?

                      Cliff WongC 1 Reply Last reply Reply Quote 0
                      • Cliff WongC
                        Cliff Wong ModalAI Team @greg_s
                        last edited by Cliff Wong

                        @greg_s
                        Hi there, your extrinsics are good: same as a factory Starling. Now, if you altered the voxl-camera-server.conf (e.g. enabled a flip of a camera stream when it wasn't) or physically changed a camera mount point then the extrinsics would need to be adjusted. Let assume that's not the case.

                        From your vvhub trajectory output, it appears your setpoints command the vehicle to move forward (X) and to the right (Y) > 1m while dropping altitude (Z) 0.8m --recall mapper runs in FRD (aka body) space where Z up is negative. Also you do pass through the take off origin (0,0,0). If that's not what you wanted, then we have a "requested trajectory" drawing problem in the portal tool or mapper's found invalid regions/obstacle and could not draw the "requested trajectory".

                        In the former case @ApoorvThapliyal mentions the un-intuitiveness of the portal tool that you already understand.

                        In the latter case, upon "request trajectory" submission, voxl-mapper will analyze the map to see if there are obstacles and alter the trajectory to fly around potential obstacles. You can alter in voxl-mapper.conf:

                        • rrt_min_distance (try 0.125)
                        • esdf_inner_sphere_radius (try 0.15)
                          if you seeing mapper create trajectories going around 'ghost' objects. This should allow RRT generated trajectories to get closer to objects.

                        In checking precision, you'll need to take the trajectory output (e.g. the setpoints in the *commanding: XYZ* messages) and compared it against VIO position to determine tracking error. You have 2 ways to get that data:

                        • option 1 is record you vvhub traj output as above and record the output of voxl-inspect-vins -n then plot compare the tracking error.

                        • option 2 is running voxl-vision-hub --debug_offboard --debug_odometry which you'll need to seperate the traj messages from the vio (T_body_wrt_local) messages, then you ca plot the tracking error.

                        The goal is we want the vio position to follow the commanded trajectory: (it's doing what is told to do). That will narrow down where your concerns are w.r.t what module has a problem.

                        Hopefully that gets you on the right track, just post any outputs you gather that continue to show tracking error.

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