A quick update to the path planning code and DRVR can now make it around the park without human intervention. It's currently taking about 30 minutes to make a loop.
There were a couple improvements to the path planning algorithm to change the target line if we're not finding the path (like going uphill) and making sure there is a reasonable amount of path and not just a small section. This avoids the robot thinking it can sneak behind the bench near the grass which isn't nearly large enough.
There's a lot of room for improvement. The next ideas are:
- The camera perched on vertical stilts. That means every time the robot moves, the camera shakes back and forth. I current have a .25s delay after each move to let things settle, but putting some supports that prevent forward back movement should improve that.
- The robot currently turns left or right 3 degrees, then waits 0.25s, and takes another picture to re-evaluate. Those small increments are tough for the RVR base. Sometimes it doesn't work, so the robot repeats the command, and eventually it works, but then it has overshot and corrects by turning the other direction. Each of those moves is also time consuming. I can use the image with a small bit of trigonometry to calculate a precise move instead of making multiple small steps.
- In fact, I can optimize turning further by combining the turn with the move command, since it takes a direction argument and time argument.
- The code tells the RVR to drive for 1 second, but that means the distance can be inconsistent. We could look at the inertial reference to make sure we've moved the desired distance, instead of always using 1 second.
- DRVR takes a photo at each step and writes the camera image and the analysis to files. Doing that asynchronously or making that an option would also improve performance.
We're not down to the 10 minute loop the previous version of the robot could do, but we're using tighter controls and I believe have potential to go much faster.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.