Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

Building a robot for home automation


  • Please log in to reply
12 replies to this topic

#1 harleydk

harleydk

    New Member

  • Members
  • Pip
  • 7 posts

Posted 20 January 2012 - 08:37 AM

Hello everyone, and thanks for studying this note. I'm entirely new in the world of micro-controllers. Yet with a bit of time on my hands after an extended period of a heavy work-load, I feel the desire to do something completely different than what I do now, though still utilizing my coding skills. I have in mind to building a robot for home automation services. A kind of butler, if you like, is the ultimate goal. A very big project, but of course I'll be starting out slowly. Yet I feel the need to first and foremost get some input from you in regards to the hardware specifications, as I'd much rather prefer to go all-in on the hardware from the beginning, rather than go with the minimum requirements and later discover that some required component or the other doesn't fit within the hardware specifications I've initially based the project on. The robot will ultimately be able to do the following: - receive voice input from various people, parse this input and perform actions based according to them (such as turning off lights, changing a television channel, reading out the weather report) - record and store continuous video (a low framerate and resolution is acceptable) and audio - control home automation via ZigBee - move through the home/location in a self-independent manner I have a few ideas on how to achieve this, but my lack of experience in micro-controlling has me questioning the setup, and I could really do with some advice. The functionality is relatively easy to implement via 3rd party software components (as I would like to think of myself as a relatively experienced C# developer), but the unknown to me is which parts to put together. It will require a lot of i/o bandwidth, methinks - is this something such as the Netduino will be able to handle? I figure I could go two different ways about it, namely a) have the Netduino or another suitable board relegate the input from the video and audio sensors to a server via wifi, and handle the processing there, or B) hook up a CPU, such as for example the fit-PC2 Diskless or the ASUS AT3IONT-I DELUX or similar, within the robot itself to handle processing 'locally'. But will the Netduino support the i/o requirement, the volume of data - can anyone recommend an appropriate wifi-module to use with the netduino? Maybe a different micro-controller is required for the described functionality? In regards to the movement I'm thinking about building the robot in LEGO NXT-parts, due to my childhood love of the LEGO bricks. I would love to learn of your comments to the above. Just starting out with micro-processors is very exciting to me, and I would love to hear of your recommendations as to which components you would deem suitable for the project. Thanks a lot in advance, hope you'll all have a terrific weekend. Morten

#2 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 23 January 2012 - 01:03 PM

Hi Morten,

I too was a Lego fan (many years ago).
I bought my son a Mindstorms set a few years ago, and can say that the Lego NXT parts are very nice to play with.

Looking around (including on this forum) there are others trying to interface to NXT components, and it looks like it is not a trivial task. There seem to be issues around the I2C interface not meeting the usual standards.

From what you said, and the fact you propose using Lego, I assume that you are building a small wheeled robot. If this is the case, you might be better off buying a robot base kit - something that includes the wheels, motors, gearboxes and chassis. It will probably be easier to work with (and possibly cheaper than Lego too). There are lots to chose from. I am currently playing with a 3 wheeler using two geared DC motors, and some infra-red distance sensors. Not much to report yet as I think am having issues with the sensors.

Paul

#3 Christoc

Christoc

    Advanced Member

  • Members
  • PipPipPip
  • 127 posts
  • LocationBallwin, MO

Posted 26 January 2012 - 04:25 AM

If I were building such a robot, I would personally try starting with something like http://www.turtlebot.com/ That being said, I totally support trying to do it with a netduino! But I imagine using a kinect/laptop would be a hell of a lot easier to manage from a resource perspective.

View my blog at ChrisHammond.com

Projects: Netduino Tank/Tracked Vehicle, DNNFoos, Random other bits


#4 harleydk

harleydk

    New Member

  • Members
  • Pip
  • 7 posts

Posted 29 January 2012 - 12:50 PM

If I were building such a robot, I would personally try starting with something like

http://www.turtlebot.com/

That being said, I totally support trying to do it with a netduino! But I imagine using a kinect/laptop would be a hell of a lot easier to manage from a resource perspective.



Hi Morten,

I too was a Lego fan (many years ago).
I bought my son a Mindstorms set a few years ago, and can say that the Lego NXT parts are very nice to play with.

Paul



Hello, and thanks for your input, both. You're indeed right, Paul, it's a small-wheeled robot project. The turtle-bot seems nice, and it would, as you mention Chris, be a heck of a lot easier to program, yet I have a vision of doing a more human-like, for lack of better ways to describe it, robot, with cameras for eyes and a microphone for a nose, for example, to further invite the concept of a helping hand into my household, for the robot to gain wife-acceptance and, well, I feel the desire to learn a lot more about micro-controlling and electronics in general. I wouldn't feel I've accomplished this if a robot had to carry its own laptop around - but thanks for the link, Chris, it's just what a friend of mine is looking for!

