Jump to content

randomvibe

Members
  • Posts

    5
  • Joined

  • Last visited

Everything posted by randomvibe

  1. Dealing with sensor noise was one of the biggest challenges. The control system samples at 100 hz, which seems fast enough to stabilize the robot. The stepper-motors are very responsive, but induce lots of vibration. So the accelerometers and gyros both have analog anti-alias-filters with a ~100hz cutoff. In software, the gyro signals are filtered further with a butterworth at 10hz. Lower cutoff results make an unstable controller. Tilt angle from just accelerometers is not practical because the measurements are just too noisy. They pick up everything. The robot-frame resonant frequencies feedback into the sensors and cause the steppers to vibrate the robot-frame further. It does not diverge. It hits a Limit Cycle Oscillation. You can put in strong filters with very low cutoffs, but then you end up with too much lag and an unstable controller. There are many ways to fuse the accel & gyro measurements to get a clean tilt angle. A Kalman filter is probably overkill for this robot. But because the Kalman filter is ubiquitous in aircraft and spacecraft, I wanted to learn about it by coding it and using it. And I wanted to practice using the Eigen library. I highly recommend it if you need to do matrix operations. It's almost as simple as Matlab.
  2. I originally used the 32-bit Arduino Due board, but switched to the more powerful and lower cost Teensy 3.6 by prjc.com. The Teensy is also a 32-bit microcontroller, and compatible with the Arduino programming environment. Support at the forum is excellent - the owner/developer get involved and is very helpful. The programming environment uses the avr-gcc compiler. This is important because it's compatible with the Eigen C/C++ library. I use it for my Extended Kalman Filter (EKF) to calculate tilt angle from noisy accel & gyro measurements. The EKF involves hefty matrix algebra and Eigen greatly simplifies the coding.
  3. The purpose of this project is to learn feedback control systems, by practice and experience (sometimes painful). Dealing with sensor noise was a big problem, and the stepper motors exasperated the problem. That said, I've learned much and it seems to be working well.
  4. The robot will fall down without a feedback control system. The CG is about 2-feet above the wheels, so the robot is inherently unstable. Like a broom stick sitting on your palm. This is how the robot responds if "you poke a stick at it"...
  5. It's almost spooky what a robot will do with just a few simple rules, as with a PID controller. In my project below, at 1:20, all I do is issue a forward-command, and the system moves backward momentarily to tilt the robot forward, and then it moves.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.