7

Edit: Nominating for reopen as this definitively falls in under FAQ section "matters that are unique to the programming profession".

I want to program robotics in C#. This question is about existing kits/components to do so. I welcome any pointers on where to start. For example: Is Robotics Studio a good platform for this project?

The use will be a hobby project where I program the robot to drive around in my house and perform maintenance (like getting me a glass of water). I want to put my efforts into object recognition and controlling movement (driving, arms, etc). I do not want to spend time building a robot. This is not a robotics project in that sense, it is a software project.

Are there any human sized robots with .Net SDK (or something I can P/Invoke)?

It does not need to be fully adult human sized as long as it can reach stuff on tables and similar. It also doesn't have to look like a human being.

Tedd Hansen
  • 12,074
  • 14
  • 61
  • 97
  • exactly how does this qualify as a programming question? – Mitch Wheat Mar 27 '11 at 13:30
  • 9
    given your avatar, I'd have thought you be more interested in 'sharks with fricking lasers on their heads!" – Mitch Wheat Mar 27 '11 at 13:33
  • http://www-robotics.cs.umass.edu/Robots/UBot-5 – kenny Mar 27 '11 at 13:39
  • @Mitch Wheat; Just as you would ask for a software component to do software stuff I am asking for a hardware component. The key here is that I want to program a robot. I don't see how that doesn't relate to programming, it is all about programming - just not a mainstream field. – Tedd Hansen Mar 27 '11 at 13:57
  • @kenny; Nice. But doesn't look like I can purchase it. – Tedd Hansen Mar 27 '11 at 14:00
  • 1
    Use a saw. Shorten the table legs, it's a lot cheaper. Human sized robots need lots of safety interlocks so they don't squash you like a bug by accident. There will be accidents. – Hans Passant Mar 27 '11 at 14:19
  • So friggen close to off-topic. This is more about the hardware, except for your saving grace "with .NET SDK." Side note, I'd suggest you check out the [Robotics](http://area51.stackexchange.com/proposals/29987/robotics) proposal at Area51 –  Mar 27 '11 at 15:52
  • So if I understand this "question" correctly. You are asking us to solve problems, that many researchers try to solve last few dozen years with big funding from major companies? Yeah.. – Euphoric Mar 27 '11 at 20:03
  • @Euphoric: Just as you are using a computer which took many researchers many years to solve with big funding from major companies. A couple of wheels with cameras and grabbing arms on is not an overly complex machine, we have been able to make them for many years. As I mention the purpose of this project is for me to program this thing. – Tedd Hansen Mar 27 '11 at 20:58
  • God allot of the people on this site are such grumpy pri**ks... Good question I say. Should be reopened... PS: LIGHTEN UP! – Maxim Gershkovich Mar 28 '11 at 04:30
  • @Maxim Gershkovich: I totally agree. I'm amazed how how dismissive people are. I'm wondering how much it would hurt them to leave the question to be answered. A lot it seems. I **honestly** can't see how this is not related to programming. – Tedd Hansen Mar 28 '11 at 09:35

3 Answers3

7

Very large robots are expensive, powerful (and power-hungry), heavy, and in many cases absurdly complex. Hobby-oriented robotics focus on devices that won't result in injury and/or death when things go wrong.

This is a bit like asking where you can buy a remote-control helicopter at 1:1 scale.

But to get you started, I'd recommend learning to work with embedded devices so that when you build your army of killer robots (as you undoubtedly will), you'll know how to control the motors, lights, sensors, etc. C# and .NET programmability in embedded devices is not a common thing, but lucky for you, a new chip was recently announced that does just that.

Check out the Fez Domino. It's largely compatible with the more popular Arduino platform, but you program it with .NET instead of C -- which is why it's twice as expensive. Much of the necessary work for controlling motors, lights, sensors, etc., with such a device has already been done for the Arduino platform, and that should largely translate over to the Fez Domino. Though, of course, you'll have to re-write the code in C#.

Even if you want to control your legion of death-bots via full-power computers, you'll often use a micro-controller like these to handle the IO with external devices, since they're better at that sort of thing, and you can communicate with them with simple computer-friendly protocols, like serial over USB.

tylerl
  • 30,197
  • 13
  • 80
  • 113
1

Start small! As tylerl suggested, the Fez Domino looks like a great board to do some microprocessor work in C#.

Start out doing some smaller projects (if you haven't already). Perhaps build a line following robot using a Netduino or similar. There are countless kits out there, or you can just build your own pretty easily.

Once you've gotten that going, maybe graduate to doing some basic vision processing with a more powerful board (Fez Cobra, etc) or just strap a laptop to a bigger bot (this has a lot of advantages such as great processing power, being able to use the full blown .NET framework instead of just the Micro framework, you can use off the shelf components like web cams, etc).

If you want to become proficient at any kind of development with robotics, you would benefit from some knowledge of electronics. These small projects can help you build that up.

RQDQ
  • 15,461
  • 2
  • 32
  • 59
  • 1
    Thanks. :) I've got like 20+ years of programming and logic and electronics and all that geeky stuff behind me. I don't want to start small. I'm ok with the fact that this robot could cost more than Lego Mindstorm. The evolution of electronics is often through abstraction. I want to work on object recognition (CPU intensive), 3D space and manipulating the world. I don't want to make simple logic circuits like "if proximity sensor 2 is less than 10 execute method turn 90 degrees". – Tedd Hansen Mar 31 '11 at 08:36
1

You can use Bioloid (http://www.robotis-shop-en.com), some robocup teams use them to participate in humanoid soccer league. It's a very good platform (good materials and is easy to change or add components)

Other platform is NAO (http://www.aldebaran-robotics.com/) is used in Robocup standard platform league. In my opinion is very expensive for a hoby. In a closed platform it means that is very dificult to change/add components.

http://wiki.robocup.org/wiki/Humanoid_League in this humanoid robocup page you could find humanoid TDPs (team description papers), that provide very usefull information.