Jump to content

6-Foot Tall Falling-Up Robot


randomvibe

Recommended Posts

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.

 

 

Link to comment
Share on other sites

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"...

 

Link to comment
Share on other sites

V

 

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"...

 

Very interesting.

Any practical purpose for this robot?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

These are just video's I found on Youtube. I didn't mean to claim credit :)

 

A simple PID won't be sufficient.

 

The microcontroller has to be sufficiently fast and the sensors and actuators sufficiently accurate. This poses a limit to how many links are possible in a real setup. Higher order pendulums are very chaotic, so to control them you need to be very precise.


I can't find a video, but these guys did a quadruple one too.

Link to comment
Share on other sites

These are just video's I found on Youtube. I didn't mean to claim credit :)

 

A simple PID won't be sufficient.

 

The microcontroller has to be sufficiently fast and the sensors and actuators sufficiently accurate. This poses a limit to how many links are possible in a real setup. Higher order pendulums are very chaotic, so to control them you need to be very precise.

 

I can't find a video, but these guys did a quadruple one too.

Sorry, I meant op, i assumed you'd found links of interesting things.

 

I've seen people build sit on segway type devices that use similar systems. Mostly built around different arduinos.

 

The rover I'm planning is more of a terrain traverser than these are likely to be. I want something that can get to the end of my garden and back. It's not far but there are steps in the way... The idea being that if it can do that then it'll be capable of crossing a grass field.

Link to comment
Share on other sites

What microcontroller are you using?

 

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.

Edited by randomvibe
Link to comment
Share on other sites

I've not used a teensy yet. They do look really interesting.

 

EKF seems like a very sensible approach to handing the noisy data, what frequency do you measure at?

 

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.

Edited by randomvibe
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.