Using some kind of a controller to assist steering.

Hello! I am a new beginner that want some advice to point me in the right direction. I have done some research, and I have an vague idea how I should deal with my problem. Since I am a completely new beginner I obviously do not know if I am on the right track. Therefore, I would really appreciate some feedback.

Let me start with describing the problem.

Problem:
I want to increase the steering control on a four wheeled vehicle. The vehicle has skis instead of front wheels. Therefore when you drive it on snow the steering is often bad. This system should be controlled automatically.

Mechanical concept:
To solve this mechanically, it has been installed a manual brake that either brake the right or left rear wheel, depending on which direction you are turning.

By doing this you are transferring rotational speed from one of the rear drive shaft on one side, to the rear drive shaft on the other side through the differential.

Let us say the vehicle is turning right. The skis does not give you much steering control, so therefore by braking down the speed on the right rear wheel, the left rear wheel will get more force and rotational speed, because of the mechanical differential. As a result, the vehicle is turning left.

This concept is tested by using a manual controlled brake. It works well, but I want to make this happens automatically.

My suggestion to solve the problem:

I have though about using a controller, more specifically a PID-controller, to assist the steering.

My plan is to install a sensor that reads the steering angle, and give the signal to the Arduino controller.

By testing, I will figure which steering angle that corresponds with which turning radius. The Arduino reads the value form the steering angle and convert it to the corresponding turning radius. This turning radius value will be the wanted value - the desired set point.

To detect the actual turning radius, I have been thinking about installing a rotational speed sensor on both rear shafts.
I should now be able to calculate the required speed difference between the two rear wheels. This speed difference will give be calculated and converted into the the actual turning radius.

The PID will calculate this as the error e=radius_given_by_rotational_steering_angle - radius_given_by_rotational_speed_sensor

As far as I have figured out, it might be an alternative to use some kind of a yaw rate sensor instead of using rotational sensor the way I have described above.

This was kind of a long post, but hopefully you did understand what kind of problem I am trying to solve. As said earlier, I will really appreciate any feedback. Please tell me if this is not doable, or if this is just the wrong way to do it.

It sounds as if you have not done any experiments with the Arduino yet and if that is true I suggest you start with a very simple system and leave PID for later. {A} you may find that you don't need it OR {B} if you do need PID you will have a much better understanding of the project from which to implement it.

...R

How big is this radio controlled model ?

Thank you for your fast reply Robin2. I really appreciate that.

Are you thinking experiments generally on Arduino, or experiments related to this problem? I do not have much experience with Ardunio yet, just som simple coding.

I do not expect to be able to work this out right now, but this is something I want to solve. Of course I have to start with the basics, and learn from there.

So do you think it might be possible to do this without PID? Do you think there is a simpler system to solve this?

srnet:
How big is this radio controlled model ?

It is not a R/C model, but a real vehicle.

alek9517:
Are you thinking experiments generally on Arduino, or experiments related to this problem?

I was thinking of experiments related to this problem. My suggestion has even greater validity if you are new to Arduinos.

...R

Robin2:
I was thinking of experiments related to this problem. My suggestion has even greater validity if you are new to Arduinos.

...R

Okay. Yes, you are right, I definitely have to start with a simple system, and take it from there. Thanks for your advice.

I might also be using this in my studies. I have a presentation I have to perform, and I thougth I maybe should make a presentation of this, as this is something I am actually is workin with. I do not think to give the excact solution, but show that this is a problem where you can use an PID-controller. Does my describing in the first post sounds as a reasonable way to solve it?

alek9517:
I have a presentation I have to perform,

[...]

but show that this is a problem where you can use an PID-controller.

I think you may be jumping the gun.

Why not make a presentation about a simple control system - if you get far enough to show that it is insufficient, then you could introduce PID.

My own thought is that the sort of skid steering you describe does not need the precision of PID. Or, think of it another way, it is the driver that does the PID stuff with his brain. That's what happens with the steering of a car.

...R

Are you aware that turning skis on a flat surface will NOT make your vehicle turn?

Paul

alek9517:
It is not a R/C model, but a real vehicle.

then very thoroughly consider safety. You don't want your home-made steering control spazzing out and potentially killing you and/or others

"By doing this you are transferring rotational speed from one of the rear drive shaft on one side, to the rear drive shaft on the other side through the differential."

You might try your concept out by splitting out the rear drive brake control into individual controls for each wheel. Then use manual controls (hand controls or foot controls, depending on if it is an ATV or a Humm-vee). If things work out, then you can start automating the brake control.

Robin2:
I think you may be jumping the gun.

