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

    How does precision landing works? how is it triggered ?

    Ask your questions right here!
    3
    8
    644
    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.
    • Aldo Castro FreireA
      Aldo Castro Freire
      last edited by

      My question is because based on the video I do not know how precision landing is activated or does it work on all the landings?

      What happened if there is not apriltags on the ground ?

      1 Reply Last reply Reply Quote 0
      • modaltbM
        modaltb ModalAI Team
        last edited by

        At a high level, the april tags provide a mechanism for the system to "relocalize", which can take out possible small drifts that can occur over time.

        Without the april tag, the vehicle can still land just fine, you just might be off target slightly due the noise (think of 1% over 100m could get 1m in drift). If this isn't a problem for your use case then all good. But if you want better precision, you can use something like april tags.

        The april tags have generic IDs like 0, 1, 2... You could set them up at specific locations (at some X, Y, Z), and then put them into a config file on VOXL, and when the system is flying around, the tracking camera can observe a tag and get an "update" that improves its real location.

        Some good relevant content from our wizard can be found in this talk: https://www.youtube.com/watch?v=P0YM2zK0qRc

        1 Reply Last reply Reply Quote 0
        • Aldo Castro FreireA
          Aldo Castro Freire
          last edited by

          My question is how do you get a drone to land on the tag? Do you connect to in offboard mode and set the landing point on the tag?

          1 Reply Last reply Reply Quote 0
          • modaltbM
            modaltb ModalAI Team
            last edited by

            Hi @Aldo-Castro-Freire ,

            The tag's location is pre-programmed as a known location. I might be crossing threads a bit with another one you have, but we have some documentation here

            Here's a demo video: https://www.youtube.com/watch?v=V3vVs8fEOZs

            You can imagine, you have a program flying "waypoints" (in this case, all VIO "derived" and without a GPS), like this one: https://gitlab.com/voxl-public/voxl-docker-images/voxl-docker-mavsdk-python

            Check out a command like this:
            https://gitlab.com/voxl-public/voxl-docker-images/voxl-docker-mavsdk-python/-/blob/master/offboard_position_ned2.py#L41

            Now, say the drone is near the end of this programmed flight, and it "sees" the april tag, the system can then correct itself for a more precise localization (say on top of a landing perch).

            You can configure the last 'waypoint' in the program to the location of the april tag (which is programmed in the config file described in the first link).

            This isn't using GPS... I still need to respond to your other question once I get some more input from the team! 😉

            1 Reply Last reply Reply Quote 0
            • Aldo Castro FreireA
              Aldo Castro Freire
              last edited by Aldo Castro Freire

              Using this as a reference: https://gitlab.com/voxl-public/voxl-docker-images/voxl-docker-mavsdk-python/-/blob/master/offboard_position_ned2.py#L41

              I have an idea on how this works I know that the drone sets the position of the using the apriltag. so for example I can put the position of the tag 1 to be at the origin {0,0,0}. and I can have tag 2 programmed to be at { 1,0,0}.

              Mini Question does local coordinate system means in front is north, right is east, back is south, and left is west ?

              My flow process is this I can use mission mode using a GPS to fly on top of the tag, a mission without landing directly. Then offboard mode is kicked in and when it sees the tag it corrects its position using the tag position as a reference. Then I use:

              await drone.offboard.set_position_ned(PositionNedYaw(0.0, 0.0, 20, 180.0))
              

              This will make the drone descend to 20 meters above the tag. Fair question how high can the drone see the tag ? Also in a NED system does a negative number means going up ?
              the angle is depending if you want the drone facing in a direction.
              then continuing in offboard mode:

               try:
                      await drone.action.land()
              

              This will land the drone. Will this work ?

              1 Reply Last reply Reply Quote 0
              • modaltbM
                modaltb ModalAI Team
                last edited by

                Yes, front is north, east right, etc. I too have to experiment when messing with this, it's not my strongest area of knowledge and I get lost!

                Also yet, negative is going up (NED is north east down, so positive D is down, negative D is up).

                I think 20 meters high depends on the size of the tag... But that seems a bit far, experimentation will show though.

                The angle is going to be referenced from bootup of the VIO system. 0 on bootup is straight forward.

                drone.action.land() doesn't have an idea about location, I think it will just descend until it can't, or stop at 20 meters (in this case, 20 meters below take off point!)

                But imagine you set a position (set_postition_ned) that is the SAME location as the tag, the drone will go to that location based upon it's current reference, and it will see the tag, and correct for any small errors.

                1 Reply Last reply Reply Quote 0
                • Aldo Castro FreireA
                  Aldo Castro Freire
                  last edited by

                  So Basically when drone sees the tag. it marks the position of the tag as 0,0,0. And the position of the drone will be based of that tag ? so if I tell the drone go to 0,0,-10 it will correct its position for x and y, and its altitude z in this case -10 means ten meters up above the tag.

                  I am wondering if there is a way to make the drone to land on the tag, at a specified orientation. Because I am not sure if the drone will change its location when it is told to land cause there are not coordinates given.

                  1 Reply Last reply Reply Quote 0
                  • modaltbM
                    modaltb ModalAI Team
                    last edited by

                    The tag won't be 0, 0, 0 unless you program it to be. You can set it to any values, and you can have multiple tags in the array (see here https://docs.modalai.com/voxl-vision-px4-apriltag-relocalization/#configuration-file)

                    Yes, you can put a tag at say (100, 100, 0). You can fly to say (97, 100, -3), and the vehicle can see the tag and then 'infer' the tag is at exactly (100, 100, 0), and you can have the drone then fly to (100, 100, -0.5) and then land, for example.

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