Autonomous Nitrate Monitorring in Cornstalks
August 2023 - December 2024
Paper
The Autonomous Nitrate Monitoring (NiMo) project was my group capstone for the Masters of Science in Robotic Systems Development (MRSD) program (with teammates Saudamini Ghatge, Shara Lawande, Sruthi Mukkamala, and Shrudhi Ramesh Shanthi). Nitrogen is an essential nutrient for the growth of corn that can be applied via fertilizer during the early stages of development. Often fertilizer is over-applied which costs farmers extra and harms livestock, humans, and the environment in general. The goal of this project was to create a system that can autonomously navigate through a cornfield to specified sampling locations and take nitrate concentration readings by inserting a needle-like sensor into the base of cornstalks.
My primary technical responsibilities were the perception, manipulation, and user interface subsystems. The goal of the perception subsystem was to use an RGB-D camera to identify suitable cornstalks (those of a particular width and within the workspace of the robotic arm) and determine the angle of insertion with the highest probability of success (cornstalks have an ovular cross-section which makes one side larger than the other). The cornstalk identification had been previously implemented using Mask R-CNN and RANSAC, and I implemented a width detection system that could identify the width of cornstalks in millimeters so the angle of maximum width could be selected for insertion.
The goal of the manipulation subsystem was to use the xArm6 to position the custom end-effector containing the RGB-D camera and nitrate sensor to accomplish tasks related to stalk detection, sensor cleaning & calibration, and sensor insertion. We originally used the xArm API for motion planning but found that it did not account for singularities and executed trajectories which led to motor errors. We pivoted to the MoveIt package which better handled singularities and allowed us to implement collision boundaries for the robot and environment.
I also developed the user interface for this project, which allows the user to enter sampling locations for the robot to visit and receive information about the data collected at each sampling location and the robot's location in the field. I also aided in the software development of the other subsystems as we all collaborated to complete the project.
On the non-technical side, I acted as the project manager for the first semester of the project. This involved running daily standup and weekly refinement meetings, keeping track of tasks, managing the schedule, keeping meeting notes, and communicating with sponsors. In the second semester, these tasks were split among two people and I acted as the co-project manager.
We were fortunate to get the opportunity to test our system in a real cornfield in Ames Iowa in collaboration with Iowa State University. With the field testing, in addition to the spring and fall validation demos at the end of each semester, we demonstrated our system working successfully.
This was an exciting project to work on and I was lucky enough to collaborate with a great team and supportive sponsors. I learned a lot not only in terms of technical skills but also regarding project management and teamwork. There is much more information on our team website about the design and implementation of the system, and the code is available on GitHub.