Motor Test Station (MTS)

Thank you so much Tom -- pivot point mass concentration gave 20% max speed boost !

Added a small wooden piece with superglue onto the moving wooden arm in order to prevent Arduino and LiPos moving away from pivot point.

I killed 2 Arduino Nanos by loose cables and 12V getting in contact with what it should not -- good that I had 3 Nanos (OK, have several Pro Minis that can be used as well). You can see small on/off switch below the Arduino that allows to live safely without removing cables for powering on/off.

The pivot point Tip from Tom gave another 4km/h max. speed! (youtube video)

11 rounds in 2.12s gives 5.19rps or 311.3rpm.
And wheel with 1.33m per round runs 6.90m/s or 24.84km/h!

Hermann.

If your motor has a spec and you have a reasonable idea of the load torque, it will give you
the right numbers within the tolerance you'd expect. Sizing motors is not rocket science
really! Its finding the datasheet for a small motor that's the trickiest part.

You have a good testbed there for a smooth flat surface, but usually its the lumps, bumps
and slopes that place the most demands on the drivetrain - check you have the torque
and power needed for the worse incline too.

Hi Mark,

I provided link to (12V) motor specification above, but here is a better photo:

Spannung: voltage
Leerlauf: running idle
Strom: current
Maximaler Wirkungsgrad: maximal degree of efficiency
Drehzahl: number of revolutions
Stromaufnahme: current consumption
Drehmomemnt: torque
Abgabeleistung: output power
Effizienz: efficiency

The wheel is the 48mm diameter one of these.

Calculating with 17.500 rpm gives:
π0.04817500 = 2638.9 m/min

What I have measured is:
6.90*60 = 414.0 m/min

So what to do with above motor specification?
How to take the weight (52g here) into account?
How the mass distribution on the wooden rotating stick?

Hermann.

The wheel is the 48mm diameter one of these.

Calculating with 17.500 rpm gives:
π0.04817500 = 2638.9 m/min

What I have measured is:
6.90*60 = 414.0 m/min

So what to do with above motor specification?

Well I'd first calculate the velocity and force at the wheel rim, getting
v = 42 m/s, F =0.03N

Hmm, 0.03N is not enough force for anything really (3gf)! Clearly some gearing
is needed (which of course it always is with a small motor as torque is limited
by motor volume)

So,

How to proceed?

  1. Work out the worst case torque (at the wheel) needed for inclines, acceleration that you need.
  2. Work out the max speed (at the wheel).
  3. the product of those two gives the power you need for the motor, but you'll
    need to add 50 to 100% to allow for transmission losses if you use gears/belts.
  4. with the gearing and wheel radius you can then map that to motor specifications,
    and thereby select an appropriate motor.

Lets say I have 200g load I want to drive up a 1-in-10 incline worst case - thats
0.2N at the wheel (weight force x 0.1). With two motors you share that, so
0.1N per wheel. Want max speed of 5m/s, then power needed is 0.5W per motor
(double for good measure as will use gears, 1W motors).

Say a 20mm radius wheel, so torque = 2mNm, angular velocity 250 rad/s (2500rpm).

You motor can only do 0.7mNm, so lets assume 5:1 reduction gearing, gives it
3.5mNm and a angular velocity of 350rad/s.

Its rare that you can avoid reduction gearing of some form in a small motor - your
system is overloading your motor completely I think, so the motor can't get
close to its max speed - you are likely overloading the windings as it struggles to
supply enough torque.

If you want to get that rig going faster you need to reduce the friction at the pivot and try to reduce the air resistance. Remember that the force that moved things to the outside is also acting on the pivot and increasing the friction there.

If you don't believe the motor specs and want to test the motor you need to make a dynamometer.

Russell

If the point is to move a robot, the puny 0.00071Nm rating is not going to go away by
testing it (neither will making a low friction test rig remove friction from the actual
robot), you need to do the math and add the reduction gearing!

Thanks Mark for the detailed calculations, I will follow up on that later.

Thanks Russel on the friction, that will go away with two motors/wheels and give a little boost then.

You mentioned to consider the requirements, those are easy (at least for my first use case "line follower").
The surface is completely flat in simple scenario (screenshot from first 3.1m/s average video):

And I am very satisfied with the speeds achieved sofar, pretty sure that they cannot be reached because of all the turns. The last MTS run I did with this 12V motor was to take into account that the robot will have two motors/wheels sharing the load. So I moved the load into the middle of the wooden arm:

It was clear that this will reduce speed, but it did not that much (youtube video):
6.90m/s -> 5.46m/s or 24.84km/h -> 19.64km/h

