Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Technical Discussion (http://www.chiefdelphi.com/forums/forumdisplay.php?f=22)
-   -   fine control of robot with mecanum wheels (http://www.chiefdelphi.com/forums/showthread.php?t=84344)

Ether 16-03-2010 22:07

fine control of robot with mecanum wheels
 
I am advising a team that built a robot with mecanum wheels, and they are very unhappy with the lack of fine control of robot movements, especially at low speeds.

Each 8" mecanum wheel is powered via a chain connected to an AM toughbox gearbox with a CIM motor.

There are no encoders, so the wheels are being commanded open-loop (i.e. they are being given voltage commands).

My analysis is that the design has too much friction in the drive train, and the gear ratio is too high, to obtain fine control at low speeds with an open-loop command.

The solution I proposed is to use a lower gear ratio (sacrificing top speed for better fine control at low speeds), or to add encoders and CAN bus so the Jags can do closed-loop speed control of the wheels. Neither of these solutions can be accomplished before their next competition.

I see no other viable options. Comments or suggestions?


~

Boommaster713 16-03-2010 22:50

Re: fine control of robot with mecanum wheels
 
My Team this year has also run a system identical to this setup and have not had any issues regarding the control of the robot(Once setup properly). So the basic premise of too much friction and high gear ratio is not the culprit.

So a simple question would be what kind of control issues is your team experiencing?

StevenB 16-03-2010 23:04

Re: fine control of robot with mecanum wheels
 
This may be something you've already tried, but you might want to consider a nonlinear joystick mapping. That is, when you push the joystick halfway, you only move at 1/4 speed instead of 1/2. This gives you finer control of slower movements, while allowing you to still use the full speed range. Very rarely do you care if you move at 3/4 speed vs full speed, but you definitely care about 0 vs 1/4 - thus, you can stretch the axes accordingly.
All you have to do is square the input, making sure to preserve the sign.

A second note - if this is a first or second year team, my suggestion is, "get used to it." Fast robots are almost always hard to control, and the best fix is simply driver practice. I remember during my rookie year feeling that our robot was uncontrollable, but we eventually learned to drive it, and it wasn't as bad as we thought.

Ether 16-03-2010 23:18

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by StevenB (Post 938418)
This may be something you've already tried, but you might want to consider a nonlinear joystick mapping. That is, when you push the joystick halfway, you only move at 1/4 speed instead of 1/2. This gives you finer control of slower movements, while allowing you to still use the full speed range. Very rarely do you care if you move at 3/4 speed vs full speed, but you definitely care about 0 vs 1/4 - thus, you can stretch the axes accordingly.
All you have to do is square the input, making sure to preserve the sign.

Yes, it's already been tried:
http://www.chiefdelphi.com/forums/sh...d.php?p=921992


Quote:

A second note - if this is a first or second year team, my suggestion is, "get used to it."
I'd like to hear from any teams that have implemented closed-loop wheel speed control via encoders connected directly to Jags, on a bot with mecanum wheels.

Also, are any teams using shiftable transmissions (high and low gears) ?



~

Ether 16-03-2010 23:23

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Boommaster713 (Post 938412)
My Team this year has also run a system identical to this setup and have not had any issues regarding the control of the robot(Once setup properly). So the basic premise of too much friction and high gear ratio is not the culprit.

The basic premise was too much friction and high gear ratio to be controlled open-loop. Is your bot's wheel speed controlled open-loop or closed-loop?


Quote:

So a simple question would be what kind of control issues is your team experiencing?
"lack of fine control of robot movements, especially at low speeds"


~

DavidGitz 16-03-2010 23:32

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by StevenB (Post 938418)
square the input

Actually, if you want to increase the sensitivity at low values and decrease it at larger values, you would square root the input values, or another function with a downward concavity. If you square a value between zero and 1, it becomes even smaller.

TD912 16-03-2010 23:36

Re: fine control of robot with mecanum wheels
 
The joysticks return values between -1 and +1 for both the X and Y axes, And these values are then used to generate a signal for the speed controller. You can "curve" the output however you want. Normally, moving the joystick 50% forward would send a 0.5 signal to the contoller. Squaring it should give you finer control at lower speeds (moving the joystick 50% forward would result in a 0.25 signal being sent), while getting the square root would do the opposite (50% forward would end up sending a 0.71 signal instead!). In either case, you could still achieve full speed by moving the joysticks all the way forward. You should experiment to see what works best for you, and be sure to program in a way to keep your positive values positive, and negative values negative when squaring.

Just remember that the motors will still need to be able to produce enough force to move the robot, Plus there are things like deadband to deal with, so very low values like .1 might not appear to do anything.

Edit: By the time I typed this up, all these people replied already! Sorry if I repeated what was already said.

TubaMorg 16-03-2010 23:46

Re: fine control of robot with mecanum wheels
 
We are using an open loop this year and we have used it in the past for our mecanum drive, though we use direct drive and a higher gear ratio than the KOP transmissions. We aren't using encoders to control wheel speed, but we ARE using a gyro to make sure the robot stays pointed in the right direction.

We aren't experiencing control issues perhaps because of our differences. You could fairly easily increase your gear ratio (in a way) without too much trouble by changing your sprocket sizes. A smaller output sprocket and a larger wheel sprocket will slow your wheels down.

Hope this helps...

Dad1279 16-03-2010 23:52

Re: fine control of robot with mecanum wheels
 
As a point of reference, we used the AndyMark 8", directly driven with 12:1 transmissions. For control we used Logitech 3d, using the 'twist' of the joystick for rotation.

They were driven by PWM, w/o feedback. Rotation/twist was scaled down.

This worked fine on both our test-bot and the final robot.

ajd 16-03-2010 23:57

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by DavidGitz (Post 938431)
Actually, if you want to increase the sensitivity at low values and decrease it at larger values, you would square root the input values, or another function with a downward concavity. If you square a value between zero and 1, it becomes even smaller.

Most likely, you would want to decrease the sensitivity, which would give you more control, since the same change of the joystick position would give you a smaller change in motor speed. So squaring it seems like a better bet for more control.

Ether 17-03-2010 00:23

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by ajd (Post 938441)
Most likely, you would want to decrease the sensitivity, which would give you more control, since the same change of the joystick position would give you a smaller change in motor speed. So squaring it seems like a better bet for more control.

Correct.

I'd like to hear from any teams that have implemented closed-loop wheel speed control via encoders connected directly to Jags, on a bot with mecanum wheels.

Also, are any teams using shiftable transmissions (high and low gears) ?


~

Ether 17-03-2010 00:43

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Dad1279 (Post 938440)
As a point of reference, we used the AndyMark 8", directly driven with 12:1 transmissions. For control we used Logitech 3d, using the 'twist' of the joystick for rotation.

They were driven by PWM, w/o feedback. Rotation/twist was scaled down.

This worked fine on both our test-bot and the final robot.

AndyMark 8"... check
3-axis Joystick ... check
"twist" for rotation ... check
PWM ... check
no wheelspeed feedback ... check
rotation "scaled down" ... check

only difference is wheels are connected to toughbox (12.75:1) transmissions via sprocket and chain.

What kind of curve-shaping did you do on your joystick outputs before feeding them into your wheel-command-calculation algorithm ?


~

JamJam263 17-03-2010 00:48

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Ether (Post 938452)
Correct.

I'd like to hear from any teams that have implemented closed-loop wheel speed control via encoders connected directly to Jags, on a bot with mecanum wheels.

~

Team 263 is using exactly that. We found that the voltage control in an open loop was way too unreliable. Each wheel is directly hooked to a AM tougbox, with an encoder directly connected to the Jaguar that controls it. Using CAN speed control made everything more reliable, no drifting and a lot better traction control. The 1kHZ PID loop in the Jags helped use tremendously. Out of 60 Teams in NYC we where the only ones using CAN, and had quite a few comments from other teams using mecanum on how much better it preformed. The only issue that was not directly fixed with CAN and the built in PID was control at lower speeds. To fix this we simply used the throttle on the joystick to make an adjustable scale where setRPM=joystick*throttle*maxRPM. With adding the throttle everything worked without any issues. Using the throttle to make an adjustable scale works for voltage control, and a PID loop can easily be set up with the encoders hooked to the cRio in a short period of time. Actually switching our C++ code from an open system using pwm to CAN didn't take us more then an hour, neither did setting up the CAN network itself if you have the cables to do it.

dtengineering 17-03-2010 01:32

Re: fine control of robot with mecanum wheels
 
Can't say this will help, but we did encoder based closed-loop on our Rack'n'roll mecanum (8" AM mecanums off 12:1 direct drive banebots)... using interrupts on the IFI controller. It did help... at least once we got the PID coefficients tuned. Until then it was wild!

Hopefully it will be easier with the new hardware...

Jason

Ether 17-03-2010 08:51

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by JamJam263 (Post 938461)
To fix this we simply used the throttle on the joystick to make an adjustable scale where setRPM=joystick*throttle*maxRPM. With adding the throttle everything worked without any issues. Using the throttle to make an adjustable scale works for voltage control...

Yeah, we also tried using the throttle* to scale the joystick (with open-loop PWM control) but it wasn't good enough. The driver wants more fine control, and I don't blame him.


*We used the throttle to control the parameter "a" mentioned in this post:
http://www.chiefdelphi.com/forums/sh...d.php?p=921992


~

efoote868 17-03-2010 10:00

Re: fine control of robot with mecanum wheels
 
My team is using mecanum wheels, I believe we are using the same setup or something similar.


One thing to keep in mind is that everything has a slight polarity, and a deadband. You can work to figure out where the motors start spinning, and then account for it in code.

Also, another thing my team has found useful is separating the rotation component from the XY joystick to another one - we found it was nearly impossible to spin without moving off axis until we did this.


After this season's competition I think I'll write a whitepaper on how I got the students to approach mecanum drive, our setup this year is very easy to control and I'd like them to be able to use it easily in future years (without having to worry about cheating).

Ether 17-03-2010 11:03

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by efoote868 (Post 938552)
My team is using mecanum wheels, I believe we are using the same setup or something similar.

Could I ask you to check with your lead programmer to find out if your bot using using closed-loop wheel speed control ?

Thank you.


~

efoote868 17-03-2010 11:05

Re: fine control of robot with mecanum wheels
 
There is no wheel feedback.

Ether 17-03-2010 11:20

Re: fine control of robot with mecanum wheels
 
Hi Team 868,

Thanks for your reply. I have a bunch of questions, I hope you don't mind. Any answers you are willing to provide would be much appreciated:

My team is using mecanum wheels, I believe we are using the same setup or something similar.

Are you using 8" AndyMark mecanums? Are the wheels direct-driven, or chain-driven? If chain, what are the sprocket teeth counts? Are you using the KoP AndyMark 12.75:1 toughbox? If not, what is your gear ratio? Are you using Victor or Jag motor controllers?

One thing to keep in mind is that everything has a slight polarity, and a deadband. You can work to figure out where the motors start spinning, and then account for it in code.

Yes, we are aware of this. Nothing we have tried so far is able to achieve fine control at low speeds, given our gear ratio and open-loop control.


Also, another thing my team has found useful is separating the rotation component from the XY joystick to another one - we found it was nearly impossible to spin without moving off axis until we did this.

We have no trouble spinning in-place, with the rotation command on the "twist" axis of a 3-axis joystick.


~

Mr. Lim 17-03-2010 11:48

Re: fine control of robot with mecanum wheels
 
Ether,

It sounds like you're running a setup very similar to ours. I can't say we've "mastered" fine motor control with our mecanum wheels, but I'm happy to answer any questions you have. Here's a video of our practice robot, showing what we can/can't do:

http://www.youtube.com/watch?v=apcy5naz5TE

Quote:

Are you using 8" AndyMark mecanums?
Yes.

Quote:

Are the wheels direct-driven, or chain-driven? If chain, what are the sprocket teeth counts?
They are chain-driven. 19 tooth on the ToughBox output shaft, kit supplied 22 tooth on the Mecanum wheel hubs.

Quote:

Are you using the KoP AndyMark 12.75:1 toughbox? If not, what is your gear ratio?
Yes we are using the KoP AndyMark ToughBoxes, unmodified.

Quote:

Are you using Victor or Jag motor controllers?
We are using Jaguar motor controllers, using PWM control.

Our setup also uses the US Digital optical encoders, and the WPILib PIDController object. We are using closed loop I-only motor control, and we cube our joystick inputs before sending them to our control loop.

We also implemented a "slow-down" button, which scales both our translational and angular velocities to about 1/3 of max when held down. You can see it used in the video just prior to when our robot meets the ball - the robot seems to abruptly slow down.

Boommaster713 17-03-2010 11:55

Re: fine control of robot with mecanum wheels
 
Something to be aware of is that during testing my team found that in order to control the robot at low speeds the motors must be given 40% of maximum voltage (to overcome the robots moment of inertia) and then once the robot is moving the power can lower slightly.
Other issues that could impact fine control is the lag time between control system and robot.

My Team's robot uses a near identical setup, 8in andymark Mechanums wheels(with black mini wheels), andy mark toughboxes, chains connecting them with andymark wheel tensioners (Fiddly to the extreme to get right, but once right they havent failed through 13+ matches)
all done open loop with no feedback, with jaguars on PWMs, and joystick mapping for fine control

Robot control is a 3 axis joystick

Ether 17-03-2010 12:39

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Mr. Lim (Post 938605)
Our setup also uses the US Digital optical encoders, and the WPILib PIDController object. We are using closed loop I-only motor control

What made you decide to use closed-loop wheel speed control ? Was the performance less than satisfactory without it ?


~

Mr. Lim 17-03-2010 12:55

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Ether (Post 938631)
What made you decide to use closed-loop wheel speed control ? Was the performance less than satisfactory without it ?


~

The performance was far less than satisfactory without it IMHO.

The vector math behind mecanums isn't that complicated, but it depends on the ability to get a wheel turning at precisely the velocity you want it to.

Ether 17-03-2010 13:05

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Mr. Lim (Post 938637)
The performance was far less than satisfactory without it IMHO.

OK. I think that's our problem. We are using open loop.

Quote:

The vector math behind mecanums isn't that complicated
Agreed. We did our own:
http://www.chiefdelphi.com/forums/sh...83&postcount=1

Quote:

, but it depends on the ability to get a wheel turning at precisely the velocity you want it to.
OK. That's what I figured.

~

efoote868 17-03-2010 14:08

Re: fine control of robot with mecanum wheels
 
I think the only difference is the wheel size, 6 inch versus 8.
I understand that might provide a difference in the "low speed" handling.

For the drive, we're using Jaguars via PWM.


Sorry I don't have all the information... all of this is from memory.

Ether 17-03-2010 14:15

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by efoote868 (Post 938682)
I think the only difference is the wheel size, 6 inch versus 8.
I understand that might provide a difference in the "low speed" handling.

Yes. It could definitely make a difference, depending on other factors of course.

Quote:

Sorry I don't have all the information... all of this is from memory.
I understand. But if I may ask without being too much of a pest, would you be willing to ask your lead engineer whether you have encoders on the wheels/gearboxes, and what the other details of your drivetrain are (gear ratio of transmission and tooth count on sprockets if using chain drive).

Thanks


~

Jared Russell 17-03-2010 14:29

Re: fine control of robot with mecanum wheels
 
The holonomic drivebases that we have used (in 2007 and 2008) had similar kinematics to mecanum drives, and we were also dissatisfied (at first) with the controllability of the drive at all speeds, and especially at low speeds.

The following solutions helped to get us under control, and each of the aforementioned robots managed to win a regional:

1. Make absolutely sure that all wheels are always touching the ground. Ideally, you should have some sort of suspension or at least a non-rigid frame that lets you deal with non-flat carpet.

2. Use a gyro to help the robot drive straight. We used a proportional-only controller with a feed forward component (meaning we did the holonomic drive kinematics to generate the command, and then added the output of a P controller with "yaw command" as setpoint and gyro rate as input). In general, we found that encoders on the wheels did help, but not nearly as much as the gyro (because of wheel slip, non-level surfaces, etc.) Also, this was back in the IFI era, so CAN speed control was not an option.

3. Limit each joystick to a maximum of two axes. We tried using a 3 axis (X,Y,Twist) joystick with our holonomic drive, but despite plenty of practice our drivers always seemed to do better with a two stick setup without a twist axis (one stick for X/Y and another that just uses the X axis for twist, or one stick for Y and twist - e.g. tank drive - and the other for strafing). Simply put, we found that too often the driver would accidentally use the twist axis when they didn't mean to.

4. Making sure that weight is distributed evenly! The vector math assumes all wheels have equal normal force - if your robot is far off from this assumption, your mileage will vary.

efoote868 17-03-2010 14:35

Re: fine control of robot with mecanum wheels
 
I know for a fact there are no sensors on individual wheels.
I'll ask tomorrow at BMR what our reduction is.

Ether 17-03-2010 15:00

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Jared341 (Post 938693)

2. Use a gyro to help the robot drive straight.

4. Making sure that weight is distributed evenly!

Weight distribution! Yes, I can see where that might be a factor with our design.

Gyro. Interesting. How difficult was this to implement (develop and tune the algorithm)? Were all your gyro implementations on bots with closed-loop wheelspeed? Or did you try it without closed-loop?

Thanks!


~

Jared Russell 17-03-2010 15:08

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Ether (Post 938707)
Weight distribution! Yes, I can see where that might be a factor with our design.

Gyro. Interesting. How difficult was this to implement (develop and tune the algorithm)? Did you have success using gyro without closed-loop wheelspeed control?

Thanks!


~

Using the gyro was very simple - the algorithm was just:

Code:

for each motor
  motorCommand = <result of holonomic drive calculations>;
  if we are trying to go straight (e.g. yaw command is zero)
    motorCommand += Kp * getGyroRate();
  end if
  Tell motor to go "motorCommand"
end for

As you can see, we didn't need encoders for this to work well for us. We determined "Kp" by having it read from a potentiometer (the throttle on our joystick) - we played with it until it seemed like there was a good balance between staying straight and being smooth (if Kp is too high, the robot will oscillate wildly). You can also use integral or derivative terms (e.g. PI, PD, or PID) in your controller if you aren't satisfied that this is fixing things for you.

We put encoders on our drive, but ended up only using them for distance tracking in autonomous mode rather than for velocity control (the gyro by itself was fine and was 4 less things that could fail).

Ether 17-03-2010 15:56

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Jared341 (Post 938710)
Using the gyro was very simple - the algorithm was just:

Code:

for each motor
  motorCommand = <result of holonomic drive calculations>;
  if we are trying to go straight (e.g. yaw command is zero)
    motorCommand += Kp * getGyroRate();
  end if
  Tell motor to go "motorCommand"
end for


Am I reading the above code correctly: you use the gyro only to make the robot drive straight when so commanded? You don't use it to control turning or strafing?


~

buchanan 18-03-2010 11:52

Re: fine control of robot with mecanum wheels
 
I'll echo Jared341 on all points. We don't have so much experience with the holonomic platform as they do, but our experience matches exactly with respect to what has to be considered, and our solution ended up remarkably similar.

We understood the importance of keeping uniform load on all wheels at all times and chose the simplest way to do that: use three wheels and keep the CG in the middle. Low-tech, and very effective.

Unless all your drivetrains are perfectly linear the thing won't drive straight, since the motors are almost always running different speeds, and hence at different spots on the input vs speed curve.. In principle, it should be possible to get linearity with individual feedback loops on each wheel, but we weren't able to make that work. It helped, but it wasn't sufficient. Possible or not, it isn't easy. We ended up taking it out entirely for other reasons.

Gyro-based correction, in the other hand, is simple. Our feedback code looks almost exactly like the posted snippet. For driver control, rotation feedback isn't terribly important except when trying to go straight,, since the driver can't distinguish, for instance, between rotating 47 degrees per second and rotating 52 d/s. But there's a big difference between driving straight and drifting 5 d/s.

Jared Russell 18-03-2010 11:56

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Ether (Post 938741)
Am I reading the above code correctly: you use the gyro only to make the robot drive straight when so commanded? You don't use it to control turning or strafing?


~

Correct - for those two games (Rack N Roll and Overdrive), pointing our scoring mechanism in a consistent direction was the biggest obstacle to overcome in order to be effective. For strafing or turning, we let things run open loop - with a little practice, the driver is able to compensate for translation errors without even thinking about it.

There is no reason why you couldn't use the gyro to control your turns, but in general, 0 degrees per second is by far the most important turn rate setpoint. As buchanan pointed out, 47 deg/s and 52 deg/s doesn't make a lot of difference to a driver, but 0 deg/s and 5 deg/s does.

boomergeek 19-03-2010 09:54

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Ether (Post 938382)
...with the lack of fine control of robot movements...

~

Team 241 has 8" mecanum, direct drive toughboxes,
voltage control CAN interface

----
We are considering adding and tuning a speed control based on encoders that are already mounted.
----

There have been many factors that we have found seem to affect "the lack of fine control of robot movements..."

+ consistent CIM free run speed - (some CIMs are outliers)
+ consistent gearbox efficiency -
+ consistency of mecanum roller turn resistance- keeping these even have been a constant maintenance task for our mechanics
+ the designed lack of roundness in the 8" mecanums - at very low power, this non-linearity is noticeable.
+ weight distribution - get 4 scales one for each wheel.
+ suspension to keep all wheels firmly on the ground (we added this early based on academic research- so we really don't know how important it is to this game/surface... Are some teams with mecanums but without suspensions satisfied with the handling for the Breakaway arena?)

and probably most important-
+++ giving the driver enough practice time to truly have a chance of learning to predict the behavior of the robot based on the commands sent to it.
we locked in on using a single driver almost exclusively due to the lack of enough practice time available.


Our original optimistic plans were to have speed control (not voltage control) completed at least two week before the robot had to ship so the drivers would have substantial time to learn the machine.

We have portions of a second bot but we did not get to a cloned drivetrain (no mecanums, only 2 CIMs on it).

The teams with fields to practice on and have cloned second bots to practice with are strongly advantaged both in getting the control right and more importantly, in training the drivers to play the game well and making the most of the control that they have.

I am bit amazed on how well some drivers have done with so little driving practice especially with new mecanum drive systems.

IMO, the most important control system to tune is the one between the drivers ears... ;)

Bill_B 19-03-2010 20:37

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Jared341 (Post 938693)
...
4. Making sure that weight is distributed evenly! The vector math assumes all wheels have equal normal force - if your robot is far off from this assumption, your mileage will vary.

Can you adjust each motor's signal based on the ratio of normal forces? That is, if you know the percentages of robot weight borne by each of the corners, can you compensate for that by varying the command to each? This might also be useful for bump-climbing when the weight distribution on even a perfectly centered CG 'bot gets totally skewed.

Ether 20-03-2010 13:17

Re: fine control of robot with mecanum wheels
 
http://www.chiefdelphi.com/forums/sh...94&postcount=1

We were able to improve driveability to an acceptable level by going back to tank drive (to take advantage of our driver's previous tank-drive experience) and using one joystick's X-axis (not used for standard tank drive) for strafe. We developed an algorithm to encode the 3 joystick commands (leftY rightY rightX) into commands for forward/reverse, turn, and strafe, which could be tuned independently (see link above). With a bit of tuning, it behaves just like the familiar tank drive, except it has the ability to strafe by using the joystick X-axis when necessary.


~

Jared Russell 20-03-2010 13:46

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Bill_B (Post 939753)
Can you adjust each motor's signal based on the ratio of normal forces? That is, if you know the percentages of robot weight borne by each of the corners, can you compensate for that by varying the command to each? This might also be useful for bump-climbing when the weight distribution on even a perfectly centered CG 'bot gets totally skewed.

This would work in principle, but because of the dynamics of how a robot moves (e.g. the weight gets shifted towards the rear wheels when accelerating), you would need a very fast strain gauge or other type of force sensor to detect how these quantities vary over time. I'm not sure how much this would help in practice.

Ether 20-03-2010 19:07

Re: fine control of robot with mecanum wheels
 
Quote:

Originally Posted by Bill_B (Post 939753)
Can you adjust each motor's signal based on the ratio of normal forces? That is, if you know the percentages of robot weight borne by each of the corners, can you compensate for that by varying the command to each? This might also be useful for bump-climbing when the weight distribution on even a perfectly centered CG 'bot gets totally skewed.

As long as each wheel has enough normal force to provide enough friction so that it is not slipping, you want the same command applied to each wheel. The torque on each wheel gets transferred from the wheel to the ground, regardless of the normal force on the wheel, as long as the wheel is not slipping.

If a lightly loaded wheel is being given a command higher than the friction provided by the normal force on that wheel can support, and the wheel starts slipping, then what are your options? If you reduce the command to that wheel without reducing commands to the other wheels you will mess up the behavior of the bot (we're talking about a mecanum bot here). If you don't do anything, and let the one wheel slip, that will also mess up the behavior of the bot. Bottom line: you must have enough normal force on each wheel at all times in order for mecanum behavior not to be affected. That's why suspensions are used on mecanum bots: to distribute the normal load on each wheel more evenly.


~

efoote868 20-03-2010 20:50

Re: fine control of robot with mecanum wheels
 
As I said before, 868 is using mecanum wheels with no wheel feedback.
We are using 6" wheels. We've also geared our robot down significantly, I doubt our max speed is faster than 6 feet per second. This is probably why our robot is so controlled.

Sorry I couldn't help much; best of luck at your competitions.


All times are GMT -5. The time now is 01:14.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi