Greetings!
We are delighted to present our submission for the NXP Hover Games 3 Competition. Our team consists of passionate and skilled undergraduate students from diverse academic backgrounds, such as engineering, computer science, natural science, and mathematics. Together, we work towards designing, building, and programming drones for various applications.
Our team firmly believes in the potential of drone technology to revolutionize many fields, ranging from firefighting to enhancing food production. We are determined to explore and push the boundaries of what is possible with this exciting technology. Through this project, we aim to showcase our work and extend a helping hand to other drone enthusiasts in their development endeavors.
BackgroundAgriculture is a critical sector for Indonesia's economy, accounting for around 13.7% of the country's GDP. With its vast plantations and abundant resources, Indonesia has the potential to become a major player in the global agricultural market. However, farmers in Indonesia face several challenges, including a lack of information about their crops and the surrounding environment. To address this issue, we propose implementing a system of sensors and drones that can provide real-time data to farmers. By analyzing this data, farmers can make informed decisions on crop management, potentially enhancing yields, improving crop quality, reducing crop failures, and increasing income. Drone technology has the potential to revolutionize agriculture in Indonesia and resolve several issues encountered in the agricultural sector.
The Main Problems:Improving Efficiency and Reducing Costs
Drones offer a cost-effective alternative to traditional agricultural methods such as manual labor and expensive equipment. They provide efficient monitoring and management of crops, allowing farmers to conquer the difficulties associated with farming in diverse and challenging environments. With their bird's-eye view of crops and terrain, drones enable early identification of potential issues and easy access to hard-to-reach areas, improving efficiency and reducing costs. Moreover, drones are less destructive than tractors due to their lightweight design, making them more flexible and adaptable for deployment.
Reduced Workforce and Personnel Requirements
The use of autonomous drones significantly reduces the need for human interaction, as they can search large areas in far less time than traditional methods. This means that tasks that would normally require the labor of several individuals can now be performed with minimal personnel. By employing drones, businesses can reduce workforce requirements while increasing productivity, thus streamlining operations and lowering costs.
Enhanced Uptime and Minimized Risks
Drones, being mechanical, offer superior uptime and reduced risks compared to traditional farming practices. As they are not subject to diseases and fatigue, they minimize the chances of disease spreading among farmers, while also reducing their workload. Furthermore, they help farmers cover more ground in less time, increasing efficiency and productivity. With their automated capabilities, drones can be ready at any time, ensuring that urgent tasks are handled promptly, leading to a more sustainable and efficient food production system, ultimately resulting in increased yields.
Enhancing Crop and Soil Health Monitoring with Drones and Sensors
Our project involves deploying sensor nodes throughout a field to relay real-time information via the internet to the cloud. This technology enables precise GPS accuracy and monitoring of crop and soil health. In the event of an issue, a drone can deliver an instant response to provide the necessary attention. Furthermore, farmers can program the drone to run planned routes for executing water and pesticide-spraying operations based on data-driven decisions. Our solution enhances crop and soil health monitoring, resulting in more efficient and effective crop management.
Overall, the use of drones in agriculture has the potential to solve several problems faced by farmers in Indonesia. We plan to help by designing a budget-friendly autonomous system that hopefully can be implemented on a bigger scale and can help the lives of the farmers.
Our SolutionIn short, we designed an autonomous system that is able to monitor crops and pass it to a webserver, where the webserver can command the drone when needed. The drone will be able to fly to the designated waypoint and release any substance required. The drone is also able to observe surrounding pests with machine learning and send it to the webserver. Don't worry, we don't plan in harming any animals in the process.
Bill of MaterialsHardware
- NXP KIT-HGDRONEK66 $490 USD
- NXP i.MX 8M Plus based 8M NavQ Plus Computer TBA
- NXP HGD-TELEM433 $78 USD
- Google Coral Camera $20 USD
- Bosch Sensortec Environmental Gas Sensor BME688 $19.95 USD
- ESP32 $5 USD
- DHT11 $1.13 USD
- YL38/69 $1.2 USD
- Li-Po Battery 4S 5400 mAh $50 USD
- PWM Relay $1.6 USD
- DIY 0.6L Water Tank $0.5 USD
- 12V Diaphragm Water Pump $2.3 USD
- Spacers $0.13 USD / piece
- Hose $0.53 USD / meter
- Pneumatic Hose Connector $0.06 USD / piece
Software
All softwares and services are free except for your deployment site of choice. But in our case, we used Heroku for the MQTT broker function.
System Description- Sensor Network / Ground Module
In ground module, each temperature, humidity, and soil moisture data spreaded in the field will connected to each other and acts as a relay to transfer the sensors data into central ground module. The central is communicating with website via MQTT and drone via Telemetry.
Here's a snippet of the FCU receiving the mission from the ESP and telemetry:
Link: https://github.com/rotary-auav-ui/cigritous/tree/ground-module-
- Drone / Aerial Module
The drone detects aerial pests like crows, and transfer the detected pests via spreaded out Wi-Fi connection from ground module mesh. The drone is also communicating with website via MQTT. Other than detecting pests, the drone is also capable to perform precision landing using AprilTags marker, and also perform in GPS-denied environment using Visual Inertial Odometry sensors, such as Intel RealSense T265.
Link: https://github.com/rotary-auav-ui/cigritous/tree/main-
- Web Server Cigritous
Web page logs sensor data and display it in intuitive and user-friendly interface. The user can also control the drone like sending waypoints, setting up sensor positions for spraying, and giving commands to the drone.
Link: https://github.com/rotary-auav-ui/cigritous/tree/web_server
In summary, the Cigritous agriculture drone is a powerful tool designed for the agricultural industry. Its lightweight, durable design features advanced hardware and software components, including high-resolution cameras and GPS sensors, allowing it to perform various tasks such as crop monitoring, watering and detects aerial pests like crows, all the data sends to the web app and can be monitored from it . With the flight time of up to 10 minutes, it can cover large areas quickly and efficiently. The drone's applications in the agricultural industry are vast, from crop mapping and irrigation management to disease and pest detection. The use of the drone can improve the accuracy and speed of agricultural operations while reducing costs. Moreover, the drone's safety features, such as obstacle avoidance systems, automatic return to home, and emergency landing protocols, ensure safe and reliable operation.
Build ProcessAssembling the drone involves several steps that were carefully followed to ensure a successful outcome.
- Set up motors and attach carbon fiber tubes.
We assembled the motor and attached the four motor mount boxes to the end of each arm. The three wires from the motor slipped through the arm and emerged from the other end of the tube. Once it's done, we tighten the screws to secure the components in place. We also assembled the bottom plate and landing gear.
- Connect ESC and PDB on the bottom plate.
To optimize the use of space on this plate, we placed the ESC and PDB on the same level. We used the pre-soldered PDB provided (the one with banana plugs) and connected three wires from the four ESCs that we have. Then, we secured the position of the power distribution board and used zip ties to attach the ESCs to the bottom plate.
- Assemble middle plate and tube clamps.
We used the same tube clamps that are also used in the motor mount to clamp the two plates to one another. We advice to make sure that this part is tightened, as it will cause some issues with the drone, which will be discussed later on.
- Attach power module and receiver.
The receiver was attached to the lower part of the bottom plate and secured with zip ties. Additionally, we utilized the 3D-printed antenna mount from the kit to achieve a perpendicular angle, as antennas emit a stronger signal when perpendicular to each other. The cable, which has a JST-GH connector from the receiver, will be threaded through the middle hole. The power module was suspended beneath the bottom plate and connected to both the power distribution board and the power source.
- Connecting all FMU wires to GPS, receiver, power module, and telemetry.
To keep the components on place, first we screwed the GPS and zip-tied the telemetry on the middle plate. Next, we connect the wires from each component to the FMU.
- Place water pump, bottle and relay PWM.
A bottle is zip-tied under the battery. The bottle is punctured and a 6.5 x 10 mm hose is attached to the hole, then glued to ensure that the hose does not detach. The hose is connected to a pump, where the pump is controlled by an optocoupler PWM relay, which allows the FMUK66 to directly control the pump. The pump is located at the back of the drone.
- Install camera, top plate, and NAVQ+.
We insert the Google Coral Camera to the CS1 port of the NAVQ+ and put it inside the enclosure supplied by NXP. We then mount it to the rail platform which will be mentioned later. To assemble the top plate, we only need to tighten it with spacers connected to the mid plate. We then mount the NAVQ+ to the 3D printed mount, and attach it with the corresponding bolts.
Here are some snippets of us building it:
For a detailed assembly guide, you can refer to this guide: https://nxp.gitbook.io/hovergames/userguide/assemblyIssues Faced
While building and testing our drone, we ran into some issues that hindered our results. Here are the following and we hope it might help others in the foreseeable future.
- Frame Vibration
Based on our analysis, the NXP KIT-HGDRONEK66 (LJI X4 500 Frame) drone has a fairly high level of vibration, compared to the F450 frame's vibration. We can see from the graph that the raw acceleration at the Z axis has been occasionally merging with the Y and X axis. This causes the drone to become unstable during takeoff and flight, reduces its flight time, and makes it less reliable. We used PX4's Flight Review to analyze the graphs required. We recognize that this vibration arises from loose holders on the arms and landing legs. We have tried to tighten it as hard as possible, but the result is still not optimal. Our goal is to secure all the parts tightly so that there are no loose parts. The following are our ways to reduce vibration on this drone:
- Add permanent glue (or other types of glue) to increase grip between the landing leg and holder.
The carbon rod included in the kit provided has a fairly smooth surface, so we had the idea to add permanent glue to make the rod surface (which comes in contact with the holder) rougher and a little bit thicker, which adds more grip. This proves to increase the contact of the arm and the landing leg to the holder by a lot.
We wouldn't advice you to glue the carbon rod directly on the holder otherwise you won't be able to dismantle the drone later.
- Use zipties to prevent oscilation
This reduces the wobble on the landing leg mount, increasing liftoff stability. This also avoids from the landing legs stretching out too far, putting strain on the frame and bending it outwards. In addition, you can also add a tie to the battery so that it doesn't shake when the drone is moving in roll or pitch orientation. From what we observed, using one velcro strap from the kit is not enough to prevent the drone from oscillating due to the battery being wobbly.
- Replace the nut included in the kit with a separate ring and nut
By replacing the built-in nut from the kit with M3 size ring and nut, we are able to tighten the arm holder and motor more securely so that no vibration arises from loose parts.
- Level out the motors to reduce motor instabilities and smoothen the flying experience.
After implementing the steps above, we managed to reduce the frame vibration significantly, which can be seen in this graph below. Having a more rigid and sturdy build will help drones to fly smoother and more stable.
- Electromagnetic Interference
During our first test flights, we tested the position hold mode which uses the GPS module to hold the drone's position. But after engaging the mode, the drone seems to be toiletbowling. For those who have never heard of such thing, it's usually when the drone flies around an orbit or a pattern, when it's supposed to be staying as still as possible. Our analysis determined that one of the cause might be electromagnetic interference, which will be shown in the graphs below. This guide from Ardupilot help us in determining what should be done to mitigate this.
The graph above tells us that the interferences are above the recommended limits, which are around or below 80. We can see that it hovers around 130-180, such that it disrupts the GPS module's ability to hold the drone's position. For those who want to see it in action, we have a snippet of it right here:
After confirming that electromagnetic interference is the issue, here are the changes that we did to mitigate the problem:
- Twist and shield power wires and components
By twisting the wires, it would help cancel out or at least minimize the electromagnetic interferences coming from high powered cables, which are mainly power cables from the power distribution board. Shielding the cables and some electrical components will create a Faraday Cage to block some of the electromagnetic fields generated. We twisted and shielded the wires coming from the power distribution board with copper tape, but aluminium foil would also be viable. We also shielded the telemetry module that might be a source to electromagnetic interference.
- Shield the top layer
- Increase the length of the GPS mast
If the GPS receiver is placed too low on the drone, it may be obstructed by the drone's body or other components, and may not be able to receive signals from enough GPS satellites to accurately determine the drone's position. Additionally, if the GPS antenna is placed too close to other electronic components on the drone, it may be subject to interference which can also affect the accuracy of the GPS system. In our case, we opted to use additional M3 Brass or Aluminium Spacer to increase the length of the GPS mast.
We didn't use nylon spacers because nylon is relatively more flexible than brass or aluminium. If the pole experiences excessive bending, the GPS will become less accurate.
- Increase gap between FMUK66 and top plate
We noticed that the distance between the top plate and FMUK66 has a fairly small gap. This will cause electromagnetic interference (from NAVQ+) which can interfere the work of FMUK66. Therefore, we use small spacers to increase the gap between the top plate and FMUK66.
We also tightened the spacer with a M3 6mm screw to ensure its rigidity.
- Ground the shielded components
We also grounded the copper and aluminium shielding to reduce electromagnetic interference and to reduce the static electricity running through the NAVQ+, since there were some occasions where we were subtly electrocuted by the NAVQ+. By doing so, it will accommodate a low resistance path to ground, thus reducing the noise.
After implementing the modifications mentioned, it resulted in a stable drone that could hold it's position regardless of external factors such as wind. We also managed to reduce the GPS jamming levels to a safer level, thus resulting in a more stable flight.
The changes above resulted a more accurate GPS based position lock, thus minimizing or even eliminating the toiletbowling encountered prior to the modifications.
-PID Tuning
For those who aren't familiar with PID tuning, this would be a total nightmare to deal with. PIDs are important for the drone to correct itself by adjusting the speed of the motors based on the the three values which are Proportional, Integrative and Derivative. Based on our experience, we were able to find ideal tuning setups with the help of PX4's autotune. However, the autotune on our drone failed over and over again. The drone is supposed to move and jerk over the three axes, but the movement from the drone was minimal. Our solution is to increase one of the parameters, MC_AT_SYSID_AMP. This increases the amplifier of the movement, resulting in a successful autotune. But if the parameter is nowhere to be seen, it must be unlocked by enabling the parameter MC_AT_EN, and set it to enabled. Once that parameter has been enabled, the drone is able to autotune smoothly. We advice to slowly increase the value until the process succeeds. This resulted us with a good starting point, and would help others as well.
We were able to find a tune that works for our drone, and these are the parameters:
Rate Controller
MC_ROLLRATE_K 0.7
MC_ROLLRATE_D 0.0016
MC_ROLLRATE_I 0.15
MC_PITCHRATE_K 0.75
MC_PITCHRATE_D 0.0024
MC_PITCHRATE_I 0.15
MC_YAWRATE_K 0.6
MC_YAWRATE_I 0.06
Altitude Controller
MC_ROLL_P 1.5
MC_PITCH_P 1.5
MC_YAW_P 2
Velocity Controller
MPC_XY_VEL_P_ACC 1.55
MPC_XY_VEL_I_ACC 1
MPC_XY_VEL_D_ACC 0.35
MPC_Z_VEL_P_ACC 4
MPC_Z_VEL_I_ACC 2
MPC_Z_VEL_D_ACC 0
Position Controller
MPC_XY_P 0.95
MPC_Z_P 1.00
Note that while these parameters work well for our drone, the performance may vary depending on your own setup. The number of battery cells, motor specifications and drone center of gravity will affect how your drone behaves. The tuning above is for the NXP Hovergames droneset with 1kg payload and using a 4S battery.
- Storage Limitation
While compiling the program, we encountered issues where we ran out of space, thus making it impossible to finish the build. We made a quick guide to assign a swap file and merge the internal EMMC with the external SD Card.
Link: https://github.com/rotary-auav-ui/GitBook-NavQPlus/blob/main/dev-guide/software/emmc-extended-setup.mdAdditional Things
- Additional plate for Google Coral Camera Mount
Since we use the rail plate from the kit to install the water pump, we designed an additional rail plate that is smaller in size to mount the camera. You can print this 3D model using PLA/PLA+ on your 3D printer. Also, you can using an additional adhesive (in this case we use double tape) to secure the camera mount that came from the kit better.
Move the black plate that came from the kit to the back of the drone and attach this 3D printed plate in front of the rail.
You can find this 3D model on our attachment section.Final ResultFuture Improvements
The pump we used for this project is not yet optimal for the spraying system. You can use a pump with higher power to achieve a larger spraying area. Additionally, you can use a water tank with better material so that when the water tank is in a vacuum state, it will not be damaged.
Comments