Hi All,
I know some of this has been discussed, but I've been doing quite a bit of reading about the YARB 2.0, Ardublimp, etc, and I have not quite found the information I am looking for.
I'll explain this all in detail below, but in short what I'm trying to understand is whether my very simple autonomous blimp is sophisticated enough to justify using existing autopilot code/hardware platforms, or if what I'm trying to do can be solved through studying a few types of movement simulation/decision algorithms (and if so, what is the field of algorithms I should be looking into?)
First the background of my project. I am purchasing a 7.5' remote blimp that I will be retrofitting with my own electronics. This blimp will fly around a large square room, about 5' off the ceiling, and will hug the wall. The blimp will be autonomous, but I will need to have an RC remote override for taking it down at the end of the day.
My understanding of the autopilot software platforms that currently exist is that they are mainly geared towards airplanes and quadcopters. They also appear to be mainly for outdoor use where they rely on GPS sensors, altimeters, accelerometers, etc. I understand the need for complex software packages in this case because there are multiple layers of priorities and complexities. You must first not crash, then you must decide what your next movement should be, and adjust for that movement while still prioritizing not crashing, etc. All the while you need to prevent control feedback loops.
The situation of the blimp is far easier. I want my blimp to hug the right wall and move around the square room in a counter clockwise fashion. If I understand correctly my blimp simply needs to.
- Adjust vector thrust to maintain correct distance from ceiling (elevation)
- Determine distance from the right wall, and make minor adjustments to angle as needed.
- When a wall is detected in my frontal path, I need to slow the blimp and turn left.
- Repeat
Let's say I put 4 ultrasonic distance sensors a compass, and an accelerometer on my blimp. I have one distance sensor on the right side, one on the left side, one in front, and one pointing up. I understand the base logic, but I know there are small nuances that I must compensate for, such as.
- Actual distance from a wall, given my left right and forward facing ultrasonic sensors will depend on the orientation of the blimp, and therefore actual distances will need to be calculated with a combination of distance sensors and compass.
- I will need to smooth out all sensor readings so that I am not fooled by noisy data
- Correct acceleration given orientation.
- ___ 200 other things I'll discover.
Up until here I'm ok, but here is where I'm a little fuzzy. Now that I know how close/far my blimp is from the different walls, how does my autopilot decide how to adjust the motor controls. As I get closer to a wall in front of me, I want the blimp to slow down, and then once stopped, turn left. On one hand I'm concerned that existing autopilot software solutions are going to be too complex to handle such a simple situation, but on the other hand I don't currently know how to model this behavior while preventing a control feedback loop, or for adjusting given unexpected physical inputs (like an A/C vent blows my blimp slightly off course).
My background is in computer science / electronics, but I live in a very digital world where everything is state based. In this situation if I were to model the autopilot myself I'd need to (I guess) figure out my acceleration, then determine the rate of deceleration needed to stop at my intended location, etc.
I need some help trying to understand how I should approach the software solution. Should I be reading up on a set of simple autopilot algorithms that will allow me to adjust my acceleration as needed, or should I be looking at an existing autopilot platform that is flexible enough for me to use given my probably non-standard sensor platform.
Many thanks for making it all the way through this post
Lucas
Replies
Maybe use the APM 2.x board, it is light. Or the gumstix, even lighter and more advanced.
Actually, I would think Multiwii. It is uncomplicated (except for the servo output logical to physical mapping, nightmare!) and the IMU part is simple and works very well. It should be easy to get it independant of GPS, which can't be said about Ardupilot.
I made a VTOL tilt wing airplane out of Mwii. Probably only changed 30-50 lines of code or something..
Regards, Søren