Let's Make Robots!

DXY Robot

Planning , Mapping, Learning

This my first robot ;)  and I am working in finishing it this summer.



My main goal is making an intelligent automated robot.

Main Specifications:

4x GHM-12 DC Motors

4X 4" Mecanum Wheels (More DOF)

Arduino Mega 2560 + Mega IO Expansion Shield V2.3

7 X Ultrasonic Sensors

I just started this project today and I will need some time to post more information about this project. Hopefully, I will be done putting all parts together next week. Also, It seems that I will have to install encoders because the rotation speed of all wheels is not the same.

I will be glad to get some suggestions about encoders.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Here's another possible encoder solution. Inside many printers and scanners are DC motors with very high resoltion optical encoders. The lines on the encoder disk are so small the look like a grey band.

Here's a link to a thread discussing these encoders.

When I took about a printer that recently died on me, I found three or four of these encoders inside. One was smaller than the others so they obviously come in different sizes. Maybe you could use an appropriately sized encoder like these on your robot?

Does anyone know if it is possible to use a Hall effect sensor on or near the motor casing to sense the passing of the magnets inside the motor?

This would allow one to add encoders to motors that don't have a shaft exiting the back of the motor.

I suppose another alternative to adding encoders to this robot would be to use an optical encoder on output shaft of the gearbox. I'm just concerned there wouldn't be much resolution with this method.

I think the magnetic field in the winding will swamp out the magnetic field of the magnets.  On top of that, the distance between and the probably metal casing will further shield what little field you might have detected.  But I don't know for sure and it would be worth a try.

And come to think of it, most of these type of motor have stationary permanent magnets so one would want to detect the coils passing by.

I'd sure think the magnetic field would be changing enough to be measured and hopefully in a predicatble enough way to be able to measure the motors speed.

Maybe it would be easier to detect the current pulses as the brushes make and break contact?

It sure seems like there ought to be a way of measuring a DC motor's rpm my measuring either magnetic or electric fields.

I don't think I'm modivated enough to pursue this now myself, but I sure think it would be useful trick if someone has (or does) figure this out.

A relatively easy way is to measure the back emf.  Any time the motor is turning, it also acts as a generator.  That's why the load current isn't the same as the stall current.  A 12 volt motor with light load may generate 10 volts, so there is only a 2 volt difference to push current through the resistance of the windings.  The faster the speed, the higher the voltage.  With a pwm circuit, you can disconnect the motor from the driver and measure the output voltage, which is the back emf, to find out how fast the motor is spinning.  Not simple, but not too bad.

I can only judge by the photos but you appear to have no encoders on the motors. Without encoders it will be impossible to make the robot travel in a straight line (either forwared / backwards or sideways).

Yes. I need encoders but the question is which type of encoders (optical, magneticm...etc) should I use ?  (efficient and not expensive)

Often encoders are attched directly to the motor's shaft. This allows a lot more resolution than encoders used on the output shaft of the gearbox.

The Rover 5 has the encoders inside the gearbox which still allows pretty good resolution.

I'm not sure where you'd attach encoders on your robot.

With motors are powerful as those look, the robot should behave well when remote controlled since you can make any adjustments needed based on how the robot appears to be moving. Autonomous control will be more diffecult without encoders.

I found encoders made a huge difference in the way my Mecanum wheeled Rover 5 robot behaved. The Rover 5 is little under powered for the Vex Mecanum wheels and in order to travel slowly, I had to use encoder feedback so I could adjust the PWM signal appropriately.

If I were to make another Mecanum wheeled robot, I think I'd use motors with encoders like these sold by Pololu

Well, I was thinking about using Pololu DC motors w/ encoders but unfortunately "Rover 5 Motor Driver" cannot drive 5A motors. It is really hard to find an inexpensive DC motors controller that has encoders' input and driver 5A (peak) DC motors.

Anyway, I am thinking about using optical encoders like the one you linked. In fact, I looked inside these GH12 Motors but they do not have that much space in the inside. This means that I won't be able to install an encoder like the one you showed me.

However, I have seen another encoder kit that looks interesting but I am not sure if it will work since my motors's shaft is 6mm.


By the way, I like the way you handled the Vex Wheels that I am using and I might drill them in the same way.





a costly but very nice first robot..... i like to know what os your using in that arm processor and how you installed it?