GUIDED_NoGPS and GUIDED

Hello,

After extensively researching GUIDED_NoGPS and GUIDED modes, I’m still seeking answers to some specific questions.

Setup Details: My system is designed without any position sensors, meaning it lacks both GPS and optical flow sensors, adding such a sensor is not an option. However, it is equipped with an onboard computer.

Usage Scenario: Initially, I launch in stabilize mode, continue flying in this mode for some time, and then switch to either GUIDED_NoGPS or GUIDED mode using my onboard computer. This transition allows the onboard computer to assume control, managing inputs for pitch, roll, yaw, and the Z axis. These inputs are processed through a PID on the onboard computer, which then adjusts these axes. My aim is to control the drone’s tilt in the pitch, roll, and yaw axes and manage the Z axis for ascending and descending. The tilt should be expressed as the drone’s Euler angles in degrees.

Here are my questions:

  1. Considering the absence of position sensors, is it appropriate to use GUIDED or GUIDED_NoGPS modes? My research suggests that GUIDED_NoGPS might be the only viable option.
    Answer received: GUIDED_NoGPS is the only option

  2. When controlling the drone’s attitude, should I use GUID_OPTIONS=8? Currently, I am using GUID_OPTIONS=9, but I am considering changing it to 1 to control altitude as If GUID_OPTIONS = 0: climb rate where 0.5=no climb, 0=descend at WPNAV_SPEED_DN, 1=climb at WPNAV_SPEED_UP If GUID_OPTIONS = 8: thrust from 0 to 1. What i need to know if GUID_OPTIONS = 0 is supported by
    GUIDED_NoGPS.
    [Reference: ArduPilot Documentation on Copter Commands in Guided Mode]

  3. For targeting attitude, should I utilize quaternionization, or would body rates be more suitable for my purposes?
    Answer received: Use quaternionization

  4. Is there any mechanism to compensate for drift in the GUIDED_NoGPS mode without a GPS or position sensor?
    Answer received: No compensation for the drift in position is possible

  5. In simulations using attitude control with GUID_OPTIONS=8, I’ve noticed the drone responds poorly to the rotational attitude targets I set. Is there a system to compensate the the error in Drone angles?

  6. I’m planning to integrate an RC mixup feature into the system. This will allow the user to make specific adjustments by reading the RC channel and modifying the quaternionization angles according to their input. Essentially, if the user wishes to control the Z axis or roll, they can do so, while I manage the compensation for Pitch and Yaw.

GUIDED requires a GNSS receiver, so GUIDED_NOGPS is your only option.

Use quartenions whenever possible.

No drift compensation is possible without GNSS receiver and without optical flow. Can you use a vicon or other beacons?

The flight is conducted outdoors, therefore not vicon or other beacons can be present.

What about GUID_OPTIONS? Is GUID_OPTIONS=0 supported in GUIDED_NoGPS?

I am curious on how you will compensate for IMU drift

My system detect and tracks an coordinate on the video stream. All navigation is done around it, based on which i do the position correction in angles, AKA optical flow. It’s similar to optical flow in the concept, but no report on the actual position per say.

IMU drift is acceptable, i don’t quite rely on the data from it when it comes to navigation from onboard computer. What matters is that there is no significant low frequency noise, which i can filter.
As long as i get the exact behavior as alt hold, i would be happy with the results.

Well, technically you should work with visual_position_estimate then if yous system can provide the 6DoF

1 Like

Hi, do you managed to fly without gps. If yes, I’m trying to do same and have a few questions.

I have found out that an optical flow sensor does the job, as long as you fly below 2 meters. You can even fly with GUIDED mode if you set it up right. Optical FLow 3901-L0X does the job. I have tried different things, but having a positioning sensor makes the job easier.

You can also use a setup with cameras indoor and track the movent of the drone, then you estimate the position from different cameras. This one is a bit harder to implement, then you need to pass the position data to the onboard computer and fly the drone with GUIDED no gps mode.

Thank you, I managed to arm my drone with guided nogps but later I have no idea which commands work or not contrary to guided mode.

I use pymavlink’s rc_channels_override_send, it works, but not sure about guided_nogps. Maybe SET_ATTITUDE_TARGET will work, but I don’t test it yet. You could check my post on the same problem to get some code examples. Any your experiments results will also be interesting for me and others.