I must confess I'm looking to the fez spider gadgeteer-board and its components for fast and easy prototyping. I'm a software-engineer, used to thinking in blocks of code, and so the outline of the gadgeteer project and the available products seems appealing. Also I'm concerned about the Netduino being too small for this kind of project (as you hinted, Chris). One of the requirements for the robot is to record and stream video and audio (for home security and voice command recognition, respectively; as far as the Netduino is concerned I was thinking about streaming directly to a back-end server for processing there, but I'm not sure the netduino would be able to do this fast enough. Also it seems to be quite easy to control the Lego NXT kit through the NETMF.

The ultimate aim is to build a modular software, where the services the robot will provide are completely voice activated, including home automation, weather reporting, basic home security, having the robot take notes and send messages to your contacts (via sms or through facebook, for example), scan the bar-codes on purchased foods and determine when the food is getting old and should be eaten before the expiry date, remind one on one's calendar reminders, and so on and so forth. A big project, but why start out small-scale :-)

#5 yandreev3

yandreev3

    New Member

  • Members
  • Pip
  • 4 posts

Posted 01 February 2012 - 05:55 AM

- control home automation via ZigBee


Just a personal opinion, but i would recommend these RF Transmitters and Receivers:
Transmitters - 315MHZ Receivers - 315MHZ
434MHZ 434MHZ

I would recommend these because one pair costs 3 times less than 1 xbee. Then with a couple more lines of code, you can use the same frequency for all your devices but with a special "password" so that only the intended device receives the data and processes it. Then you can buy arduino chips, relays, transistors, and small project enclosures which you can plug in wherever there is a device you want to control and have a reciever inside of it which turns the relay on or off depending on the command you send. One of these "control units" would cost less than 1 xbee. This is what I would do.

The turtle-bot seems nice, and it would, as you mention Chris, be a heck of a lot easier to program, yet I have a vision of doing a more human-like, for lack of better ways to describe it, robot, with cameras for eyes and a microphone for a nose, for example, to further invite the concept of a helping hand into my household, for the robot to gain wife-acceptance and, well, I feel the desire to learn a lot more about micro-controlling and electronics in general.


If you can build a frame/body for an android bot go for it. In my eyes it will be easier to code it than create it. I imagine it will look something like this but larger and a smoother walking ability so as not to wobble like a drunk penguin. If you do decide to create it, try using powerful servos to move the "joints." Software wise, one can create a library that all you have to write in your code is ie: leftarm(extend); I think that this will be an amazing project and if you have the budget/time, go for it.

Ill add more to my reply with ideas if you want my input.
Go ahead. Ask me anything. I'll answer it.

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
- Douglas Adams -

"An engineer is someone who is good with figures, but doesn't have the personality of an accountant."
- An Arts graduate's view of engineers-

#6 harleydk

harleydk

    New Member

  • Members
  • Pip
  • 7 posts

Posted 03 February 2012 - 11:32 PM

Ill add more to my reply with ideas if you want my input.


Hello,

thanks a lot for taking the time to share your thoughts, especially your excellent recommendations - I highly appreciate it! I've begun to outline the process of modeling the hardware and software, I'll be certain to let you know when I have something on paper, so to speak.

Thanks again,

Morten

#7 yandreev3

yandreev3

    New Member

  • Members
  • Pip
  • 4 posts

Posted 04 February 2012 - 05:09 AM

Hello,

thanks a lot for taking the time to share your thoughts, especially your excellent recommendations - I highly appreciate it! I've begun to outline the process of modeling the hardware and software, I'll be certain to let you know when I have something on paper, so to speak.

Thanks again,

Morten

Yeah no problem I love to have my voice heard.Posted Image Speaking of that, have you thought about adding voice communications to your robot? For example a text-to-speech module for audio feedback from your robot and a voice recognition module so your robot can understand what you want and you can communicate with it using words. If you decide to do this check these out: text-to-speech Voice recognition

Just a question, but what is your intended budget for this project?


If you're going to make it look like a human, i recommend basing your hands on something like this unless you want your robot to be able to pick up desks or carsPosted Image(pretty cool if it could). You could replace the glove part of the project with a piece of code to control the fingers.


Something that would be hella amazing would be if you created a wax "skin" to give it a human-like appearance.


Finally, I'm not much of a software person(i can get my code working but i cant do anything fancy), but when it comes to hardware i am confident to say that i know basically everything about it so if you have any questions or need advice, shoot me an email or just ask here on the forum.


Oh ya and by the way if you're why should i take advice or even listen to some 14 year old idiot, i build robotS over weekends when i get bored. I am currently working on a R/C helicopter equipped with gps navigation, autonomous flight, crash prevention, and last-case-scenario anti motor damage, all controlled by a netduino mini inside the heli(programmed by me).
Go ahead. Ask me anything. I'll answer it.

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
- Douglas Adams -

"An engineer is someone who is good with figures, but doesn't have the personality of an accountant."
- An Arts graduate's view of engineers-

#8 harleydk

harleydk

    New Member

  • Members
  • Pip
  • 7 posts

Posted 09 February 2012 - 09:01 PM

you want and you can communicate with it using words. If you decide to do this check these out: text-to-speech Voice recognition


Good input, I did in fact come across that bit when I researched voice recognition - which will definitely be a part of the project! The tricky bit is the fact that I'm here in Denmark and thus, although my English is probably decent enough, the rest of my household will not be happy about not being able to speaking to the fella in their native language... What I'm looking into instead is recording the sounds in the room and either sending it the a backend server for processing, or - preferred - having a CPU process it directly. This will require some heavy CPU load, certainly more than a Netduino will be able to deliever, so I'm still looking at that tiny ASUS-board. I've some experience with some voice processing API, and some of them are even able to distinguish between people, and recognize who is talking - this would open up some whole new ideas for me.

Just a question, but what is your intended budget for this project?


My intended budget is something akin $2-3000.

If you're going to make it look like a human, i recommend basing your hands on something like this unless you want your robot to be able to pick up desks or carsPosted Image(pretty cool if it could). You could replace the glove part of the project with a piece of code to control the fingers. Something that would be hella amazing would be if you created a wax "skin" to give it a human-like appearance.


That would be cool indeed! I must confess, though, that in terms of a humanoid expression I would be contend with what would resemble facial features, i.e. eyes and nose - possible a tiny motor which would control a sort of 'eye-brows' and the turning and tilting of the head. With those basic features it would be possible to convey a great range of emotional states, which would be enough in terms of the robot gaining acceptance into a household. For the rest of the robot I would probably go for a copy of the wall-e robot, in lack of a imagination of my own and well, because the belt-driven approach would enable the thing to move across a range of surface which a common household would offer - past doorframes, up and down thick carpets, and such. Oh, and I would throw a touchscreen in as a belly, so the robot would be able to convey images as a result of commands to it - such as showing a weather forecast upon an enquiry as to tomorrow's weather, or display icons when playing music.

I haven't decided on the parts yet, I'm still down to sketching and contemplating ideas and waiting for Microsoft and others to deliever a PC Kinect version that doesn't resemble the one for the XBOX - which is quiet long and unhandy, I want a smaller version I can take apart and grab the camera, sensors and microphones from - would be my eyes, nose (microphone) and a lot of goodies such as distance measuring and such, and a terrific programming API, all in one.

All that would be quite CPU intensive, I'm aware. What I'm thinking presently is to have a Netduino or Fez unit controlling the robot movements (also the head movements), and have the ASUS tiny-board be in charge of the sensors and CPU intensive work, interfacing with the netduino when necessary.

A simple sketch to illustrate the kind of design I'm thinking of:

Posted Image

Finally, I'm not much of a software person(i can get my code working but i cant do anything fancy), but when it comes to hardware i am confident to say that i know basically everything about it so if you have any questions or need advice, shoot me an email or just ask here on the forum.

Oh ya and by the way if you're why should i take advice or even listen to some 14 year old idiot, i build robotS over weekends when i get bored. I am currently working on a R/C helicopter equipped with gps navigation, autonomous flight, crash prevention, and last-case-scenario anti motor damage, all controlled by a netduino mini inside the heli(programmed by me).


Good stuff! I'm quite the opposite, I know everything there is to know about software but pratically nil about electronics! In fact I just got back from the library with an 'electronics 101'... I'll be sure to ask if I'm stuck, thanks for the offer. I can add that what I'm currently contemplating is how to provide the power for what's gonna be inside. A battery which can power the ASUS and the netduino/Fez and the motors, that's gonna consume a lot of energy. Preferable is of course some kind of battery which can write back how much power is left, so the robot might let us know when it needs to be charged.

#9 harleydk

harleydk

    New Member

  • Members
  • Pip
  • 7 posts

Posted 24 April 2012 - 09:12 PM

The preliminary design. The frame will be put on top of a LynxMotion TriTrack.

The space in between the head and body will be taken up by servos, enabling pan and tilt of the head.

The eyes are two webcams. The cut space in the body is for a touch-screen and a speaker above. There will be arms as well.

Posted Image

#10 harleydk

harleydk

    New Member

  • Members
  • Pip
  • 7 posts

Posted 30 December 2012 - 02:45 PM

Here's the result so far:

 

 
 


#11 NooM

NooM

    Advanced Member

  • Members
  • PipPipPip
  • 490 posts
  • LocationAustria

Posted 30 December 2012 - 03:11 PM

it looks like wall e from the movie :)



#12 Paul Newton

Paul Newton

    Advanced Member

  • Members
  • PipPipPip
  • 724 posts
  • LocationBerkshire, UK

Posted 30 December 2012 - 06:15 PM

Great robot Morten!I'm jealous of your lab.Paul

#13 JerseyTechGuy

JerseyTechGuy

    Advanced Member

  • Members
  • PipPipPip
  • 870 posts

Posted 30 December 2012 - 11:59 PM

I read on Dangerous Prototypes that the robot is running off a Gadgeteer not a Netduino, is this correct? Curious why you chose one over the other?




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.