First let me start off by saying this is my opinion and views, some may disagree, but I wanted to voice a few topics of discussions we've had lately and share my view on them in more than a single shout post. With that said, please read it all and think about it for a while.
SBC's:
Single Board Computers, like the raspberry pi, beaglebone, UDOO, Odroid, etc are a perfect platform. As of today, the Odroid-U3 is the highest performance SBC readily available. I'm not going to go into specs, that's what google is for. What I will say, is why this approach needs to be embraced and honestly, support for windows should be dropped completely. I will hereafter refer to the Odroid as SBC for generalization purposes.
SBC's serve a critical role in the physical as well as logical design of a humanoid like robot. For starters, SBC's have dramatically lower power requirements, most, if not all, require only 5V/2A supplies. When looking at a mobile platform that needs to be untethered from an outlet, low power consumption becomes the first priority. The less power you require, the longer you can run on batteries, very simple equation.
The next important reason is the operating system, ALL of these SBC’s run on some variation of Linux. Again, avoiding a thesis here, Linux takes less resources, and has much better handling of memory and resources as well as taking significantly less space on a drive when compared to windows. Lastly, Linux is an open platform on which we can and will eventually have to code our own drivers for certain functions, try doing this on windows, VERY expensive and VERY difficult.
Linux’s file structure is also a great point of consideration, something as simple as /mrl can be the root directory for all things MRL, and setting up symbolic links to /home/photos or similar is an extremely easy task.
FPGA vs AVR & ARM:
This is a sore topic with a few folks, but in order to define the future, you have to be willing to embrace change, even if it’s more difficult. As many of you are aware, I am designing a custom board called the ACU, which is FPGA based. I felt this was necessary as arduinos are only 8 bit, and have limited IO, as well as limited RAM and processing power. ARM processors are faster, and some have more IO, but again, you are using a “hobbyist” board. FPGA’s are chips, meant for the purpose of custom designs and applications. With an FPGA build like the ACU will be, there is no need for PWM drivers, ADC drivers, Logic converters, etc. The FPGA can be coded to perform all of these functions. As a reference, the FPGA I’m using has over 150 available IO pins (which can be analog, digital, PWM, input, output, or even multiple function)…..show me ANY board that has that on it’s own.
I know a lot of you have mentioned price as a concern here, but I would like to point out, the future is never cheap, so if you can’t afford it now, don’t give up, just save and buy it later. Look at televisions, 10 years ago a flat screen would set you back over $1,000, now you can get them for under $100. I will do everything I can to keep the costs low, but I can’t promise them to be as cheap as an arduino, that’s impossible. Please consider and keep in mind what you are buying: An emerging design built to expand and grow WITH this community. In my view, using an arduino is the opposite: This community using what’s available on the shelf.
I hope no one takes this personal, but I don’t want to lower myself or our potential by using grade school science hardware. I want to dream bigger, and I’m throwing my available money, time, and skills at developing the hardware to make this dream come true.
Robot Servos vs. RC Servos:
Again, I know a few of you will not like this, but I’m saying it anyways. RC servos are great…for RC projects. While I appreciate the efforts of both the inmoov and MRL community, I think this is wrong. Yes, they work, and yes, they’re cheap, but they are not meant for robots. Visit any college with a robotics program, you will rarely see RC servos being used for more than camera pan/tilt mounts. For my ACU design, I am building the PCB to support Dynamixel Smart Servos. For those that haven’t heard of these, or want a more detailed reason, I have elaborated in my ACU post.
In short, dynamixel servos are serial controlled (not PWM) and offer MANY services that you just can’t get with RC servos. Things like servo load, temperature, and positional feedback, as well as an average work range of 300 degrees. My personal build uses a variety of AX-12A, AX-18A, and MX-28T servos, ranging from $45 to $220 a piece. Yes, I know they are expensive, but look at what you are getting.
These servos are made for robotics, they have higher torque, faster speed, and faster response times. You wouldn’t drop a volvo engine in a ferrari would you? Why put an RC servo in a humanoid robot then?
Other technical projects:
This section is going to be mostly a bringing to light of various other open and closed source projects. First up, the Pixy and OpenMV camera’s. The Pixy is the latest build of the CMUCam which is pretty badass. OpenMV is a miniaturized version of the pixy, and open source/crowd funded. Both of these cameras take on the processing of OpenCV on board and provide data out to the SBC. They are capable of image recognition and tracking at incredible rates and accuracy. Check out the website for each to get more detail. I would highly suggest picking one or both of these up as something for MRL to integrate. You can still use a webcam in one of the eyes for image capture and video recording.
While not applicable to linux based SBC’s, which I want to exclusively promote, I want to bring up Mako. Mako is a windows attempt at artificial intelligence and from what i hear, not doing so well. But, at least they have something. We need someone to spearhead getting a similar program built on linux and integrated with MRL. Simple tasks like building tables of relationships, contacts, photos, etc; would be some of the first things I can think of benefiting from. Imagine walking up to Inmoov with a friend and getting your face scanned and hearing “Hello John and Dave, it’s a nice day isn’t it? Are you going out for your birthday tonight?"
Closing Remarks:
Now that I have offended and cast out most of the community, I want to defend my standing and call for support. Only when the majority of these two communities embrace change will change happen. The more of you that buy SBC’s and move away from windows, the faster we can have a user ready linux interface. The more of you willing to learn new programming languages, and are willing to step away from arduino’s, the faster we can have an ACU that is the “motherboard” of robotics. Lastly, the more of you willing to sacrifice a little more money, or save up for longer, and buy smart servos, the more chance we have of building a superior platform that can have tolerances closer to the human body. Both communities have gained respect in the maker field, now it’s time to excel, and emerge as front runners to the crowd-built humanoids. An old adage comes to mind with all of this "Many hands make light work”. Let’s all work together and change the future of robotics!
Samuel
Maker, Hacker, Geek
Hi cyber! I really like your
Hi cyber!
I really like your opinion. But I am noob to programming/arduino/MRL just startet 2 weeks ago to build the right inmoov arm. It´s a great project and a challenge. As I want to build more than just one arm I have started to get all kinds of information. Would this be much more complicated or more or less the same?
Because I really like these dynamixel servos. Which model do you plan to use in which place? As the prices are very different.
thank you
Mastablasta, welcome to the community and thank you. As a price reference, I am testing my FPGA designs with a DE0-nano, which is $59 for students, $79 for everyone else, direct from terasic. I'll edit this reply when i get home and will upload the BOM I'm using for dynamixels. NOTE: we do not currently have published STL files for these servos. I did find the two for the neck on thingiverse, but for the arms and shoulders, we're on our own until others jump on board and support this movement.
here's the neck dynamixel mod:
http://www.thingiverse.com/thing:65421
it's for AX-12's, but I'm using AX-18's here (both are the same size)
BOM for dynamixels:
Thanks for the clear info
Very interesting stuff going on here, I like it! So far I was only putting multirotors together but this here is a different story. Well, I have started and want to keep on going.
Quiet a difference if you add up the costs of all these nice servos but this would be a great challenge.
I should have my new servos at the weekend and want to get the right arm working correct. If everything turns out fine I will try these dynamixels later. Need to get more knowledge first.
sounds good
thank you, I know it was long, but I am very passionate about robotics, so I wanted to voice myself and try to uplift teh community a bit. I would recommend getting 2 of the AX-18 or AX12 and printing the neck parts as a starter if interested, they are the cheaper servos from dynamixel and would be a good starting point for those wanting to learn and experience first hand why they are better.
Step by step
Absolutely right, robotics is a fascinating subject. Since I am a child I love robots and now that the hardware and software is available for a descent price (more or less) I would like to make at least a part of that dream come true. I was happy to the see the fingers moving in arduino/MRL and I was even able to change and add some simple things to the script. The programming part is the biggest challenge for me...and my patience!
When it comes to the neck I will consider the suggested servos. I want to get the hand working (voice control), the biceps will be printed tomorrow.
Making 3d objects is also a new matter to me. I am using sketchup so far and the results are pretty nice. Another challenge to make the required stl files.
Again, thanks a lot, I really feel welcome in here!
Post new comment