Flying an FPV drone in Place Maintain and Altitude Maintain modes might be considerably improved with the addition of Optical Move and Sonar (rangefinder) sensors. These sensors assist preserve a steady hover by offering exact information concerning the drone’s place and altitude. On this tutorial, I’ll information you thru organising these sensors in iNav.
This information is predicated on the directions supplied by the producer of the optical movement sensor I bought. These steps may not work for different sorts of optical movement/sonar sensors.
Why Add a Rangefinder and Optical Move Sensor?
Including a rangefinder and optical movement sensor enhances your quadcopter’s stability and precision. The optical movement sensor works just like the sensor in a pc mouse, capturing pictures of the bottom to find out motion. The rangefinder (sonar) gives extra correct altitude measurements in comparison with a barometer, which is particularly helpful throughout touchdown, although the utmost efficient altitude is commonly lower than a couple of meters.
Required Elements
You’ll need two issues:
- Optical Move and Rangefinder Sensor
- A drone with an iNav-compatible flight controller and a spare UART
I’m utilizing the MicroAir MTF-01, a rangefinder sensor with built-in Optical Move functionality. It’s an amazing module as a result of the connection and setup are very simple, and it helps iNav. You may get the MTF-01 right here:
I like to recommend getting the bundle that features the USB to TTL programmer, as you would possibly want it to alter settings.
MTF-01 Specs:
- Helps Ardupilot, PX4, and iNav
- PMW3901 optical movement sensor
- Excessive-performance TOF sensor
- Output mode: UART
- Output frequency: 100Hz
- TOF Vary: 0.02-8m
- Vary accuracy: 2%
- Wavelength: 830-870nm
- Resistance to ambient mild: 70K Lux illumination
- Distance FOV: 6°
- Optical movement FOV: 42°
- Ambient mild demand of optical movement: >60Lux
- Optical movement working distance: >80mm
- Energy consumption: 500mW
- Working voltage: 4.0- 5.5V
- Module weight: 4.5g
- Dimensions: 29 * 16.5 * 15mm
For the drone, I’m utilizing the GEPRC Cinebot25. I’m not comfy testing place maintain indoors with any drones with out prop guards, so a small cinewhoop is an ideal selection. See my overview of this drone right here: https://oscarliang.com/geprc-cinebot25/
Nonetheless, the GEPRC flight controller doesn’t help iNav (but), so I needed to swap it out with the Flywoo GN745 V3. Listed here are particulars about this FC and the way I changed it: https://oscarliang.com/flywoo-goku-gn745-aio-v3-fc/
New to iNav? Try my newbie tutorial on find out how to arrange iNav on an FPV drone: https://oscarliang.com/setup-inav-fpv-drone/
Step 1: Configuring the Module
The MTF-01 module helps the next output protocols:
- Microlink: a customized protocol which helps FMT
- MSP: helps iNav
- Mavlink_APM: Mavlink protocol for Ardupilot
- Mavlink_PX4: Mavlink protocol for Pixhawk 4
My unit was set to Microlink by default, so I needed to change it to MSP protocol to work with iNav. You possibly can simply change the output protocol of the MTF-01 utilizing the MicoAssistant software program, however you will want a USB to TTL programmer.
Obtain MicoAssistant software program: https://github.com/micoair/MTF-01_USER_MANUAL
Join the MTF-01 to your PC utilizing the USB to TTL module.
Open the MicoAssistant software program, choose the proper COM port within the higher proper nook, set the baud charge to 115200, and click on on the connection icon.
As soon as linked, click on on the Setup Menu (gear icon), choose the protocol you need to use (on this case, MSP), after which click on the WRITE button.
Step 2: Wiring the Sensors
Join the 4 wires from the MicroAir MTF-01 sensor to any spare UART in your flight controller. I linked it to UART4 on my FC.
- 5V to 5V
- GND to GND
- TX to RX
- RX to TX
Observe: If the rangefinder and optical movement sensor don’t get powered through the USB cable, you may need to plug in a battery to energy these sensors.
Mount the sensor on the underside of the quad, making certain there’s nothing obstructing the view of the sensors. Use touchdown gears to make sure there’s enough clearance between the bottom and the sensors throughout takeoff, ideally a few centimeters or extra.
Earlier than continuing, take away the propellers out of your quadcopter for security. Join the battery after which join the flight controller to your laptop.
Ports
Open iNav Configurator, go to the Ports tab, and configure the UART you wired up as MSP. Save and reboot.
Configuration
Within the Configuration tab, discover the “Sensors & buses” part. For Rangefinder and Optical Move, set them to MSP. Save and reboot.
After rebooting, the “Move” and “Sonar” sensor icons on the highest of iNav Configurator ought to flip blue, indicating they’re working appropriately. If these sensors don’t flip blue however crimson, examine that the TX and RX wires are appropriately linked and that the battery is powering the sensors.
CLI Settings
Copy and paste the next traces within the CLI (these are configurations steered by the maker of MTF-01).
- Lifeless Reckoning: by enabling
iNav_allow_dead_reckoning
within the CLI, it enhance efficiency throughout temporary GPS outages. - Most Peak Setting: by setting the
inav_max_surface_altitude
within the CLI, it defines the utmost top at which the rangefinder is efficient, in cm.
set nav_mc_vel_z_p = 150 set nav_mc_vel_z_i = 250 set nav_mc_vel_z_d= 25 set nav_mc_pos_xy_p = 80 set nav_mc_vel_xy_p = 50 set nav_mc_vel_xy_i = 40 set nav_mc_vel_xy_d = 60 set debug_mode = FLOW_RAW set inav_allow_dead_reckoning = ON set nav_max_terrain_follow_alt = 200 set inav_max_surface_altitude = 200 save
Debug
Within the Sensors tab, gently tilt the quad aspect to aspect and entrance to again. The waveform of Debug 0 ought to look just like Debug 2, whereas Debug 1 ought to look just like Debug 3.
Debug 0/1 represents the accelerometer readings, whereas 2/3 are from the optical movement sensor. This take a look at verifies the orientation of the optical movement sensor. The amplitude may not be the identical, but when they transfer in the wrong way, you would possibly want to alter the configuration in MicroAssistant (or set align_opflow=cw180 in CLI).
Calibration
Maintain the drone round 50-60 cm above the bottom and carry out the optical movement sensor calibration in iNav Configurator. This entails gently tilting the quad aspect to aspect and entrance to again barely and gently for about 30 seconds with none horizontal actions. Hit save and reboot when completed.
MTF-01 recommends a scale worth between 4 to six. When you get a worth exterior this vary, repeat the calibration at a greater top with extra regular fingers.
Modes
Assign a change that may allow ANGLE, NAV POSHOLD (place maintain), NAV ALTHOLD (altitude maintain), HEADING HOLD, and SURFACE on the identical time.
Step 4: Testing the Setup
- Arm the drone and elevate it right into a hover. If it doesn’t arm as a result of lack of GPS lock, bypass this by pushing the throttle/yaw keep on with the underside proper whereas arming.
- Swap to Place Maintain mode and observe the steadiness.
- Swap to Altitude Maintain mode and examine the altitude stability.
Troubleshooting and Professional Ideas
-
- Sensor Initialization Failure: Make sure the wiring is appropriate and the sensors are powered.
- Inaccurate Place Maintain: Modify the Optical Move scaler worth.
- Altitude Drifting: Recheck the Rangefinder configuration and calibration.
- Initialization Clearance: Guarantee there may be no less than a few centimeters of clearance between the sensor and the bottom when powering up the quadcopter to keep away from incorrect readings.
Conclusion
Including the MTF-01 rangefinder and optical movement sensor to your iNav FPV drone is a simple course of that considerably enhances the steadiness and precision of your drone in Place Maintain and Altitude Maintain modes, in addition to touchdown accuracy. With these sensors, your quadcopter will carry out extra like a DJI digital camera drone, holding its place and altitude with better precision. Joyful flying!