Inspiration
As we listened to Shayne Rich's talk, we realized how John Deere's autonomous systems must demonstrate an ability to complete its task reliably while keeping safety at the forefront of development. To adhere to these ideals, we wanted to build a robot that could both follow its given trajectory and avoid obstacles as needed, similar to what's needed in the field.
What it does
Our Lego Line taxi autonomously follows a path outlined by a long line of electrical tape and adjusts to the path at a specified frequency. Along the way, there are obstacles that the Linebot must navigate around to ensure safety. Our robot takes an efficient path to get around the obstacle and returns to continue the path.
How we built it
For the general robotic functions, we designed our software with a state machine architecture, where the current state would update each cycle. This allowed for a simple and easy-to-follow workflow when jumping from one action to another.
The physical design had three extra mounts (for the camera and the two sensors), and the components were fastened with quite a bit of tape. We also brought a couple of Lego mini figures along for the ride.
For the software, we used a camera to perform color filtering techniques to identify the path's line. Based on its location in the camera output, the robot adjusted its position to center the path. Obstacles were another issue. We leveraged one of the two given ultrasonic sensors to detect obstacles and stop before a collision. The second sensor was used to travel along the right of the obstacle and finally return to the path. From there, we went on a journey of continuous parameter tuning; the motor speeds, sensor distances, and color thresholds all needed to be carefully calibrated.
Challenges we ran into
There were several issues with the hardware, including a broken micro USB port and two burned out ultrasonic sensors. But, once we put everything into place, it was a matter of testing and tuning. The software was easier to plan out, but as mentioned previously, tuning was extremely time-consuming. There were issues with the color thresholds, especially as we tested in different lightings and color gradients. Moreover, our sensors would also pick up inaccurate data which caused incorrect state transitions.
Accomplishments that we're proud of
Our line following algorithm and obstacle avoidance was much better than we initially hoped. Learning the basics of computer vision and image processing, and having the techniques be robust was an exciting moment in our 36 hour journey. In fact, being able to construct and fully functioning robot, from both the physical design to the software architecture was extremely fulfilling.
What we learned
We learned how to engineer our software ideas into a hardware project. Reading sensor and camera data, control through remote access, and designing the physical aspect of our robot were all new challenges we had to overcome. More specifically, we learned how to use two completely independent types of data (camera and ultrasonic) to update our systems state and determine the next actions.
What's next for The Lego Line Taxi
Our Lego Line Taxi has quite a few possible future steps that make the project even more exciting. Firstly, replacing the ultrasonic sensors with better sensors (i.e. radar) would enhance our robot's reliability and accuracy. Additionally, we had more planned, including a vision system for plant health recognition that we didn't have time to implement. Finally, a method to measure speed, such as encoders or an IMU, would allow us to calibrate our robot's movements to a much better degree.
Log in or sign up for Devpost to join the conversation.