Vex Mecanum Wheeled Rover 5
This is one of my two Rover 5 robots. I recently created a page to show my radio controlled Rover 5 with treads and I also wanted to share this robot.
The Vex Mecanum wheels work great with the Rover 5. The Rover 5's four quadrature encoders make using Mecanum wheels much easier than trying to get them to work without encoders. The Propeller microcontroller reads the four encoders and adjusts the PWM to the motors in order to keep the speed of the motors (and wheels) at their desired speeds.
I had tried using the robot without encoder feedback without much success. The motors had a hard time turning the wheels at slow speeds.
I drilled out the Vex wheels to accept the Rover 5's 4mm axles. I drilled through the wheel from the edge to create a set screw. Fellow LMR member Cliff has improved on this technique with his Vex Mecanum wheeled Rover 5 (There's a link to his page below).
There's a reason this robot looks so much like my other Rover 5 (besides both using Rover 5 chassis). The top decks made from expanded PVC and standoffs are the same decks used on my other robot. I'm presently having the two robots share a brain.
I intend to make another deck but I'm still trying to figure out the best layout for the control boards and battery. I thing I plan to change is the battery. The 3S 5000mAh pack is one I use with my quadcopter and it is much larger than this robot requires. I think with a smaller battery pack I should be able to condense the size of the upper decks on the robot. I also want to do something about the rats nest of wires.
The code (Spin and PASM) for this robot is nearly identical to the code used in my other Rover 5. The code for this robot included the use of a floating point library to handle the trig need to calculate wheel speeds.
I should be able to post code for both robots tomorrow.
There are two other (that I know of) Vex Mecanum wheeled robots on LMR.
CliffO has one (I don't think it's operational yet).
And Legomaniac must have been posting his at the same time I was posting a page about mine (kind of eerie).
Update(February 26, 2013): Here are a few pictures showing how I added a set screw the wheels.
Above shows the nut I added between the spokes in order to give the screw somthing to push against. I didn't cut the top off the screw, I just tried to keep the head of the screw low enough as to not interfere with the wheels motion.
Cliff improved on this technique by using a larger diameter screw, removing the head and cutting a slot in the rod to allow the set screw to be couter sunk.
I'm hoping Legomaniac will share his wheel mounting technique. Legomaniac apparently "forced" his wheels on to the axles. That sounds a lot easier than what I did.
As you can see in the earlier photo, (I was thinking of a different picuture) I covered the rollers with tape to protect them while drilling the hole for the set screw. Make sure and follow the links to Cliff's robot. He provides some good instructions on how to make a set screw.
Update(March 2, 2013): I added a HM5883 digital compass to my robot. When testing a robot, I frequently have it perform a figure 8 which I've had this robot perform serveral times. I usually control the direction change and stop time by indicating how long the robot should spend in each portion of the figure eight. This time, I used the compass to indicate when to switch direction and when to stop.
I added a video of the robot using the compass (it's the second video). Kind of cool IMO.
Update (November 12, 2013) I was reminded by a recent forum post I haven't made a video with my improved software. The software used in my original demo video had a integer math bug which limited the movement of the robot to 45 degree increments.
I actually fixed the bug not long after posting the demo video but I hadn't posted an updated video until now.
I'm currently working on several modifications to the robot.
I'm in the process of changing the remote from the Spektrum/Orange system to a custom remote I'm building. The custom remote uses a Nordic nRF24L01+ transceiver for wireless communication. The remote has a 4.3" touchscreen, an EasyVR voice recognition module, a SD card to hold the various touchscreen menu data and a PlayStation 2 controller for input.
Many of the above devices aren't working yet. So far the "remote" is a collection of parts that can display PlayStation 2 data. It presently doesn't control an robots.
As part of an effort to turn this project from a remote controlled toy in to a proper robot, I'm also attempting to add a CMUcam4.
While I've installed the hardware portion of the CMUcam4 update, I'm far from having the software working.
Hopefully these "upgrades" will be more than just a collection of parts soon.
BTW, my 2-cell LiPo packs were flat. I used a 3-cell pack again. Running the Rover 5 on a 3-cell LiPo will shorten the motors' lives.