Author Topic: I need Robot Advice + Help on choosing specific "systems"  (Read 1873 times)

0 Members and 1 Guest are viewing this topic.

Offline jlrobodudeTopic starter

  • Jr. Member
  • **
  • Posts: 8
  • Helpful? 0
I need Robot Advice + Help on choosing specific "systems"
« on: February 15, 2012, 07:18:13 PM »
(let me start out by saying that I don't know if my title is good enough . . . I am always worried about that on other forums . . . )

Dear Forum,

(I will start off with a little intrusion, as my main question comes later)
I want to win a science fair using a robot.  Not this year, or the next year, but some time before I am out of high school.  I am only leaving middle school this year and entering as a freshmen next school year.  I honestly do not have much experience with robots besides a little (quite minuscule) programming and I already have an Arduino.  I want to work on said robot all four years of high school.  So I need advice - where on Earth (or, I guess, elsewhere, too) should I start?  I have read many tutorials on this site (and feel like I grasp a lot of it).  I feel like I just want to jump in - but the site says not to. . . Anyway, my intrusion is getting long (just a little background on me so you know where to lead me ) so here is my "true question:"

1. I already have an Arduino, but would like to do something with multiple microcontrollers . . . which one should I use (I think I would like to build it as I have basic soddering and electronics knowledge and more than basic electrical knowledge) with which programming language?

2. I want to do vision eventually, and I don't know how often these things change, but I was looking around and looking at some tutorials and have some questions:
      a. do you need a special microcontroller (I assume you do) and which one.
      b. do you need to work in a special programming language (I also assume you do
      c. (purely for 'entertainment' purposes right now as I really don't need to know this right now/it will probably come apparent in the future) two cameras are needed for depth perception - but how do you use both outputs - compare them, combine them . . . what?

Thank you all in advance.

Edit: Yes, I will eventually like it to be humanoid (bipedal)
and I was thinking pvc pipe for the body - any objections?

Edit #2 (haha two edits before anyone even replies :) : I don't want to seem like an over expecting little kid (I feel like we are stereotyped this way, sometimes) and do not expect in any way to build a bipedal robot as my first robot
haha, the reason for this is sort of because my birthday is coming up in a month and I would like to ask for some robot gear for later on. . .
« Last Edit: February 15, 2012, 08:13:28 PM by jlrobodude »

Offline Resilient

  • Full Member
  • ***
  • Posts: 111
  • Helpful? 4
Re: I need Robot Advice + Help on choosing specific "systems"
« Reply #1 on: February 15, 2012, 11:29:09 PM »

1. I already have an Arduino, but would like to do something with multiple microcontrollers . . . which one should I use (I think I would like to build it as I have basic soddering and electronics knowledge and more than basic electrical knowledge) with which programming language?


Why do you want something with multiple microcontrollers? A single microcontroller can do more than I generally  need. Are you wanting to get into some fancy parallel processing to speed up path planning? Because that is a task that I would be a little scared to take on and I am almost done with college. :)

As for picking one. I would figure out what you want your robot to do and work backwards from there to choose an appropriate microcontroller.

2. I want to do vision eventually, and I don't know how often these things change, but I was looking around and looking at some tutorials and have some questions:
      a. do you need a special microcontroller (I assume you do) and which one.
      b. do you need to work in a special programming language (I also assume you do
      c. (purely for 'entertainment' purposes right now as I really don't need to know this right now/it will probably come apparent in the future) two cameras are needed for depth perception - but how do you use both outputs - compare them, combine them . . . what?

Most vision processing is very CPU intensive and I have generally seen it done off-board. So a camera sends a video stream to a laptop or desktop computer, which does analysis on the video then sends back simpler data to the microcontroller.

OpenCV is a popular image processing package and works in many programming languages. You could also use something simpler like RoboRealm which is less flexible, but doesn't take 2 days to figure out how to compile and get a simple hello world program working.

I have not done much stereoscopic vision so I am not sure how that is done. I would imagine that it finds similar points in both images and compares the distance. The closer the points, the farther the object is from the cameras, but I am not really sure.

Offline jlrobodudeTopic starter

  • Jr. Member
  • **
  • Posts: 8
  • Helpful? 0
Re: I need Robot Advice + Help on choosing specific "systems"
« Reply #2 on: February 16, 2012, 07:03:03 PM »
Thanks!  You really helped me (although, no offense, I sill offer the 'floor' to anyone else with a different look on things . . . )


Why do you want something with multiple microcontrollers? A single microcontroller can do more than I generally  need. Are you wanting to get into some fancy parallel processing to speed up path planning? Because that is a task that I would be a little scared to take on and I am almost done with college. :)

As for picking one. I would figure out what you want your robot to do and work backwards from there to choose an appropriate microcontroller.


Do you (or anyone else) know of a list that has the different microcontrollers (with programming language, maybe) that has the pros and cons (and uses) along with it.

I was thinking of doing multiple microcontrollers because of the complexity.  (This is a big science fair :)  I think that is something I will work up to (plus I was just thinking of the hardness of different communicating microcontrollers - but parallel processing sounds good enough (haha . . . maybe in a while . . . :)


Most vision processing is very CPU intensive and I have generally seen it done off-board. So a camera sends a video stream to a laptop or desktop computer, which does analysis on the video then sends back simpler data to the microcontroller.

OpenCV is a popular image processing package and works in many programming languages. You could also use something simpler like RoboRealm which is less flexible, but doesn't take 2 days to figure out how to compile and get a simple hello world program working.

I have not done much stereoscopic vision so I am not sure how that is done. I would imagine that it finds similar points in both images and compares the distance. The closer the points, the farther the object is from the cameras, but I am not really sure.


Open CV sounds great!  From what I see on the website I think it may be what I need.  (I am sort of tempted to do that on board now!  haha - later times, later times)

Thank you - I am sure the information on stereoscopic vision is somewhere - I will find it!

Thank you very much for all of your information!!  You seem very knowledgeable on the subject of robotics!!

Offline Soeren

  • Supreme Robot
  • *****
  • Posts: 4,672
  • Helpful? 227
  • Mind Reading: 0.0
Re: I need Robot Advice + Help on choosing specific "systems"
« Reply #3 on: February 16, 2012, 09:34:50 PM »
Hi,

Do you (or anyone else) know of a list that has the different microcontrollers (with programming language, maybe) that has the pros and cons (and uses) along with it.
Take a deep breath and relax...
First you determine what a microcontroller should do, then you select one out of the thousands of existing microcontrollers that fits the bill.
All microcontrollers can be programmed in several languages, plus their native assembler.


I was thinking of doing multiple microcontrollers because of the complexity.
Doing stuff just for making it more complex is insanity. Without a specific purpose it will just detract from the appearance - like "weren't you skilled enough to make it fit in a single controller".
If, on the other hand, you have a purpose - like building in interchangeable modules, it makes sense, especially as controllers are dirt cheap.

Take something like a line sensor. Build it around a suitable sized controller that continually updates average lighting and such and let it communicate its results to a master controller over two wires. Then it's lifted from insanity to a modern modular approach, which leads to a modular approach in programming as well, as you encapsulate each module (line sensor, motor control, obstacle detector etc) as a complete and functional module that just need the master for binding it all together and make the higher levels of calculations, based on the collective amount of data from all sensors and  just tell the actuators what they should do, but not how (as that is taken care of in each sub module).


  (This is a big science fair :)  I think that is something I will work up to (plus I was just thinking of the hardness of different communicating microcontrollers - but parallel processing sounds good enough (haha . . . maybe in a while . . . :)
Just dive in and build a simple robot like eg. the "$50 Robot" - it's the only way of growing some virtual chest hairs, as the problems that you meet will help you learn. Reading alone don't give you the same experience.
So, for your birthday, ask for the stuff to build this robot plus whatever tools you will need and don't have - like a programmer, a soldering iron, a digital multimeter etc. or if you've been a good boy the last year and your dad's rich, ask for an oscilloscope and a Logic State Analyzer (just kidding ;))

Over the years you'll build up on tools and components/materials, but a basic assortment of resistors is cheap and very-very nice to have early on.

Don't speculate so much about making a biped or on generating awe by a complicated project - we don't make complicated stuff to get admired, we do it because we cannot help it and because each and every time you have made something that works, you get that fuzzy feeling inside (or perhaps it's just gas from too long hours without sleep and too much whiskey and junk food ;D)

Until your birthday comes up, plan some chassis designs, study the many possible ways of making a wheeled (or tracked) chassis, 2, 3, 4 or more wheels, regular wheels or Mechanum wheels, suspension (how to keep all wheels on the ground at all times), how to craft it in plywood, plastic, fibre glass/carbon fiber, aluminum etc.
Get some scrap material and make some models - then it will be easier when you're building the real chassis.

Whatever you choose to do, get your hands in the mud as fast as you can, 4 years is not that long - as you'll know around a month before the final date :)

And to answer your PM
No, I'm not a necromancer/evil wizard, at least I don't know how to wake the dead, I don't really do wizardry and my name is pronounced more like "Sir N" (All knights reserved).

You shouldn't do this to win the competition, as if that's your motive, you're bound to fail. Just do the best you can an add 5%.

Quote
I just want to know - what was your most complex robot, and how long did it take you to fully reach that point in your robotics "career."
That will be clear when I die, I guess, but I don't see any of what I do as complex, rather as worthy challenges I can learn from and perhaps use for something, although the "use perspective" is not that high on my list, nothing's as boring as a finished robot (unless it was made for a specific and useful purpose), it's the process of creation that fuels my fire.

But people are in this game for a lot of different reasons and It's for you to discover what will be your main interest.
Regards,
Søren

A rather fast and fairly heavy robot with quite large wheels needs what? A lot of power?
Please remember...
Engineering is based on numbers - not adjectives

Offline Resilient

  • Full Member
  • ***
  • Posts: 111
  • Helpful? 4
Re: I need Robot Advice + Help on choosing specific "systems"
« Reply #4 on: February 16, 2012, 09:52:48 PM »
As a highly competitive person, I understand the desire to make something that will win. That is why I made a lot of the stuff I have made. But you may be going about winning the wrong way. (Unless the judges are really really bad engineers)

You want to find an interesting or complex problem and make an elegant or simple solution. Do not go the other way around. The more specifically you can define the problem you are trying to solve, the easier it will be to find a good solution to that problem. The longer you work on that solution, the simpler the solution will become.

--

Consider two different science fair projects. Lets say it is a robot to make eggs for you in the morning. One uses several thousand dollars of computers, makes use of "The Cloud" and has 100 pages of documentation.

The other has a dial you can use to set the time you want your eggs made, a button that says "Make Eggs at the Set Time" and another button that says "Make Eggs Now". It uses $50 worth of servos and hardware and a $1.24 microcontroller.

They both make eggs just as well.

It is pretty clear which is the better solution.

Offline Soeren

  • Supreme Robot
  • *****
  • Posts: 4,672
  • Helpful? 227
  • Mind Reading: 0.0
Re: I need Robot Advice + Help on choosing specific "systems"
« Reply #5 on: February 16, 2012, 10:41:22 PM »
Hi,

[...]
It is pretty clear which is the better solution.
No it's not... I am well aware of what you're trying to get across, but it's just an opinion based on a certain perspective. Different perspectives may well lead to different opinions, some may think that your first solution is missing a crucial component (like eg. a V8 motor) and quite frankly, I find the latter a little over-engineered, one button should be enough ;)

That's one of the really nice thing about robotics - no rules written in stone and what's right for one person may be poison for the next and v.v.

We all try to make others see the world our way (because we think it's the right way... Or we would change our perspective) and that's why we constantly have to re-evaluate our beliefs, to make sure they still hold, with the at any given time available mass of info.

Your (sort of) minimalistic approach could eg. have several reasons.
It sure is the cheapest way in components (but not necessarily so in time), it may be a question of living in a very small flat (bear with me:)) or it could be that this school of thought is rooted in times where controllers were expensive and so, they had to be filled to the brim (but it sounds better talking of minimalism than saving money).

Point is, microcontrollers are cheap and unless there's space restrictions, using controllers in large(ish) numbers can actually be cheaper than trying to cram everything into a single chip, you get easier serviceable modules and, perhaps the most important thing, you can make do with a much lower level of abstraction.
Regards,
Søren

A rather fast and fairly heavy robot with quite large wheels needs what? A lot of power?
Please remember...
Engineering is based on numbers - not adjectives

Offline Resilient

  • Full Member
  • ***
  • Posts: 111
  • Helpful? 4
Re: I need Robot Advice + Help on choosing specific "systems"
« Reply #6 on: February 16, 2012, 10:55:03 PM »
I would argue that since it uses "The Cloud" the first solution is objectively worse  :P

Really, I should have added that the specifications for goodness (yes goodness) included simplicity of operation and use for a 25 year old liberal arts graduate and low cost. Then it would hopefully be clear which is the better solution given that they do an equally good job of cooking eggs.

Anyway, a good take away is to plan the design requirements and measures of success ahead of time and design the robot around that. If you do this and document it well, people will be impressed... otherwise people will argue that spending several thousand dollars on a computer to make your eggs is in fact better than spending $50 to do the same thing.  ;D
« Last Edit: February 16, 2012, 11:01:10 PM by Resilient »

Offline jlrobodudeTopic starter

  • Jr. Member
  • **
  • Posts: 8
  • Helpful? 0
Re: I need Robot Advice + Help on choosing specific "systems"
« Reply #7 on: February 17, 2012, 10:52:48 AM »
Soeren -

Thank you very much for your advice.  I agree with everything you said .Winning the fair is not my only reason for doing this (neither is trying to get the scholarship money for winning it . . . ).  Now that I think about it, my first idea for multiple microcontrollers was to do basically what you said - different communications between them and the main one.  Thank you again.

Resilient -

You are right - I am going to need to do some major innovation that really improves something (I think coming up with that is going to be a problem . . . )

Thank you both of you for your excellent advice and outlook on robotics.

Offline davidhere40

  • Jr. Member
  • **
  • Posts: 20
  • Helpful? 1
Re: I need Robot Advice + Help on choosing specific "systems"
« Reply #8 on: February 17, 2012, 01:03:45 PM »
For vision, I would highly recommend you use Kinect. I have worked on Kinect Fusion lately through the PCL project. But, let me tell you, you have NO idea what you're getting into :) I assume you're in elementary, maybe high school. The amount of math and experience required to do computer vision effectively is pretty high. Of course, it all depends on what you want to do. But trust me, it's hard and generally computer intensive. I've been working on computer vision research for a few years on my own, have a bachelors in computer science and it's still VERY hard for me. I recently did some work on Kinect Fusion, which can do 3D mapping in real-time, using a $1000 computer. The computer requires a compatible (and expensive) graphics processor from NVIDIA.

You really need to decide what you want the computer vision to accomplish. And then keep it SUPER simple for your own sanity's sake :)

Offline jlrobodudeTopic starter

  • Jr. Member
  • **
  • Posts: 8
  • Helpful? 0
Re: I need Robot Advice + Help on choosing specific "systems"
« Reply #9 on: February 17, 2012, 02:07:14 PM »
davidhere40-

I figured it will be advanced math (but not that advanced) thanks for clearing that up.   I guess it wasn't really a question but I am in eighth grade right now in Algebra 1 math and am studying Geometry to go into Algebra 2 next year as a freshman if everything works out.

I looked up kinect fusion.  I think you are talking about the Kinect from the xbox (as seen at http://research.microsoft.com/en-us/projects/surfacerecon/ ).  Thanks for the tip (I think you were suggesting using it but maybe you were suggesting to use it if I had a 1000 dollar computer haha).  I know my math experience is not that much (high for my age but not anything really really up there) but maybe once I get into it I can see what I can do. 

Thank you very much.

Offline rbtying

  • Supreme Robot
  • *****
  • Posts: 452
  • Helpful? 31
Re: I need Robot Advice + Help on choosing specific "systems"
« Reply #10 on: February 17, 2012, 04:01:38 PM »
I've been doing my own development with using a Kinect as a sensor, and I'll second the math requirement--I'm a high school senior planning to major in CS/ECE next year, and it's much beyond what the high school curriculum covers.

Of course, there is the option of self-study, but I doubt this will win much in a Science Fair, insofar as it will end up needlessly complex. Remember that you have the present your project in 3-4 minutes to the judge, and that it needs to sound technically difficult and conceptually simple for awards.

Offline jlrobodudeTopic starter

  • Jr. Member
  • **
  • Posts: 8
  • Helpful? 0
Re: I need Robot Advice + Help on choosing specific "systems"
« Reply #11 on: February 18, 2012, 11:07:46 AM »
rbtying -

That is true, but I don't think Intel will mind if its complex . . . I probably will self-study A LOT over the summer and during the school year but you are right.  It does need to be conceptually simple and a robot is not necessarily a simple project.


Thank you.
I will keep  what you said in mind.

 


Get Your Ad Here