MPU vs MCU - Which is more suited and what is the best one?

Hello all, brand new to the group.

My girlfriend and I are working on a Johnny Five style robot and I'm doing the research for the brains. And boy have they come a long way since I used my last controller which was a handyboard. I've spent weeks investigating cutting edge MCU's and MPU's. I even looked into embedded PC's but my fear was that they would be too big to fit in our bots chest cavity as well as a concern about trying to get any peripheral control cards (shields/capes/etc) to work with them so I ruled that out.. There's so many mcu/mpu's out there the short list was the Adruino Mega and Due, BeagleBone Black, Intel gallileo2, Raspberry pi2(which I pretty quickly ruled out), Creator, and lastly the OdroidXU4 and Humming board Edge. The last two peaked my interest the most because they seem to be the most complete as far as MPU's go. 

It seems like there is a race betwen more complete MCU's and more comoplete MPU and the line is blurring more and more everyday. So much so that it's still a little unclear which are the best for robotics because it seems like you could use either in fairly advanced setups and go quite far with either. So for me it came down to the Odroid XU4 and the Hummingboard Edge. And with MCU's the Adruino and Beagleboard community as well as baords seemed the most logical. Still I liked the MPU Odroid and Hummingboard better.

I feel comfortable with Linux and I want to challenge myself with a much more complex robot than what I made many years ago, so I liked the idea of having a board that is just dog piled with goodies, USB, fullsize HDMI, gigabit ethernet, Emmc, fast processor, etc.  

But asking which board is the best comes down to what you're building of course. So I can tell you roughly I'll be upwards of 20-24 servo motors between torso, arms, neck and head, +locomotion,  I want to experiment with stereoscopic vision and a host of other sensors and motor control sheilds/hats/capes etc. (really bugs me that no one has a conventional name for these add-on boards).

Both the Odroid and the Hummingboard have huge libraries of add-on boards and I believe (don't quote me) they both might be comopatible with Adruino shields.

So before I pull the trigger and buy either board I'd love to get some input on A:) Is my thinking even logical with revering MPU's for my humanoid-ish robot? and B:) Are these good choices that people have had good success with?

Read a lot of articles on the breakdowns of MPU's and MCU's and most articles put the MCU's for simple tasks, lighted signs, washing machines, traffic lights, etc. But that seems a little unfair with regard to Adruino type boards which are fairly sophisticated and i believe one could build a very sophisticated board with both a microcontroller or a microprocessor. The Adruino seems the easiest and most plug and play but the functionality and processing might be limited in the longer run. And that was something I was concerned with, as I wanted a board I could grow into. I also wanted something that was more like a computer in and of itself instead of a unit that I'm plugging into my computer like a peripheral.

Anyway hopefully my thinking isn't too terribly ignorant and I'd love to get peoples input. My first idea was an FPGA and then I realized I didn't want to spend the next 6 months just learning the basics of programming it and then another few years understanding how to get the most of it. That just seemed way over kill and indeed those who had worked with FPGA's said it was overkill for nearly most robotic applications. So I officially gave up on the FPGA route, at least for now and at least unti I get to some roadblock where I can't get something done execept for using an FPGA.  

I'm going to make a pull out board in our chest cavity, so that if for some reason I want to upgrade/change the board to something entirely different I can just fabricate a new back plane for all new electronics hardware. 

Making the hips with a powered slew ring with 360dg continuous rotation and a slip ring for communication between the tracked base and torso/upperbody. Chasis will be either solid or tubing frame tig welded Aluminum, Chromoly or Titanium. In a way it's kinda like an androidish autobot lol  The mechanical and fabrication aspects are fun and challenging but the electronics aspects seem even more challenging henc I'm hoping to get just a few points or hints in the right direction. So as I don't make any massive mistakes early on which could be costly or diminish morale. 

Thank you, all.  

Raspi

"I feel comfortable with Linux and I want to challenge myself with a much more complex robot than what I made many years ago, so I liked the idea of having a board that is just dog piled with goodies, USB, fullsize HDMI, gigabit ethernet, Emmc, fast processor, etc."

