Society of Robots - Robot Forum

General Misc => Misc => Topic started by: vidam on January 26, 2008, 11:00:56 AM

Title: Top Down vs. Bottom Up Approach
Post by: vidam on January 26, 2008, 11:00:56 AM
I'd like to start a thread on Top-Down vs. Bottom Up approach to Robotic problems.

 I am always getting them confused and I tend to be the kind of person who starts top-down then skips to bottom-up and meets somewhere in the middle, if that makes any sense? What do other people do though?
Title: Re: Top Down vs. Bottom Up Approach
Post by: ed1380 on January 26, 2008, 11:07:11 AM
top down. bottom up. like forum layout?
Title: Re: Top Down vs. Bottom Up Approach
Post by: Kagi on January 27, 2008, 12:06:22 PM
I find I have somewhat of the same problem as you do when switching from one to the other halfway through. But I think it's somewhat unavoidable. I always start off with top-down. It's easier for me to lay out the system as a whole and just split it into major components. If I start with bottom up I find myself usually getting lost later on when it comes to linking all the smallest parts together. But I definately like starting with a major goal, splitting it up into 4 or five major components, and then breaking each of them down from there. It's easier to set up my classes and such this way as well. At least for me. When I get to actually coding my project or whatever it is i'm working on, I find it's helpful to go back thru with the bottom up method at the time i'm actually implementing my design. Rather like a double check of my work. 

Hopefully that made some kind of sense  :D
Title: Re: Top Down vs. Bottom Up Approach
Post by: Kagi on January 27, 2008, 12:14:12 PM
I just realized people that don't know what these design approaches are most likely are confused by this topic. Here's a quick overview.

Top-Down:

1) Start with your main goal. (Build the $50 robot, or whatever it is)
2) Break that goal up into pieces (Electronic, Mechanic, etc...)
3) Further break those down so Mechanic you would put your subsystems such as i) drive system, ii) chasis design
4) Continue from there until you have everything laid out in full detail. Then follow the approach you laid out in order to build it.

So Top-down kinda resembles a pyramid if that's easier to understand.

              *(Robot)*
 *(Electronics)*  *(Mechanics)*
||||||||||||||||||||||||||||||||||| and so on...

Bottom-up:

Pretty much the exact opposite of top down. With bottom up you start with the smallest components and work your way up to the ultimate goal of  your project.
So an upside down pyramid :D

Hope this helps.
Here's a link for further reading: http://en.wikipedia.org/wiki/Top-down_and_bottom-up_design (http://en.wikipedia.org/wiki/Top-down_and_bottom-up_design)
Title: Re: Top Down vs. Bottom Up Approach
Post by: JesseWelling on January 29, 2008, 12:22:14 AM
I tend to go with a Top-down approach. It works better for Object Oriented programing that way. And when you are done you can switch out algorithms for different things if you have set it up properly, making improvements easier to handle.

Also when I get the robot task broken up into the basic parts I need I can then go out and search for academic papers on specific subjects (Localization, Global Path Planning, Object Avoidance, Motion Control etc.)
Title: Re: Top Down vs. Bottom Up Approach
Post by: vidam on January 29, 2008, 07:49:30 AM
I tend to go with a Top-down approach. It works better for Object Oriented programing that way. And when you are done you can switch out algorithms for different things if you have set it up properly, making improvements easier to handle.

Also when I get the robot task broken up into the basic parts I need I can then go out and search for academic papers on specific subjects (Localization, Global Path Planning, Object Avoidance, Motion Control etc.)

that's great Jesse. Really great. Sounds like a good line of attacking those hard problems.