The long road to Success
So the pressure was on this spring to get the rover driving around at least via the wiimote because the deadline for Georgia Tech's Create X summer program was looming.
In the fall I got one of the VESC units controlling a single motor with the wiimote. So this spring I was working on getting both motors to work together so that I could drive the rover around the yard.
Over the course of a couple of weeks, I got both motors working with two VESC controlllers and was able to crash the rover multiple times. The last time was so bad that multiple weld joint broke collapsing the whole rover in on itself.
I had to get a grinder and clean up a lot of the bad weld joints that I had originally done back in the summer of 2017 with a coworkers underpower welder. Since then I had acquired my own fluxcore welder which was more appropriate for the task. So I basically had to redo the whole frame and in the process I got some sheet metal from a local metal shop and I created a shallow metal box that sits in the frame. It is a little deeper than the battery packs and there is plenty of room for the laptop/TX1 and cable routing.
So I eventually got the rover bumping around the yard but this was not enough to get me into Georgia Tech's Create X progam so I am back to the slow grind in my basement. See below the application video.
I was able to have a very production conversation with the professor that I did the elective 2 summers ago. We came up with a good plan to polish some of the control mechanism and then steps to add autonomy.
I am currently working on refactoring the serial communication library from a python script to a C++17 library.
My prior method of control the motors was to send a duty cycle to the VESC based on the position of the wiimote. I found out that the VESC has the ability to do some closed loop control when given a set RPM. Now I don't have to do this in the ROS node. This will be a lot more tigher control loop.
I have some C++ test code talking to VESC and now I am investigating creating a ROS 2.0 node. This node will subscribe to the twist msg that the Teleop node sends out based on the wiimote state. Then it will read various motor stats and publish them to ROS system.