What made you rule out the Pi?
In my very humble opinion, you can never go wrong with a pi.

Especially if you are planning on something complex, with a vision system, Pi supports OpenCV very easily, quad core for processing, only time I have ever had problems with a Pi, was with controlling lots of servo’s etc, but hey, with the right controller this won’t be a problem.

I look forward to seeing what you come up with though! 

I don’t have any particular

I don’t have any particular prejudice against the pi, it just seemed to be marketed towards computing applications and entry level programming students, children and teens, and seemed like it didn’t have as much on the board as other MPU I was looking at. Also the low cost of the pi and several other boards seemed to be a turn off on a project where I’m sparring no (reasonable) financial expense. I’ve got about 2K in my chasis and tracks as of right now, so to put a 40-50$ MPU in it seemed a little crazy. I’m sure it’s good but it made me wondering what is far more advanced and more capable and higher end out there. But I do agree, you can’t go too wrong with the Pi2, it’s a good platform for many things and has a huge following+resources. But like I said in my list it didn’t seem as attractive.

What are your thoughts and ranking of all those MCU/MPU’s I mentioned above? Do you have any experience or general opinion on them? 

I have looked over the

I have looked over the hummingboard/beagle/gallileo and always chosen the Pi over these, just for familiarity, and overall “bang for your buck”, so I have almost no experience with these.

Arduino are always incredible for controlling physical items, but as far as making something with a stereo vision and higher level cognitive capabilities, I think you may find yourself with quite a hurdle, Perhaps a mix between Arduino for controlling movement, and then some higher level controller for the brains? 

I used an Odroid once before for a biped football project, I thought it was actually very good, easy to use and program, quite powerful, however I wasn’t involved in most of the building process, so I can’t comment on how easy it was to integrate to various servo’s etc.

Sorry I can’t be of more help, but I just think its worth mentioning, just because something is cheap, doesn’t make it crap, and 
vice versa.

I agree that if something is

I agree that if something is cheap it doesn’t mean it’s bad, but it made wondering if I can get x, y or z for $40-60 than what could I get for $200-300. That’s all I meant by that. I looked into fairly high end embeeded PC’s but they’re just too big to fit in my robot, and they’re not terribly geared towards physical computing so I have no idea how take something like an embedded PC and translate it into shields/capes/etc add on boards. Maybe through USB or gigabit ethernet I guess. 

The more I look at these this evening the more I really like the Hummingboard Edge and the Beagleboard X-15 (which is coming to market soon). 

I like the adruino shields, but just not crazy about their base MCU controllers.  I guess that’s kind of like loving all the accessories of a car but not liking the car itself. lol

Jetson TK1

It might be worth looking into a Jetson TK1 from Nvidia, I don’t know how they stack up against more modern boards these days, or if they are even avaliable anymore. But if memory serves, they might be more what you are after, CUDA support, and quite fancy!

I think this is almost a

I think this is almost a religious choice and a lot of people will have very strong opinions. 

It sounds like you have really done your homework, which is a good thing.  You brought up a lot of options and I think all of them are good and have a following.  It comes down to what will fill the bill for what you want to do and what has the best libraries available, support forums with knowledgeable people etc.  The  best hardware in the world is useless without good software, and if there are a lot of things to jumpstart you on your way in one direction versus another, then that is probably the direction to go.  If you want stereoscopic vision, you definitely want something with a lot of RAM because Machine Vision will eat it very quickly.  The reality too is that you are also going to want to do something down in the bits and bytes such as quadrature encoder, control multiple servos simultaneously, etc. Linux is not a real time operating system so you really need both a dedicated embedded processor for low level stuff and a higher order board running Linux to deal with AI, machine vision, etc. 

Ok, now we get to my religion!   I am stepping onto my soapbox now… I would suggest this book (ignore the title, it isn’t what the book is about!).  He shows you how to build a Turtle or round bot with ROS,  (which also has a package for stereoscopic vision) with very current hardware and software.

