Learn robotics...

silverscorpion
@silverscorpion-iJKtdQ โ€ข Oct 25, 2024

Hi Ceans,
This thread is due to the requset of some fellow CEans, to teach basic robotics. I'm not an expert in robotics, but i do know something in it, and I've built quite a few of them. I wish to share my experiences in robotics, and also wish it serves as a tutorial for newbies in robotics.

Everybody is welcome to give any suggestions or point out mistakes and correct me. Also, if you know something better than me, then you can teach me. I'll be happy with that. Now, I might not be able to post the articles continuously or on a regular basis., But I'll somehow do it whenever I get time.

Everyone aspiring to build a bot are welcome to try out and feel free to ask questions.
Tutorials will begin soon. Keep your fingers crossed..๐Ÿ˜

Replies

Welcome, guest

Join CrazyEngineers to reply, ask questions, and participate in conversations.

CrazyEngineers powered by Jatra Community Platform

  • Kaustubh Katdare

    @thebigk • Apr 2, 2009

    Man! This was needed! Please do make sure you start a new thread for each tutorial.

    Great initiative!

  • ms_cs

    @ms-cs-Ab8svl • Apr 2, 2009

    ๐Ÿ˜...Nice...Start it soon silverscorpion

  • shalini_goel14

    @shalini-goel14-ASmC2J • Apr 2, 2009

    Good thread Scorpion. ๐Ÿ˜
    Well I will just like to know how in actual this robot kind of stuff is made ๐Ÿ˜•

  • Black_Rose

    @black-rose-OYtC6o • Apr 2, 2009

    Hey sounds good look forward to reading this thread *goes to subscribe*

  • sauravgoswami

    @sauravgoswami-UAfTlI • Apr 3, 2009

    nice initiative,a request, we hope your tutotials will be better than those coaching classes!!!

  • scorpionmaks

    @scorpionmaks-rnZBIQ • Apr 3, 2009

    Good initiative ! sounds interesting...

  • vinod12345madhu

    @vinod12345madhu-FwUje1 • Apr 3, 2009

    this will be a very useful website scorpion....

  • vinod12345madhu

    @vinod12345madhu-FwUje1 • Apr 3, 2009

    i am very much intreasted in robotics... please start from the basic tutorials
    thanks

  • hinduja.prasad

    @hindujaprasad-OxDtiD • Apr 4, 2009

    yeah please.........start soon that's a great idea..........i request you to start from line folower robots.๐Ÿ˜Ž

  • Harshad Italiya

    @harshad-ukH5ww • Apr 4, 2009

    Nice Initiative Scorpian!!

    Cheers

    Godfather

  • silverscorpion

    @silverscorpion-iJKtdQ • Apr 4, 2009

    Well, here we go. I start by providing a basic idea of a robot and it's
    intricacies. I don't wish to go to technical details in the first tutorial.


    1. A robot may not injure a human being or, through inaction, allow a human being to come to harm.
    2. A robot must obey orders given to it by human beings, except where such orders would conflict with the First Law.
    3. A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.


    Well, no points for guessing what the above statements are. And for those
    who can't identify what these are, I seriously suggest you start reading
    Isaac Asimov books. Or at least watch more sci-fi movies.

    Moving on, let's first know what is a robot. If I was asked to define a
    robot, I would say that it can't be defined. A robot can have wheels. Or it
    can have legs! Even better, it may be stationary also. And, it may be
    autonomous, taking decisions and working on it's own. Or, it may be
    manually controlled using a remote. So, you see, a robot can be anything
    and can do anything. There's no strict or loose definition for a robot, as far
    as I know.


    So, I'd start by defining at least the types of robots.

    1) Classified based on the level of complexity and professionalism involved,
    I will classify robots into two-namely, hobby robots and industrial
    robots
    .

    Hobby robots - I couldn't get a better name for the category - are done
    as a hobby by enthusiasts, for pleasure or for some competitions or
    projects. They are not reliable.

    Industrial robots are used in the industry for automation, like for welding
    or painting or other tedious tasks requiring precision and reliability. They
    employ complex control systems to ensure the robot is reliable, ie, it doesnt
    fail for any change in the environment.
    I haven't yet ventured into industrial robots and so, we'll be concentrating
    on simple robots here.

    2) Based on the control mechanism, I'd classify robots into three-
    autonomous, semi-autonomous and manual.

    Manual robots are controlled by humans, by remote wireless control or by
    a computer, may be.

    Autonomous robot are controlled by micro processors, without human
    intervention.

    Now, semi-autonomous robots are controlled by a computer software.
    As an example, I can cite a robot that's controlled by the computer by the
    use of MATLAB or Visual Basic or some similar software. Ideally, these are
    same as autonomous robots, but I'd like to have an extra classification.


    Now, there's a separate category of robots called BEAM robots or solar
    bots. Although all the bots mentioned above can use solar energy, BEAM
    robots are markedly different. I'll explain about BEAM later. Now, just know
    that they are just another separate category of robots and the field of
    BEAM robotics is as deep and matured as any other mainstream engineering
    field.

    I'd like to go on and on, but I guess the post will be too long then, and
    you'd lose patience. So, I stop here for my first class, and I'll continue
    soon.

    Hope you all like this. Continue your support for this. And do ask any
    questions regarding today's class.

    And lastly, the three statements in the beginning of the lecture are the
    three laws of robotics, introduced in the book, I Robot by Isaac Asimov.

  • ms_cs

    @ms-cs-Ab8svl • Apr 4, 2009

    ๐Ÿ˜ŽVery Nice...

    Is it possible to have a manual robots or semi autonomous robots which can be controlled by computer using java ??

    Which are the computer languages are used to program the robot?

  • silverscorpion

    @silverscorpion-iJKtdQ • Apr 4, 2009

    Manual robots do not need programming languages to control them.

    And as for semi autonomous robots, yes, you can control them using Java. In fact, almost any programming language can be used to do that.
    All you need to do is connect your robot to the computer by some means, which would obviously be through some ports. LIke USB port or parallel port, or your RS232. And then, the next step is to send signals to the port through some programming languages.
    If you can send and receive signals from a port, you can interface your bot with that port.

  • silverscorpion

    @silverscorpion-iJKtdQ • Apr 4, 2009

    And I'd also mention that, the most commonly used languages are C and MATLAB. I've also seen some bots controlled by Visual Basic and rarely, C++ too. I'm yet to see a bot programmed using JAVA. I dont know why it's not used, but I'm sure that Java can also be used in much the same way.

    The reason for C and VB being used largely, is that DLL files for controlling parallel ports and serial ports readily exist in the internet, and you can easily interface.
    Matlab is used for it's extensive image processing capability. Image processing based robots will be easy to build using matlab than by any other languages.

    Also, of the ports I've mentioned, parallel port is obviously the easiest to work with, and next comes the serial port or the RS232. USB is the hardest. It's not at all easy to interface anything with a USB port, by ourselves. So, it's better to start of woth parallel port, which is what we will bw doing.

    Hope I cleared your doubts. Cheers!!

  • ananth22290

    @ananth22290-baGv6U • Apr 4, 2009

    Wow that was really useful!!!!!!
    Awaiting ur next tutorial

  • Kaustubh Katdare

    @thebigk • Apr 4, 2009

    New tutorials into new threads, please ๐Ÿ˜€

  • ms_cs

    @ms-cs-Ab8svl • Apr 4, 2009

    silverscorpionAnd I'd also mention that, the most commonly used languages are C and MATLAB. I've also seen some bots controlled by Visual Basic and rarely, C++ too. I'm yet to see a bot programmed using JAVA. I dont know why it's not used, but I'm sure that Java can also be used in much the same way.

    The reason for C and VB being used largely, is that DLL files for controlling parallel ports and serial ports readily exist in the internet, and you can easily interface.
    Matlab is used for it's extensive image processing capability. Image processing based robots will be easy to build using matlab than by any other languages.

    Also, of the ports I've mentioned, parallel port is obviously the easiest to work with, and next comes the serial port or the RS232. USB is the hardest. It's not at all easy to interface anything with a USB port, by ourselves. So, it's better to start of woth parallel port, which is what we will bw doing.

    Hope I cleared your doubts. Cheers!!

    Thank you..My doubts are cleared:smile:

  • sarveshgupta

    @sarveshgupta-txtmu5 • Apr 5, 2009

    silverscorpionManual robots do not need programming languages to control them.

    And as for semi autonomous robots, yes, you can control them using Java. In fact, almost any programming language can be used to do that.
    All you need to do is connect your robot to the computer by some means, which would obviously be through some ports. LIke USB port or parallel port, or your RS232. And then, the next step is to send signals to the port through some programming languages.
    If you can send and receive signals from a port, you can interface your bot with that port.

    can you explain a little more about the ports..?๐Ÿ˜ฒ

  • silverscorpion

    @silverscorpion-iJKtdQ • Apr 5, 2009

    You mean the paralle ports and RS232? What do you want to explain? Be clear in your
    query.

    And if you wanna know about port interfacing, you'll have to wait till we get there in
    our tutorial. But you can check the forum for the same.

    I remember, xheavenlyx has written an excellent tutorial about parallel port interfacing.
    Search for that in the forums.

  • Harshad Italiya

    @harshad-ukH5ww • Apr 5, 2009

    Awesome Work There SS.

  • shalini_goel14

    @shalini-goel14-ASmC2J • Apr 5, 2009

    Hey Scorpion

    Few questions from my side:

    1. Have you ever made any robot using Java.
    2 Can we try one using Java during this tutorial class itself?
    3. Can you clear the difference between autonomous and semi autonomous robots?
    4. What do these ports do? Do we need these ports thing in autonomous kind of robots also?
    5. Do Autonomous robots require programming?

    Thanks

  • silverscorpion

    @silverscorpion-iJKtdQ • Apr 6, 2009

    ok, a volley of questions.. I like that..

    Answering one by one,,,

    1) No. I've never made a bot using Java. The languages I've used so far are C and MATLAB.

    2) Well, I feel there's nothing special to 'try' using Java. I've done it using C, and I'll show you how it can be done. As for Java, I don't know Java. So, may be you can show me how to do it, based on how I did it in C. (Am I clear??)

    3) Autonomous and semi autonomous.. Well, to put it simply, autonomous bots are completely self contained. They dont require external assistance to work.

    Let's take an example. Let's say you make an image processing robot. There's a camera and there's live video feed arriving to you. You feed the video to MATLAB, process it in the computer, and through the computer, issue commands to the robot to move. That is semi autonomous.
    The same image processing, if performed by DSP processors or other powerful processors in the robot itself, without use of computer, it's fully autonomous.

    The same is true for all types like line followers or micro mice etc..

    4) The ports are basically used to issue commands to the robot on wat it should do. They are also used for collecting info about the environment from the robot. Port is simply a communication channel between the computer and the robot. And obviously, we dont need ports for fully autonomous bots.

    5) Absolutely. Autonomous robots require programming, and programming is the most important part in design of autonomous bots. Your program will be serving as the brain of the robot.

    All doubts cleared?? It'll all be more clear when I give you the next lesson. I'll tell you about the basic framework of a robot. Wait for that..
    Cheers!! ๐Ÿ˜€๐Ÿ˜€

  • ms_cs

    @ms-cs-Ab8svl • Apr 6, 2009

    One More doubt ...๐Ÿ˜•...
    Is it possible to issue the command from system , by using any wireless technology ?
    Then ,,,Whether bluetooth technology is used? What are the other technologies we have to control the robots from the computer system?

  • shalini_goel14

    @shalini-goel14-ASmC2J • Apr 6, 2009

    Hey thanks a lot Scorpion for answering my questions so well. ๐Ÿ˜€

    Conclusion is "autonomous" type of robots are difficult ones right? I would surely like to make such a robot in Java ? ๐Ÿ˜‰

    One more question, what kind of robots are more common and easy to make?

  • ms_cs

    @ms-cs-Ab8svl • Apr 6, 2009

    I heard that,,,Java is initially used only for embedded side projects which was called as Oak...
    If I am wrong ..do correct me guys..

  • silverscorpion

    @silverscorpion-iJKtdQ • Apr 6, 2009

    @Shalini: There are lots of issues in building a robot. It's not that autonomous bots are outright difficult, and manual bots are easy. Everything depends on what you want your robots to do, and how you are gonna make it do it.
    There are a lot of trade offs involved in any robot.


    @ms_cs :
    Yes, bluetooth can be used to control robots from the system. Infact, they are commonly used nowadays. And about other wireless technologies, any sophisticated technology can be used, as long as you can make a sufficiently complex transmitter receiver pair. You can use infra red to control bots because, it's really easy to generate and receive IR rays. You can buy an RF module and use it too. Not so difficult. But as you move on, more complex technologies require proportionately complex circuits. Even AM or FM can be used.

  • Black_Rose

    @black-rose-OYtC6o • Apr 7, 2009

    Silver scorpion, an interesting and informative read. Look forward to the next one. =)

  • silverscorpion

    @silverscorpion-iJKtdQ • Apr 7, 2009

    Hi all,
    The next tutorial is up.
    Please take a look.

  • deeps31

    @deeps31-t52HZ7 • Apr 7, 2009

    Hello,

    me myself a 1st year mechanical engineering student, interested in robotics, i have a built a simple light sensing & responding robot using atmega8 MCU, but i used a bread board. I would like to know how to use a PCB instead of bread board.

    Thanks & regards

  • silverscorpion

    @silverscorpion-iJKtdQ • Apr 7, 2009

    I infer you have no experience in soldering. Am i right?

    Making a pcb given you have the circuit diagram is not difficult at all.
    You can just decide on your own layout for the components, place them on a blank board, and solder the connections yourselves.
    Or you can do a full fledged printed circuit board by using a copper coated wafer and a chemical solution.
    Even better, you can guve the circuit to a PCB maker and get the PCB fabricated. it's not too costly, and you can be sure that the PCB will work.

    Usually, a ckt will work in breadboard, but after soldering, there'll be some bugs. That wont happen if you fabricate the PCB in a shop.
    But you can do it yourself too..

  • silverscorpion

    @silverscorpion-iJKtdQ • Apr 7, 2009

    Whatever be the case, you cannot begin soldering or dong a pcb straight away. You have top test the circuit in a bread board first, and only after you are sure that the ckt works for all cases, you should go on about soldering.

    Have I cleared your doubts??

  • et_vsd

    @et-vsd-Aoz9vN • Apr 7, 2009

    well.. grt going.. u r a good teacher..

  • Ashraf HZ

    @Ash • Apr 8, 2009

    Regarding soldering, SS.. maybe you can add pics or even videos on how to solder a component? That would be interesting ๐Ÿ˜€

    I'll try adding them if I have time after my exams

  • silverscorpion

    @silverscorpion-iJKtdQ • Apr 8, 2009

    ashRegarding soldering, SS.. maybe you can add pics or even videos on how to solder a component? That would be interesting ๐Ÿ˜€

    I'll try adding them if I have time after my exams

    Sure thing. Will look into it...๐Ÿ˜

  • deeps31

    @deeps31-t52HZ7 • Apr 8, 2009

    Hi,

    Thanks ton for the replies, i really did not expect such prompt replies! u people rock--cheers CEforums ๐Ÿ˜€ & i do have some experience in soldering, had to solder that parallel port programmer circuit, and you need not waste time posting snaps & vids on soldering for the sake of me...anyways thanks...i tried the circuit on a breadboard & it was working fine, but there was a small problem , the MCU would not just fit properly into the holes, i must apply some pressure on it to make it work...any remedies for this? i tried twitching the pins but it just would not fit. & i'm just a starter, could you suggest some projects to work on...& it would be really nice if you can put up a topic exclusively for coding...

    Once again thanks a ton CE!!!!

    Regards

    Deepak

    long live CE ๐Ÿ˜€

  • vinod12345madhu

    @vinod12345madhu-FwUje1 • Apr 9, 2009

    i want to know weather we can use a webcam conected to a bot and watch live video trnsfer on a tv screen or a pc?



    thanks

  • silverscorpion

    @silverscorpion-iJKtdQ • Apr 9, 2009

    For all you soldering newbies, here's a great and extensive tutorial on soldering. Very nice and elaborate. Enjoy!!

    #-Link-Snipped-#

    Cheers!!

  • silverscorpion

    @silverscorpion-iJKtdQ • Apr 9, 2009

    deeps31Hi,

    Thanks ton for the replies, i really did not expect such prompt replies! u people rock--cheers CEforums ๐Ÿ˜€ & i do have some experience in soldering, had to solder that parallel port programmer circuit, and you need not waste time posting snaps & vids on soldering for the sake of me...anyways thanks...i tried the circuit on a breadboard & it was working fine, but there was a small problem , the MCU would not just fit properly into the holes, i must apply some pressure on it to make it work...any remedies for this? i tried twitching the pins but it just would not fit. & i'm just a starter, could you suggest some projects to work on...& it would be really nice if you can put up a topic exclusively for coding...

    Once again thanks a ton CE!!!!

    Regards

    Deepak

    long live CE ๐Ÿ˜€


    Oh, that's ok..
    As for MUC positioning, it'll be difficult to do it in bread board, and I think You can do nothing about it. You'll have to get used to it.But, be careful while taking out the MUC from bread board. If you break or bend some pins in it, then it's gonna be difficult.

    About the projects for starters, I presume it's in robotics. I'd suggest you start from Line follower. And since you are from mechanical stream, I'd say you do a mechanical oriented robot after line follower. Like, sumo robot or something that lifts weight, for ex.

    I'll over coding in a while. But, if you think about it, MUC coding is really easy. You dont have to go for assembly programming if you feel it's difficult. You can also doit in C. And C is very easy. You'll be using only loops and if's. Nothing else.

  • silverscorpion

    @silverscorpion-iJKtdQ • Apr 9, 2009

    vinod12345madhui want to know weather we can use a webcam conected to a bot and watch live video trnsfer on a tv screen or a pc?


    Yes, You can do it. And more too..

    You can use image processing programs like MATLAB or OpenCV to do this. Actually, MATLAB is so simple that you can interface the camera ant the bot with your computer in a jiffy.

    And then, you can transfer live video feed to the PC and view it, or capture snapshots from the camera and do some image processing, etc. The possibilities are limitless..

  • vinod12345madhu

    @vinod12345madhu-FwUje1 • Apr 9, 2009

    thanks a lot...

  • vinod12345madhu

    @vinod12345madhu-FwUje1 • Apr 9, 2009

    thanks a lot... silverscorpion

  • vinod12345madhu

    @vinod12345madhu-FwUje1 • Apr 11, 2009

    is there any website or blog which provides simple instructions for making a small bot

  • ms_cs

    @ms-cs-Ab8svl • Apr 11, 2009

    SS Will Help you with the links...

  • rahul pathak

    @rahul-pathak-9O0bbj • Jul 21, 2009

    i need help for make six leg robot

  • silenthorde

    @silenthorde-4BLPNZ • Jul 21, 2009

    Hello silver scorpion

    Great endeavour, keep it coming.....

    Id love to learn about PCB designing.....from scratch....Cn u dedicate a thread for that as well

  • cooltwins

    @cooltwins-I5yJpZ • Aug 4, 2009

    That is an awesome initiative

    i have been searching for good stuff on robotics for the past few days

    looking forward to it ๐Ÿ˜€

  • decarus

    @decarus-MR0FpL • Aug 14, 2009

    hi. Wanna ask is it possible to control(program) one of the motor like for example its knee to move at a certain degree for one condition and other degree for other condition . If its possible what kind of motor is that ? what program is used to control ?

  • arjunoids

    @arjunoids-fU9dJ4 • Aug 15, 2009

    havent u started yet?

  • parjanyaroy

    @parjanyaroy-9DPtUd • Aug 15, 2009

    hie all ....

    first of all ..... this is a gr8 thread .... thnx a ton for starting it

    now i'm a newbie in robotics (2nd year in Elec..nd i dont have much of an idea regarding microcontrollers and how to program them. I only know the basics of C and C++ nd at present m learning MATLAB ... so ... is it possible to build bots without knowledge of microcontrollers ??

    thnx a ton in advance ๐Ÿ˜€

  • rushi53

    @rushi53-KIVJuV • Aug 18, 2009

    thanks for initiating this topic
    keep on posting