When I do something, I want to do it right. The summer project with University of Adelaide (UoA) has been great and the result is well received by the academics. But I have been finding myself wanting to come back to it and improve the system, both hardware and software wise.
There are plenty of changes to the system and, let just say, the robot has taken over my life for the last
month couple months. I initially predicted it would take no more than a week to complete but then things come up and a week in, I realized I just enter the bigger league.
Compare to the last design, I almost changed everything. I get rid of the on board LCD, get rid of the Raspberry Pi and more importantly, I switched to DC motors /w encoder instead of stepper motors /w IMU sensor on each wheels. Financially speaking, the new system saves 100+ AUD/platform. Coding wise, it got much much harder.
Encoder isn’t exactly beginner friendly. In fact, it was incredibly difficult to read thousands of pulse per second. My initial thought is to put everything on 1 controller (MKR1000) and soon realized the MKR is simply not fast enough to keep up with all the interrupt to read encoder data. I ended up using the Due to do all the computation and have the MKR to communicate with host computer (send/received new coordinate etc.).
Another (good) thing I did not foresee is how little power the whole platform consume, compare with the stepper motors platform. After some research (mainly asking the gifted technician on the campus), it turns out the geared DC motor would require very little power consumption to operate (I can’t explain it without some diagram, but I’m sure you can find out why yourself, hint: it’s the gear).
Anyways, the rover ended up being so good that my (ex) supervisor, Vernon, asked me to replace the old platform with this new platform. Here’s the video of the rover in action. Sorry for the video quality.
You can see I also attempt some computer vision on the video, but that did not go very well. Hopefully I can produce something better in the next few weeks.
So what is good about this revision?
- Power consumption
- Increase in accuracy
- Fast wireless communication between host computer and the rover
I think that’s it for now. I will update more when I got further with this project.
Update #0: I have improved my tracking algorithm (using aruco marker instead of KCF tracker) and it has been working pretty well. I also added a screen and a cover for the rover. Here’s the rover in action: