i want to learn about robotic and i have no idea where to start. problem is that my college dont have any robotic class. so i have to learn every thing on my own. goal is to build and program a robot.

should i start learning about hardware or software? even with software i guess there are in many different languages.

would i have to buy hardware parts? or a kit? is it cheap? any idea of good kits? and would i have to buy any software too? any there any good tutorial on youtube? sorry for a lot of question. any advice you give me will be helpful.

i want to software in java or c just become i already how who to use it. also i dont want to program kids looking robot like legos etc.. i want to program a robot that i can show other people. i am sure some legos robots are not for kids but my family and friends dont understand software or computers so they probably would laugh it me for it.

Recommended Answers

All 5 Replies

In the book "Desingning Embedded Systems with PIC(R) Microcontrollers" there is a complete discription of a robot called Derbot AGV. A google <ould help you further. Success!

At my school they made a robot for the 'VEX' competition - It cost them alot. (£1000) alot. They also programmed it in robot C - It was made to pick up bean bags and put them in certain places.

I would begin by buying a microcontroller such as an Arduino, they start at about £20 and the IDE can be downloaded from their website along with the various documents and information you would need.

Once you have that, begin by doing simple tasks and work your way up to motors. Once you know how to use motors with it you are underway to build an advanced robot! The language required to program the controllers is either C or C++ and once you've finished you can save the project, reset the board and then upload a new program (so it is multifunctional).

As I say, once you have motors done there is no reason why you can't simply duplicate it and modify it around the basics to build an advanced robot that has multiple functions.
In terms of other hardware, then you obviously are going to need your various electronic pieces such as resistors and the various components. You said you don't want to use Lego, however I would suggest you begin building a prototype out of it. It is very useful stuff just to get the look and make sure everything works. Once you know it functions as it should, begin moving onto either wood, plastic or metal depending on what tools you have available.

should i start learning about hardware or software?

You take on a project and you learn what you have to. In robotics, it's pretty much inevitable to have to have a well-rounded set of skills. Each piece of hardware (sensors, motors, servos, controllers, batteries, etc.) have their quirks, which you learn about as you gain experience with them. And you can't get anything done without having to write software. One of the most critical parts to understand is what is between hardware and software, that is, the "ports" and their associated electronics. If there is something that you need to do some research on before buying hardware or preparing to write software, it is getting to know all the different protocols / connectors / ports that are used by different peripherals (hardware) and provided by different micro-controller chips. Things that you should know like your back pocket are things like TTL, RS-232, JTAG, I2C, PWM, servo-PWM, CAN / OpenCAN, SMB, etc... Otherwise you might buy the wrong things and have lots of trouble making it work, or worse, end up burning things up. Good knowledge of basic electronics and circuits is also essential. Basic things like why you cannot power a servo-motor from a USB connection, or why you cannot put a magnetic sensor near a DC-motor, or why you need separate circuits for analog and digital sensors (and how to isolate the circuits).

would i have to buy hardware parts? or a kit?

Buy it? As opposed to.... stealing it? Of course you will have to buy some hardware (and micro-controllers / micro-PCs). Kits can be good, mostly because they sort of guarantee "compatible" components (i.e., connectors / protocols that can be used with the micro-controller). The problem with kits is that they are not always as fun to work with in terms for learning things, i.e., kind of like Ikea furniture, you put it together as the instructions say, and then the fun is over since you can't really do much else with it. It depends what you're interested in. If you like software more, you can buy a hardware kit will "enough stuff" in it to be able to have fun programming it to do different things. But one thing's for sure, kits generally won't teach you how to "build robots". For that, you need to buy individual parts, down to individual capacitors / resistors / ICs, design your own PCBs, solder stuff until your eyes hurt or you get dizzy from the fumes, burn through some hardware along the way, and write your own software from the ground up. Kits are made to circumvent all that trouble, which is good or bad, depending on what you want to learn how to do.

is it cheap?

That really depends on the level your working at. There are roughly three levels: hobby, amateur and professional. Hobby robotics is like those little kits you can buy. These generally involve some simple micro-controllers, like PICs or Arduinos, that aren't very powerful (speed and memory) and generally have limited connectivity (ports) (usually, a couple of TTL / RS-232 ports, a JTAG, an I2C port, and a handful of GPIOs). They don't run any operating system but come with a fairly user-friendly IDE, some basic software libraries (to drive the ports), and are programmed in C. While hobby hardware (sensors, motors, etc.) are generally "plug-and-play" for the most part, and don't require much soldering or any other electronics work (i.e., you just need to plug the right components together). This makes hobby-level kits easy to use and have a wider market, meaning, they are cheaper to buy, but, of course, you're limited in what you can do. Generally, at the hobby level, you can put together a simple wheeled robot or a small manipulator (arm) with a few servos / motors, some basic sensors (IRs, webcam, etc.), and a arduino-style micro-controller for maybe 200-300 dollars.

Amateur robotics is more at the level of what college student design teams might build, e.g., as part of an engineering competition or project of some kind, or most of the university research robots that are built from the ground up. I've built a few of those myself. This generally involves buying your own electronics components, designing and manufacturing your own PCBs, buying proper DC motors and controllers (and possibly creating your own controllers), and special sensors and actuators depending the application. Often, at this level, you opt for more powerful micro-controllers or micro-PCs, which generally end up running an operating system (like a bare-bone Linux distribution, or QNX, or FreeRTOS) and offer a lot more power and capabilities (including the convenience of plugging into them through LAN or wireless). This often involves secondary programmable logic too (smaller micro-controllers) to run certain parts of the system. This kind of a project can cost anywhere between a few thousand dollars to a few tens of thousands of dollars (my first project ended up around 30k$, the second around 20k$). The reason for the increased cost is mostly because (1) programmable logic is more powerful and capable, (2) sensors and actuators are higher quality (higher precision, or higher strength, etc.), and (3) because the electronic components are reliable. Hobby-level electronic components are shit in general, they break, they melt, they fall apart, they only very approximately work according to specs, they have no safety margins on their specs (e.g., if it says that the chip can take at most 5 A, it means that it will evaporate if 5 A go through it, while in professional hardware if it says maximum 5 A, it means that at 5 A there is a 1% chance of some overheating), etc., not the kind of thing you want on a serious project. Professional hardware is safer, more reliable, more accurate, more durable, etc.. and all that comes at a price.

Then, there is professional robotics. These are the industrial robots and other robots that are sold by companies. These are kind of the same as amateur robots except that everything has a lot more R&D behind it, and has a lot more carefully-selected, custom-made, industrial-grade hardware in it. In this arena, basic "simple" protocols like I2C / TTL / servo-PWM are pretty much non-existent, it's all CAN / OpenCAN buses everywhere. And things like industrial robots (manipulators) are typically controlled by custom-made computers (often with analog computing modules) and can vary from being the size of an average desktop PC to being the size of a refridgerator. And now, of course, we're talking 100k$ at the minimum, although recently a few players in the market are starting to push things down even as low as 30k$ or so (for industrial-grade manipulators roughly the size of a (big) human arm).

and would i have to buy any software too?

No. The robotics community is pretty big on open-source stuff, in general. Mostly because the community is made up of academics, other publicly-funded organizations (e.g., NASA), and startups / academic-spin-offs that need to work with those two groups.

Hobby-level robotics involves free tools for working with the chips. Amateur-level robotics involves larger (mostly open-source) libraries and tools, like ROS, MaCI, CLARAty, OpenCV, etc. And professional robotics is all proprietary stuff, and they, of course, provide all necessary software support for their clients (e.g., users of industrial robots).

i want to software in java or c just become i already how who to use it.

The name of the game in robotics is pretty much C and C++. I am not aware of any serious real-life robotics work being done in Java. At hobby-level, it's mostly C because the micro-controllers can't really handle much more than that (or the kind of things you can code on them don't require anything more "advanced" than C), or, some hobby kits, will work on some "child-friendly" language (often graphical languages) but that's not really my cup of tea. Amateur / academic robotics is mostly in C++ (with a lot of C as well, for drivers and stuff like that), and Python at the higher level. And at the industrial level, well, there are a few "old-school" languages and platforms, mostly inherited from computer-numerically-controlled manufacturing (CNC) and similar traditional industrial protocols and languages. In other words, if you see some cool robots doing some cool stuff on a youtube video, chances are, it's mostly running C++ code.

also i dont want to program kids looking robot like legos etc..

Then I would say, just go with a not-too-childish hobby robot kit, and make sure you can have some freedom with it (freedom to add hardware, and freedom to code anything you want, not just what the kit-vendor intended you to do with it). And I would say, prefer a good micro-controller / micro-PC because working with a bad one is not very fun and also very limiting, and you can always re-purpose a good micro-controller to do anything else with it (after you get bored with the robot you're working with). For example, there are lots of Intel Atom boards now in the 100-200$ range and are essentially like a full-blown computer on a small 6" x 6" board (that's what a micro-PC is), it's small enough and powerful enough to run almost any kind of robot with (we use that on a few robots around here, it's very convenient).

You said you don't want to use Lego, however I would suggest you begin building a prototype out of it. It is very useful stuff just to get the look and make sure everything works. Once you know it functions as it should, begin moving onto either wood, plastic or metal depending on what tools you have available.

That's good advice. Things like legos or "mechanos" might look childish but what they are is a versatile system for building a prototype. That's perfect for that "phase". Afterwards, AHarrisGuy recommends "wood, plastic or metal", I highly prefer metal if you have at least some tools to work with it. Plastic is OK too. I hate wood (heavy, clumsy, dirty, and always looks like shit at the end).

im just a begginer and yet i'm not a student in any university reading book's only that i have downloaded it from the internet ....

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.