http://www.amazon.com/gp/product/1783287535/ref=s9_simh_gw_g14_i1_r?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=desktop-1&pf_rd_r=1SF2SHAZ6MFDTN9CDKPV&pf_rd_t=36701&pf_rd_p=2079475242&pf_rd_i=desktop

What he suggests is an Intel NUC with 4 gigs running ROS (check it out at ros.org) on Linux plus an ARM processor which is equivalent to an Arduino Mega.  I also would highly recommend ROS for what you are trying to do.  Its distributed architecture will give you many of the things you want (SLAM, Navigation, stereo ocular odometry - uses stereo vision to create a point cloud so you know where objects are) plus make adding things in the future easier.  He also suggests using a Kinect to develop a 3d point cloud and these things are like $25 for a refurbished one at gamestop.  You could have several on your bot and a few backups for that price.

Good luck no matter what you do.  What a cool project so be sure to keep us up on what you are doing.

Regards,

Bill

 

 

 

Wow, just wow. Thank you for

Wow, just wow. Thank you for this reccomendation. I looked into this board it’s truly incredible. It was being used in Jan of this year in robotic vision contests at MIT so it must be fairly cutting edge. Processing power wise it really smokes every board I mentioned, even the beagleboard X15 (not out yet) and the humingboard. However it is a larger footprint, 5"x5" so it does take up much more real estate. Good thing I have a bigger bot, this might just barely fit inside. This thing definitely climbs into the arena of what I was looking for and seems more to scale than the smaller boards, which are great for smaller robots, but if you have the room you’d be crazy not to get this processing power especially if you need it. Thank you so much for the reccomendation. It really led me on a positive path to lots of good pages and videos that are uniquely similar to our project.

It’s funny, you’re not the

It’s funny, you’re not the first person to mention the religion thing, Bill. I can really start to understand how that becomes a factor. Once you choose one of these companies, you sort of get into bed with them, understand their products, lingo, libararies, support, development kits, etc

I was thinking about putting some kind of encoders on the hubs so I can get feedback from the rotation of the wheels. Not sure if that’s the way to go or if it’s better to rely on a mixture of machine vision and sonar or lidar.  The price on a lot of this stuff has come down so incredibly since my last robot over a decade ago. I defnitely have to shake off some rust. Definitely agree with having the higher functioning running on a more advanced platform and other shields doing the heavy lifting of controlling all the positioning of what will be a large array of servos/animitronics. 

I’m off to purchase that book. Looks right up our alley.

How do you think the latest NUC NUC5i7RYH compares with the Nvidia Jetson TX1? 

I agree that I think the ROS is really a great way to go. I’m off to check out more of your links and information. Thank you so much for the point in the right direction. 

 

:slight_smile:
Hey that’s great, no problem at all.
I’m looking forward to seeing what you come up with.

Even if you have only a few bits out together so far, it might be worth making a post for your robot as a ‘work in progress’, sometimes they are the most interesting to follow while they progress, and Im sure lots of LMR members would like to see it (me included)

Yah that would be a cool

Yah that would be a cool idea and then update the thread as I go. I think we’re looking at getting the TK1 or the TX1. Size is somewhat of an issue once you start getting into these bigger boards and for some reason I can’t find the overall  dimension size of the TX1 developer board. I thought it was 7"x7" but now I don’t know where i saw that lol

It really is an amazing time

It really is an amazing time to be into this hobby.  Prices keep coming down, the hardware and sensors keep getting better and cheaper.  You can buy lidar for around a $100 where just a few years ago you couldn’t touch one for less than $1500. 

Encoders would be inexpensive and accurate way to help with odometry combined with lidar and/or machine vision. 

Since you are comfortable with Linux, you will probably like ROS and find it relatively easy to come up to speed on.  I am finding it a challenge but interesting.  The book has a lot of good stuff in it; well worth the money. 

To be honest, I am not sure whether the NUC or the Jetson would be better.  Both are powerful processors and both would more than fit the bill in terms of memory and processing power for what you would want to do.

Regards,

Bill