Why not make a presentation about a simple control system - if you get far enough to show that it is insufficient, then you could introduce PID.

Yes you are probably right. I was not maybe clear enough, but I am going to have a presentation about PID-controller, and thought I could say something about this project in the presentation. I think I drop that saying anything major about this project in the presentation, I will just focus on PID-controller.

Robin2:
My own thought is that the sort of skid steering you describe does not need the precision of PID.

I think you are right. Espesically, when you have skis in the front. I am not aiming for a super precise steering control, but more like that the vehicle is heading approximately in the same direction as the driver think it will go.

Robin2:
Or, think of it another way, it is the driver that does the PID stuff with his brain. That's what happens with the steering of a car.

...R

Not sure if I undestands you here. As I understand it, you are meaning that if the vehicle is not turning in the right direction, the driver is just turning a little bit more on the steering wheel, until the vehicle is heading in the desired direction. Am I right?

Paul_KD7HB:
Are you aware that turning skis on a flat surface will NOT make your vehicle turn?

Paul

Yes, therfore I want to make one of the rear wheels/belts rotate faster than the other do make the vehicle turn.

Maybe I did not undestood you comment?

TimMJN:
then very thoroughly consider safety. You don't want your home-made steering control spazzing out and potentially killing you and/or others

Yes you are right, that is definitely an important point. Safety first!

zoomkat:
"By doing this you are transferring rotational speed from one of the rear drive shaft on one side, to the rear drive shaft on the other side through the differential."

You might try your concept out by splitting out the rear drive brake control into individual controls for each wheel. Then use manual controls (hand controls or foot controls, depending on if it is an ATV or a Humm-vee). If things work out, then you can start automating the brake control.

Thanks for your feedback. As I mentioned in the first post, it has alredy been tested by a manual controlled brake. It works well, but now I am at the point where I want to automate the controll. There is installed an indepndent brake circuit which is splitted, so it is possible to either brake the right or left drive shaft.

I thought you described your problem well. PID control requires some time duration to run its algorithm and bring that error to zero. I don't suppose you want the vehicle to do a full circle. Generally any steering is for quite short duration, yes? I wonder if there would be enough time to get that error to zero before a new course change is needed.

John.

HillmanImp:
I thought you described your problem well. PID control requires some time duration to run its algorithm and bring that error to zero. I don't suppose you want the vehicle to do a full circle. Generally any steering is for quite short duration, yes? I wonder if there would be enough time to get that error to zero before a new course change is needed.

John.

This is absolutely a good question, thanks for that. I have actually had it in my mind myself, and you are right when you say the steering is for quite short duration. This question is one of the reasons I asked here, because I want to learn along the way. I am not expirienced with PID-controllers.

I have been suggested to start with a simple system, which I am going to do.

Anyway I woud appriciate all kind of comments and input about PID, and any other things, because I learn a lot of this.

Your question is leading me to think about a question I have:

How will the PID-controller react on a variable set point? I have tuned a digital experiment with a fixed set point. To find the constant Kp, Ti and Td, I used Ziegler-Nichols method. When the set point varies, like when you are changing the steering direction, would not these constans have to be changed aswell?

I recall Ziegler-Nichols from my student engineering days. Sophisticated stuff.

I don't think the constants depend on the set point. If they did you would have to adjust them when the set point is changed and that defeats the notion of automatic control.

The constants reflect the physical parameters of your dynamic situation, i.e., a skidoo moving over snow.

As someone above said the control algorithm is in the driver's head. We're amazingly good at it. If you set the steering the PID controller will take you into a tree cos that's what you asked for.

If you're looking for a practical control problem -- how about the speed?

John.

Maybe just start with varying brake pressure simply proportional to steering angle. Get a feel for how sophisticated control needs to be.

When you get to PID control of brake pressure proportional to left/right speed differential which will vary based on straight line speed, you may then be in the realm of driver preference. Do you want aggressive steering assist or mild? Should the aggressiveness change with speed? Should it be manually adjustable on the fly?

Maybe you don't want PID. Maybe the driver needs something more consistently predictable with predictable flaws or maybe PID IS more consistently predictable.

Does the vehicle drift? What is supposed to happen during opposite lock? How do you detect opposite lock? You may need accelerometers and gyroscopes.

alek9517:
Not sure if I undestands you here. As I understand it, you are meaning that if the vehicle is not turning in the right direction, the driver is just turning a little bit more on the steering wheel, until the vehicle is heading in the desired direction. Am I right?

Yes.

PID is just a computer algorithm that does that.

...R