Now regarding the total weight of the robot, I target for sub 70g (if using this motor) and not 200g:

4 LiPos + Arduino + L293D motor controller + soldering solution: 33g
2 motors with 2 wheels: 18g
half table tennis ball as 3rd point of contact, 2 foto transistor, 1 IR LED, board piece: 11g

So total weight of "Asurano": 62g
"Asurano" = "Asuro" like robot (see) based on Arduino "Nano"

Next MTS task is to test this 15V motor with 3 times the torque (2.16Nmm) of previous motor (15g vs. 8g weight):

Non-flat surface requirement is given by RobotChallenge Line Follower Enhanced "Seesaw" :wink:

Hermann.

Did start testing of 15V motor -- not the motor is the problem but the wheel mounting:

youtube video with bumping.

youtube text copied in:

After much good testing with 12V motor I started testing the 15V motor today.

After killing my 3rd and last Arduino Nano had to modify the soldering to work with Arduino Pro Mini. Interestingly the Arduino Pro Mini does not work with 4.18V from LiPo -- the Nano did even work fine with 3.9V.

For the motor now 4 LiPos give 16V, and a new connector in the middle gives 8V for Raw input of Arduino Pro Mini.

After getting very bumpy run with the wheel already used for the 15V motor I decided to enlarge the diameter of the wheel hole that worked so well before with 12V motor. Result is the same bumpy runs.

Next I tried to add weight to counter the bumps (the disconnected battery pack on the middle of the wooden arm), without success. The slowflyer wheels cannot be used with this motor.

Wheel bumping starts at 13s and is maximal at 17s.

Now have to wait for new wheels for the 12V motor and find alternate wheels for the 15V motor.

Hermann.

Today got new wheels with 64mm diameter (compared to 48mm before).
This is the middle diameter wheel of these three wheels -- 85mm will be sent when available again :wink:

I thought the wheel hole was a perfect fit for 12V motor axis -- it was not :wink:
LiPos were not fully loaded, only 11.23V compared to >12V.

Here is just the high speed accident with 5.7m/s or 20.52km/h at quarter speed on rowvid.com -- impressive:
http://rowvid.com/?v=88il0haKo6c&t=23&s=0.25

youtube video

Youtube text copied in for completeness:

2nd High speed accident with new 64mm diameter wheel.
Thought that wheel was a perfect fit for motor axis
Wheel got lost at 0:23, wheel hole was too wide for the speed/force.

Rowvid.com frame by frame analysis with new wheel diameter:
Just before accident 6 rounds in 1.4s gives 4.3rps or 257.1rpm.
Wheel moves 1.33m per round giving 5.7m/s or 20.52km/h.

Hermann.

Hi,

Its good to see that like NASA and Spacex, you video your successes and failures, to learn from them.
A mean looking line follower, do they have a 1/4mile dragstip event at RobotChallenge?

Tom.... :slight_smile:

A mean looking line follower, do they have a 1/4mile dragstip event at RobotChallenge?

Nice idea!

My older son was on field robot event two weeks ago with his university team and (30kg) robot Beteigeuze:
http://fre2015.um.si/index.php/2-fre2015/14-beteigeuze

After the official contest they did a fun contest of "tractorpulling" with their robots :wink:

Probably I would need to go with gearing as proposed (and calculated) by Mark.
I did fix the wheel with superglue, this is complete run (without accident/problems):

"Only" 11 rounds with 1.33m per round gives 5.63m/s or 20.26km/h, far less than with 48mm diameter wheel, perhaps because the 64mm wheel adds 2g of weight.

Perhaps less diameter wheels can give better results for the 12v motor -- with 6.9m/s maximal speed seen sofar the motor did show 2064rpm at the wheel although it could do 17500rpm.

Hermann.

Today I tried wheel with smaller diameter (20mm), a "Lego" wheel with the well known cross for Lego "cross axis":

In order to use that wheel with 12V motor axis I had to completely fill the cross with superglue. After more than a day I did drill a small hole with small screwdriver and press motor axis in then. To my surprise there was nearly no imbalance.

This is youtbube video with 12V motor and the new wheel:

Video shows the exact same maximum speed as previously achieved with 15V motor and 64mm diameter wheel.
Looking at formula 1 wide base wheels I will probably go with the current wide base 20mm wheel for my Arduino controlled 2 wheel + ½ table tennis ball based (line following) robot (see here with previously planned parts)

Here text from youtoube video for completeness:
This time with smaller diameter wheel (20mm) and 12V motor.

3 LiPos, not fully loaded (11.60V instead of 12.6V).

Same speed as maximal speed with 15V motor and 64mm wheels.

15 round in 2.80 seconds is 5.35rps or 321rpm.
Wheel moves 1.33m per round, gives 7.125m/s or 25.65km/h.

Hermann.

The 12V motor has 17500 rpm at maximal degree of efficiency as mentioned earlier in this thread.

Until this last run all tests did show less than 3000 rpm at motor axis.

Now I did the math for the last run.
1.33m per round of the wooden stick is 21.1 rotations of 20mm diameter wheel.
With 5.35 rounds per second this gives 113.2 rps or 6794 rpm at motor axis.
Still not 17500, but much higher than for all previous MTS runs.

Hermann.

You do know that torque depends on motor volume if you eschew gearing? Little motors
without gears will never have enough torque for a robot with all but the tiniest wheels.

Thanks, the tiny wheels did it.

I did build real "robot" now with two motors and two wheels, and it showed 9.89m/s or 35.6km/h !!

The whole "robot" two wheels carry the complete weight of 73g, the nail just forces circular movement.

Copying in youtube video text with the details:

It turned out that in previous run only one motor did run. The 2nd was dead due to too hot soldering.

Here both motors (bought a new one) did run, and achieved nearly 10m/s or 36km/h !

With new motor, cabling was a problem. This is first run where centrifugal force did not cut any cables.

Two motors are much louder than one :wink:

The whole "robot" two wheels carry the complete weight of 73g, the nail just forces circular movement.

Now the rowvid.com analysis (20.27s - 21.63s):

9.75 rounds in 1.36s gives 7.17rps or 430rpm of wooden stick.

Radius of 22cm of wheels wrt nail gives 1.38m per round, ppeed now is 9.89m/s or 35.61km/h (!).

Wheel has diameter of 2cm, so with 7.17 rounds of 1.38m this is 157.4rps or 9447rpm at motor shaft (pretty close to data sheet max of 17500 under load).

Last comment on Arduino microcontroller, program did increase PMW from 20 to 255 in 12 seconds, keeps at 255 for 10 seconds and then goes back to 20 in 10 seconds before stopping and LED blinking. In order to use this simple program that has been used in so many testruns now, I did duplicate the PWM signal and both motors are controlled by the same L293D motor output. The second L293D motor driver output is not cabled/used yet.

Hermann.

Mark was right, torque of 0.00071Nm was good enough for (to me) impressive 9.89m/s or 35.6km/h in motor test station, but may not be enough for autonomous robot (I just ordered 2 motors with 0.0055Nm, a factor of 7.7).

Yesterday I did quite some work on real autonomous robot, these are the tops of two linked tweet sequences:

This is new robot jacked for initial wiring testing with bitlash (allows interactive as well as scripted programming w/o Arduino IDE):

I did first full speed test run last night:

Compared to Asuro robot 8 years ago (0.43m/s, 1.2m/s, 1.8m/s) it was quick (3.1m/s or 11.16km/h).
But previous runs (same motors and wheels) in Motor Test Station showed 9.89m/s.

Copying in youtube description with the details:

This is first autonomous full speed run of new Arduino robot (3.1m/s or 11.16km/h).

Weight of robot is 96g, and the three LiPos were not fully loaded, but showed 11.41V, the motor is 12V motor.

Although pin 13 LED starts to blink when reaching leg of grand piano (indicating that motor has stopped) the kitchen door did a hard stop on the robot.

Rowvid.com analysis (7.95s-8.55s) shows that robot did pass 6 floor tiles with edge length 31cm. The speed in that time frame was therefore 1.86/0.6=3.1m/s or 11.16km/h.

This is far less than the 9.89m/s seen in motor test station (robot there had 73g weight with same motors and wheels, but no ground friction of half table tennis ball). For details see:

Hermann.

If I was making that contraption, I'd have the motor stationary and the disk turning.

I'd mount the disk ( or use an old LP records ) above the wheel, so the wheel turns it from underneath. And then measure how fast the disk is spinning.

If I was making that contraption, I'd have the motor stationary and the disk turning.

I cannot agree here, it is always better to measure "the real thing" if possible.

Measuring the real thing sometimes gives surprises (like the 9.89m/s to 3.10m/s drop from MTS to autonomous robot with same motors/wheels).

I was quite active this evening, after exploding a L293D by accidently reverse powering, then an MTS Arduino robot accident at >30km/h where the safety glass proved to be a good idea, and finally a new record run with new 14.8V motor (data sheet in this posting, translation of German data sheet terms in this posting) -- 12.3m/s or 44.28km/h(!).

Record run youtube video details:

15.26V at start, no accident this time, new speed record.

