grimn28 / little-ball-bot

Miniature ball-balancing robot project
1 stars 0 forks source link

QUESTIONS #2

Open maliksyria opened 7 years ago

maliksyria commented 7 years ago

PLEASE I HAVE A QUESTION ABOUT YOUR PROJECT HOW CAN I TALK TO YOU

grimn28 commented 7 years ago

What's up, my friend?

maliksyria commented 7 years ago

First of all I want to thank you about the simulation and documentation they were very useful to me Actually i'm doint a ballbot now too , but having troubles with setting the PID parameters the question I have ,are encoders something very important to this kind of project ? I wonder about your project , do you make it in real ? thank you

grimn28 commented 7 years ago

Hi maliksyria,

So glad that you found it useful! Setting PID parameters can be a real challenge. There is a range of techniques, starting from simple experimentation/knob-turning to find stability, all the way to more exhaustive mathematical modeling and optimization of those parameters. For the former method, I would start with very low proportional-only gain, then slowly increasing the gain values, adding small integral gain, and finally adding small differential gain only if necessary for faster performance. If you want to do the more advanced design methods, I would recommend buying a text book and studying for a year or two :)

On the topic of encoders, these are critical sensors in the control system. The accuracy and speed of your sensors (encoders and others) directly impact the performance of your system. One big criterion is that your sensor should be at least 10x faster than your plant/system. In other words, the step-response of your sensor should have a settling time of about 1/10 of the step response of your robot body. If your sensor is too slow and cannot represent the dynamics of your robot (while leaving enough time to calculate/apply a control signal!), then your system will never be stable.

Good luck!

maliksyria commented 7 years ago

Hello craigmcconnell , Actually I didn't use the encoders in my project , I'm getting the angles about the X and Y axes from the gyroscope sensor only , I could also have the angular velocity of the robot about each axis , and yes it's 10x faster than my plant's sample time . My idea to have 2 PID each for angle I would to stable around, I'll have 2 output from pitch and roll which represents a vector then convert this vector into the 3 omni wheels to rotate (kinematics equations ) . i Just want it to stabilize upright, i don't mind if the robot moves in the floor plane . Now do you think this method is fine ? and does encoders still needed ? I really need help from someone clever like you ^_^ thanks a lot ,

grimn28 commented 7 years ago

Hello maliksyria,

I should tell you that I did not make this project for real. I did buy parts and I started a motor controller module, but never bought a good ball and never built up the body to rest on the ball. From the perspective of physically building and debugging the system, it's likely that you are surpassing my knowledge. I can tell you that I think you are OK to have no encoders, as long as you are okay without x-y position control. The way I see it, you only need to maintain the orientation of the robot body, and you do that by applying force to it's base (applying rotational acceleration to the wheels on the ball). You should be able to drive your accelerations open-loop by mapping them to motor control output commands. You may be able to use accelerometer data to estimate forces and improve the accuracy of the accelerations that you apply. Google "state estimation" for more about that. Good luck, I will be very impressed to see a stable ball-bot!

maliksyria commented 7 years ago

hello Craig Actually I got all the parts and robot is ready ,I just want to know how to simulate things to get the best results . I want to know from where I should start to do what you recommended me , I wonder if you could guide me to the first steps and I would continue ^_^ so can I get your facebook or something for talking to you . thanks

grimn28 commented 7 years ago

Okay, I would be happy to have a real-time Q/A session. Can you contact me privately and I can give you my email or facebook? I cannot tell whether this thread is public or private...

maliksyria commented 7 years ago

Actually there's no way for private messaging here in Github this is my Facebook : https://www.facebook.com/malik.mohrat and my E-mail is Malik_m_z@hotmail.com I'd love to talk to you