Two Weeks to Go: Outdoor testing!

With only two more weeks to go, I have begun testing my work outside with my faithful steed (or dragon?) Rhaegal. And I’ve hit a snag, which is a huge drag.

My current implementation of the State Machine uses a Waypoint System to move from point to point within an arena. The problem is, due to fuzzy localization, the waypoints are usually shifting about a meter around their “actual” location. The shifting does not occur in the simulator, which I know, but I also didn’t realize it was going to be such an issue for precision driving in the real world. If I want the Rover to drive one meter exactly forward, it cannot. My current technique for managing this is just using some trig to generate a waypoint one meter straight in front of the Rover. However, it cannot drive straight, because to its perspective, the waypoint is always drifting. For example, if the waypoint is drifting to the left, it will cause the Rover to curve its path to the left to try and meet it. This is a major problem.

The reason this is a major problem is that for things like picking up a cube, or dropping off a cube, in the real world, the Rover needs to be able to take commands allowing it to drive as straight as possible! Since the cubes and the actual Rover aren’t drifting, if I set a point in front of the cube the Rover is trying to pick up, that waypoint drifts away and the Rover doesn’t end up in front of the cube.

So, does it seem like my current implementation won’t work at all. Luckily, it will work great for general motion. For example, he’s a picture of the Rover driving around sweeping out an expanding square spiral area.

IMG_20170720_165119719_HDR

While this is a virtual map of where the Rover thinks it went, the combination of Navsat, Odometry, and IMU has it echoing this pretty close in the real world. All is not lost! However, I am in the process of implementing a better way to deal with specific driving in the short term.

Leave a Reply

Your email address will not be published. Required fields are marked *