rowvid.com frame-by-frame analysis:
4 rounds in 0.4s (24.48-24.88) gives 10.0rps or 600.0rpm.
A round with this new wooden stick is 1.23m.
Speed is therefore 12.30m/s or 44.28km/h.
Diameter of wheel is 2cm,.
With 12.30m/s this is 195.7rps or 11745.6rpm at motor shaft.

"robot" weight is 100g:

Hermann.

Hi,

Rowvid.com analysis (7.95s-8.55s) shows that robot did pass 6 floor tiles with edge length 31cm. The speed in that time frame was therefore 1.86/0.6=3.1m/s or 11.16km/h.

This is far less than the 9.89m/s seen in motor test station

When you are using the test jig, the mass that the motor is driving "forward" is less than the mass of the controller and battery because of its position near the pivot point.
In your robot the motor is now accelerating the full mass.
You are trying to get load /speed figures from circular motion and use them in linear motion.
You can use your setup to compare motor characteristics.

Tom.... :slight_smile:
PS If I had realized way back in this thread what you wanted to do, I'd have advised putting the controller and batteries as close to the motor as possible, so the motor sees the full load of the mass, but figures you obtain would be inaccurate due to circular and linear motion.

Thank you Tom for your explanations. They totally make sense and explain what I experienced.

The next steps will be to do test runs with arduino and L293D board as well as LiPos sitting directly on top of the motors far off the pivot point.

But before doing those tests I did quite some stuff with followup questions.

The first thing was to get rid of "store youtube video, single step through it via rowvid.com and count rounds and hundreths of seconds that takes" for speed determination. I did that with this Infrared Speed Sensor Module:

First I had some problems with too many interrupts generated, but I found (a) solution to that myself in "Accuracy of MOCH22A based Infrared Speed Sensor Module" thread:
http://forum.arduino.cc/index.php?topic=347579

I used an Arduino Uno screwed on MTS and connected to my Laptop for doing the measurements:

First I did let interrupt service routine (ISR) directly write millis() and count to Serial because I tested such an operation taking roughly a hundreth second and my measurements are expected to be in low 2-digit number range of interrupts per second. Later, in order to avoid timing problems, I just did "A[cnt++]=millis()" in ISR and called a service function printing out the whole array after test completed (I did all using bitlash command shell).

The first run I did was successful but did not reach >40km/h speed I expected:

Checking everything I found the easy explanation, I did only use 3 LiPos giving >12V for the 15V motor:

The second run was successful as well and did show 42.17km/h, with a minimum of 105ms per 1.23m round for the wheels:

The 0 measurements are just some double interrupts at same millisecond, and the one delta measurement of 212ms at 107th interrupt was just a missing interrupt while brazen piece moved through the sensor.

All measurements I did were done with the 20mm 1-piece Lego wheels I used until now and the 15V motor. I did find some bigger wheels in the big Lego box from my kids (they are too old to play with it anymore). I was interested in 24mm and 30 mm.

The first run with 24mm diameter wheel+rubber was stopped hard by infrared speed sensor after few seconds:

I tried to fix the mechanical problem of getting brassed piece into middle of sensor:

For me the next video is a "must see" and it proves that my attempts to fix the physical issue were not good enough -- complete destruction, speed sensor, lost wheel, cables, ..., not stopping before the end of the video:

For the runs with 24mm diameter I had to use new motor controller board because the previous one could not deal well with the vibrations in new setup. This time I did connect both motor output to the two motors. The layout allows to use Arduino Nano as well as Arduino Pro Mini interchangably on the (not drawn) IC socket:

Here you can the the new and the old board I used:

In the next runs I saw speeds of much less than 40km/h and charts with different form, especially the missing long minimum at the middle:

Finally I found the issue, it was the unbalance of the rubber(!) which I found while diagnosing with bitlash and connected with laptop. This photo was taken with PWM=180 and clearly shows that the "flying" rubber is the issue:

I did fix that as I fix most things (like connecting infrared speed sensor at the needed height of 9V block battery) -- with superglue :wink:

The next run did loose a wheel again, fixed that with some superglue on motor shaft as I did previously with the other wheel:

I did several runs then, all showing same behavior, this is the last one:

So here are my questions:
1)
I have no explanation on the few peaks >800ms delta. What could be a reason that sensor does not trigger for several rounds? [In this posting I have shown that the sensor can easily generate 93.4 interrupts per second, and here we are talking on rougly 10 interrupts per second]

What can be an explanation on the 24mm diameter charts not showing the long minimum the first two 20mm diameter charts above do show? [Its the same motor and LiPos, just bigger wheels]

Hermann.