Inspiration
Stems from a series of successive projects for my Robotics class.
What it does
Brains for a mobile robot. Detect landmarks, create maps, self-localize, navigate maps, and control robot velocity and steering-angle. Can be ported to work with other car-like robots which take velocity and steering controls.
How I built it
Python. Camera input processing in OpenCV for perception.
General Takeaways for Working with Robots
Consistent error is generally preferred to inconsistent accuracy
It was frustrating when my robot ‘worked’ in one trial, but then did something completely erratic the next trial. If it was consistently ‘off,’ at least I had control, and could make incremental improvements from then on.
Simulations are great for proofs-of-concept
Simulations are excellent resources for prototyping robotic behaviors and situations, at a fraction of the time and cost of running the same test in the real world, allowing to make quick and cheap improvements to the algorithms.
Simulations are still not the real world
Even if the robot behaves perfectly in the simulator, the second you take it to the real world, it can feel like it has a mind of its own. I found the best workflow was to prototype smaller, specific tasks on the computer, then take it to the real robot. This allowed me to iterate and adapt my software to the robot’s specific physical characteristics and constraints.
Keep it Modular
Similar to the above, it was useful for me to harden specific, smaller behaviors and tasks, than to try and build the entire system or plan before testing the plan’s components. Additionally, I found it useful to separate sensing, localizing, planning, navigation, and control into their own interchangeable modules.
Sensory Feedback is a Must-have
The best dead-reckoning model is still going to accrue error over time, and eventually this will cause all prior plans to self-destruct. Even attaching a cheap, noisy, monocular camera provided enough external information to my robot to allow it to self-localize and stay on plan. Removing the camera saw my robot do its own thing.
What's next for GoRobot
Working towards generalizing the overall architecture and encapsulating the individual components for easier adaptability to other robots.
Log in or sign up for Devpost to join the conversation.