Slashdot Mirror


Ask Slashdot: Learning Robotics Without Hardware?

An anonymous reader writes: I live in a Third World country with a more or less open Internet access. I'm thinking of learning robotics. I can access Github and other free software repositories, and I can read or watch online tutorials in English. My only problem is that we don't really have the money to buy robotics hardware. We can afford an Arduino or Raspberry Pi board but not the mechanical attachments. So is there any chance for me to learn robotics even if I don't have the hardware? Is it possible to program a robot using pure software simulation?

78 comments

  1. Very theoretical by Anonymous Coward · · Score: 0

    Very theoretical

    Kinematics - study of movement and geometries, brush up on your Calculus :)
    Vision systems, again, very mathmatical

    You cannot do this just by brute force.

    Go to YouTube, go to Mit open course ware, do the courses, start at 101 and work up.

    This is the stuff Masters starts at.

    1. Re:Very theoretical by Impy+the+Impiuos+Imp · · Score: 1

      I need a course just to install Eclipse and get it running with gcc.

      Maybe two.

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    2. Re:Very theoretical by spiffyspiff · · Score: 4, Insightful

      I studied Cybernetics @ Reading Uni 30 years ago - not many robots around then! :-)

      Control Theory is really, really useful to understand - go take look at that.

    3. Re: Very theoretical by Anonymous Coward · · Score: 0

      People keep saying this, but the way to learn isn't by just sitting there studying equations and looking at a blackboard. You need a robot hooked up, and you need to be programming it. Bits and pieces, getting wheels turning, seeing results, then trying some equations in your code. Equations are basically worthless without a feedback loop.

  2. We'll give you some hardware, where do we ship? by spiritplumber · · Score: 5, Interesting

    http://www.robots-everywhere.c... mkb@robots-everywhere.com

    --
    Liberty - Security - Laziness - Pick any two.
    1. Re:We'll give you some hardware, where do we ship? by Anonymous Coward · · Score: 0

      Kudos - well placed intentions, and a well placed ad :)

      Sweet, hope your site is ready to be slashdotted.

    2. Re:We'll give you some hardware, where do we ship? by Anonymous Coward · · Score: 0

      They've been here before. They'll be just fine.

    3. Re:We'll give you some hardware, where do we ship? by Anonymous Coward · · Score: 0

      Robots for 50 cents per pound!!!!

      https://www.hgrinc.com/products/searchresult?sel_word=robot&currPage=1&pageLine=30&is_adv_mode=N&searchType=common&PAGE_LINE=30&CURR_PAGE=3&NEWPAGE_TOTAL_COUNT=84&reqId=b34d0719-bfde-f779-a662-75ae259a348b&totalLoaded=24&scrollY=840&

    4. Re:We'll give you some hardware, where do we ship? by KGIII · · Score: 2

      Well, I opened this thread with the intent of finding an appropriate place and asking if they'd be willing to share an address. I've got a few bucks and I like doing stuff to help people out. If they get in touch with you and you decide you need financial assistance to accomplish this goal, let me know. From the looks of things, you've got it covered. I'll probably just make it a point to buy some hardware in the future - as I just so happen to be playing with a robot that I've named Rex.

      I should add, Rex is stupid and lazy. He still does not come when called BUT he reliable moves when called. Now, if I could just get him to follow the sound of my voice or even use the damned camera (someone has to have a library in C) then I'd be happier. But, alas, Rex is stupid and lazy - he's also probably high. Maybe I'll just make him flash a light so I can go find him. He's supposed to bring the remote to me. The remote is to control T. T is Rex's sister. She's not a robot. She just sits there and is supposed to play media on command - via a remote. She doesn't do anything yet but she should be easy. Her brother, on the other hand... Like I said, he's lazy and stupid.

      --
      "So long and thanks for all the fish."
  3. There is whole world by Anonymous Coward · · Score: 1

    Take a look at ros(ros.org) and gazebosim(gazebosim.org).

  4. Robotics Simulator by Anonymous Coward · · Score: 0

    Is it possible to program a robot using pure software simulation?

    Yes.

    A robotics simulator is used to create embedded applications for a robot without depending physically on the actual machine, thus saving cost and time

    1. Re:Robotics Simulator by Bratch · · Score: 2

      Yes, I do most of my robotic software work on a simulator, first over two serial ports using a null modem cable, where both programs run on the same machine. Later I do it across two machines (VM and/or physical), and finally I test on a controller from the robot, which is a small piece of the entire hardware setup. You may need to build your own simulator, but it does save lots of time.

      --
      Beware of the Redittor who loans you a Sharpie.
    2. Re:Robotics Simulator by Anonymous Coward · · Score: 0

      This is the best advice here. I've made more progress on robotics education in the few years I've been working with simulators than the entire decade previous to that point.

  5. You can probably afford hardware by soft_guy · · Score: 3, Insightful

    You should buy a something like a SBC (Pi or Arduino) and get a breadboard and some motion control chips and a a stepper motor. All of that together will cost about $60. (Breadboard maybe $10, chips maybe another $10, stepper motor maybe another $10, Raspberry Pi maybe $30). You could at least learn the basics of working with the chips and working with a motor.

    --
    Avoid Missing Ball for High Score
    1. Re:You can probably afford hardware by U2xhc2hkb3QgU3Vja3M · · Score: 3, Informative

      Arduino clones on eBay with a stepper motor shield and non-NEMA stepper motors shouldn't cost that much.

      The cost can be much, much lower if you don't mind slow, low-precision, plastic-geared steppers made for controlling A/C vents (28BYJ-48). With an Arduino Pro mini, the setup could be around USD$10 for the Arduino and three motors with drivers.

      You can also salvage from average to excellent stepper motors from old 8" and 5-1/4" floppy drives, old matrix/laser/inkjet printers and old scanners. If you can figure out how to use the built-in driver of the printer/scanner, you also save yourself from the trouble of finding power supplies and drivers for those motors.

    2. Re: You can probably afford hardware by Anonymous Coward · · Score: 0

      Yes, if you have access to decrepit computer/printer hw, a screwdriver and soldering iron, you can slaughter your way to lots of useful stuff and learn a good deal in the process.

    3. Re:You can probably afford hardware by ShanghaiBill · · Score: 1

      Arduino clones on eBay with a stepper motor shield and non-NEMA stepper motors shouldn't cost that much.

      Broken printers can be scrounged for free. They contain lots of stepper motors, timing belts, cogs, shafts, etc.

    4. Re:You can probably afford hardware by Anonymous Coward · · Score: 0

      Don't forget VCR's lots of usefully part's in them,

    5. Re:You can probably afford hardware by Anonymous Coward · · Score: 0

      $60 in terms of Third World... can be 3 months income, or more.
      https://en.wikipedia.org/wiki/List_of_countries_by_GDP_%28nominal%29_per_capita

      How easy it looks to us in the "West".

    6. Re:You can probably afford hardware by Aighearach · · Score: 1

      Often they will not have any stepper motors, only DC motors with optical speed or position sensors.

    7. Re:You can probably afford hardware by Anonymous Coward · · Score: 0

      It says right in the summary that they can afford a Pi or Arduino, so it's at least in the same ballpark instead of a "let them eat cake" moment.

    8. Re:You can probably afford hardware by NoseyNick · · Score: 1

      I'm assuming you already have access to some sort of laptop/desktop to post to slashdot? I'd say skip the shields, get a cheap arduino clone, probably one with the USB port NOT the separate TTL programmer if this is your first Arduino experience. Don't forget a USB CABLE for it. Small breadboard, some suitable jumper wires, (or perhaps you can recycle some old cat5?) and a few cheap servos ($5 ea). No real need for a "shield", you can directly connect most servos. It's also quite easy to convert the servos to "continuous rotation" if you want a speed-controllable (propulsion) motor rather than a position-controllable (steering) one (assuming you also have access to some tiny screwdrivers, knife/clippers, etc). Recycle bits of spare wood/plastic/card for body, wheels, arms, whatever. You can make really simple sensors by just having INPUT_PULLUP wires touch GND wires when bumped. Servos can steer/push/pull/propel/twist things. You can LATER look at more reliable switches/buttons, light/IR/temperature/distance/other sensors, RGB LEDs, displays, WiFi, Bluetooth, etc once you've had a bit of fun and have a better idea what you want to build. Remember most Arduinos already have 1 status LED, and Serial.print() for debugging/control whilst still connected to USB.

      --
      Nick Waterman, Sr Tech Director, #include <stddisclaimer>
  6. Yes and No by goombah99 · · Score: 3, Insightful

    I teach a robotics class and every design works perfectly up until you build it. Approximately 20% of the class is learning enough java to edit a pre-exiting program for an andorid. 20% is brainstorming ideas for task solutions. 20% is building it and 40% is figuring out why your ideas failed and coming up with simpler ones.

    Your best bet might be to do something like "turtle" graphics or write games that move icons around and respond to bouncy inputs.

    That said once you have the pi is it really that hard to get a few components? isn't there some old toy with a DC motor somewhere that could be recycled? You clearly have a computer access and computers break or get replaced. THere's motors in those things. Even a cell phone has a motor (the vibrator).

    I am reminded of a student who had just come from China several decades ago. She new fortran perfectly but had never actually used a computer or run a program. Turns out she could not program at all when it came to actually do something original. I nearly fell off my chair when she told me she had never written a program. She could read them just fine.

    --
    Some drink at the fountain of knowledge. Others just gargle.
    1. Re:Yes and No by CastrTroy · · Score: 2

      When I was in university doing a robotics class, I actually simulated a the robot we were using for our assignments in software. We only had a limited amount of time in the lab working with the robots, so I made a crude model of the robot from the lab using OpenGL, in order to test that the inputs we gave to the robot would provide the right behaviour by the robot. It was a basic robotic arm similar to this one. We had to take a picture and get the robot to pick up a block in the picture by analyzing the picture, figuring out where it was, and moving the arm there. The robot had to be controlled by telling it how much to move each individual motor. I found the project very interesting for something that seems relatively simple from an outside perspective.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    2. Re:Yes and No by Aighearach · · Score: 1

      Just last week a guy insisted that I'm a complete idiot because I was claiming that computer software can be run by humans using 3x5 cards, without the computer. (That was first year CS at my school...)

      When I was in middle school I would write BASIC code on lined paper. I didn't have a computer at home. Usually a program would be mostly complete before I even started typing it in. Works fine if you remember not to write any bugs. ;)

      A person who can read code has a good start, of course they wouldn't be able to write useful code yet. Has nothing to do with if they've been doing it on a computer, it has to do with if they've been writing code, or just reading it. Different things. Like listening to music and being an educated listener, and learning to read music, then trying to play an instrument. It helps to learn to read music, but it isn't the same thing as playing it and it isn't practice at playing.

      If a person did all their robotics programming using a 3d graphics library to simulate gears... they'd get really good at programming control loops. If they read circuit diagrams of control loops for years... they be ready to learn to program a pick and place machine. ;)

    3. Re: Yes and No by Anonymous Coward · · Score: 0

      Back at my liberal arts uni in around 98 I had as neighbor a senior who graduated Comp Sci without having a computer either. This was a shock to me.

      I was new and had just splurged $1600 for the cheapest beige Mac and given how this was Vassar and most students were well off (I was on financial aid and spent about 5 years paying off loans after I left though)

      I never did find her economic situation but almost everybody had a Mac from the on-campus Apple distributors and PCs still cost 1000. I used and old monitor. I was glad that 24/7 email, icq and AOL chat was a huge thing I experienced. There was a quiet CS lab I eventually did all-nighters in and some public Macs per dorm for mostly email (no social networks to keep an addict there all day long) but nothing quite beats your custom setup with compilers, X and music from the quiet of your own dorm room.

      Still I wonder how many 3rd world students are left out there who have no money and must play it by ear still.
      It is very different from needing to share or borrow a book for a semester, which I did experience.

  7. Logo - How I learned to love the turtle by Anonymous Coward · · Score: 0

    It's not exactly the same, but even basic concepts of learning to teach a turtle to walk in a square is akin to some of the most rudimentary robotics.

    https://en.wikipedia.org/wiki/Logo_%28programming_language%29

  8. It is possible to an extent by Anonymous Coward · · Score: 0

    Simulation software might cost you, but not as much as actual hardware. I found this with a quick google search http://robotvirtualworlds.com/.

  9. Gazebo, ROS, OpenCV, Point Cloud Library by Xerotope · · Score: 4, Informative

    Yes, you can learn a lot of robotics without actual hardware. I develop software for self-driving vehicles, and spend 95% of my time away from the hardware!

    ROS + Gazebo will let you assemble a robotics software stack and explore different planning and control algorithms in simulation: http://gazebosim.org/ and http://www.ros.org/

    If you want to explore perception and computer vision, take a look at OpenCV ( http://opencv.org/ ) and the tutorials there. The great thing about computer vision is you can run your software against the standard research sets or images you pull off Flickr.

    Point Cloud Library is a nice package for looking at 3D laser data (but has some numerical quirks): http://pointclouds.org/

    I would definitely take a look at some MOOCs, Andrew Ng's Machine Learning at Coursea (https://www.coursera.org/learn/machine-learning) or the MIT Courseware ( http://ocw.mit.edu/courses/ele... )

    1. Re:Gazebo, ROS, OpenCV, Point Cloud Library by Tablizer · · Score: 1

      goombah99 says almost half the effort is troubleshooting hardware-side issues and you say it's only about 5%.

      That's a big difference. Why the discrepancy? Do pro's have better simulators? Does arm-work require more hardware-side diddling than roving? (Domain differences.) Do pro's have the experience to avoid most newbie hardware mistakes?

    2. Re:Gazebo, ROS, OpenCV, Point Cloud Library by Anonymous Coward · · Score: 0

      Simulations are perfect, the real world isn't. You spend the time in software trying to handles all the edge cases where the robot's sensors aren't exact.

    3. Re:Gazebo, ROS, OpenCV, Point Cloud Library by Anonymous Coward · · Score: 0

      Two options:

      (1) This person is part of a team (likely if they're working on an arm-based system using ROS and focused on planning algorithms), so (1.a) someone else is spending the time to debug the hardware issues and/or (1.b) half of the time this person spends with the hardware involves troubleshooting

      (2) This person is focused on high level control, largely abstracted from the actual environment. If you're interested in the high level decision making it's entirely possible to spend very little time working with the hardware and dealing with hardware debugging issues, because the decisions your system is making are based on abstracted data. When you try to actually put your ideas into hardware, either you or someone else will have spent that hardware troubleshooting time getting the low level controllers and behaviors up and running in the target environment. And every time you change environments, you'll do it again.

    4. Re:Gazebo, ROS, OpenCV, Point Cloud Library by dbc · · Score: 1

      Getting the software to work is 90% of the effort. Getting the hardware to work is the *other* 90% of the effort. Fixing broken hardware is the *third* 90% of the effort.

      Robotics requires great software engineering, great electronic engineering, and great mechanical engineering. Few people are good at all three. No one has time to do all three by themselves for anything but very basic robots. And then there is budget.

      The OP wants to do serious robots on the cheap. ROS and Gazebo are the way to do that. Will the simulator model every way the robot can fail? Nope. But, it turns out, that the simulator faithfully models *enough* ways for the robot to fail to keep a serious team of people busy for many years.

      As to arms versus roving: IMHO building a satisfying rover is easier that building a satisfying arm. The mechanical design challenges are much simpler. The software can be endlessly complex for either, depending on your goals.

      You ask if pros have the experience to avoid most newbie hardware mistakes. Yes. They got that experience by making those mistakes themselves, or watching their friends make those mistakes. (My standard advice to newbies is that your first robot should have a low enough mass that a simple software bug will not punch a hole in the drywall of your living room.)

      As to where does the trouble-shooting effort go, after 10 years of serious hobby robotics I would say that someone that says they spend 90% of their time debugging hardware problems is interested in hardware and is pushing the development of hardware and probably runs simple software, often with the robot on a test stand. Someone that says they spend 90% of their time debugging software is taking on a bleeding edge software problem and is running on off-the-shelf hardware. It's all good. It's how we make progress.

    5. Re: Gazebo, ROS, OpenCV, Point Cloud Library by lostinbrave · · Score: 1

      I would guess that the self driving card hardware bugs have been ironed out by now where as the other was in the very beginning development from ground one. Different stages have different requirements.

    6. Re:Gazebo, ROS, OpenCV, Point Cloud Library by JanneM · · Score: 1

      What dbc says in his answer. But there's also that you can to some degree choose to shift complexity to hardware or software.

      You can for instance have a very expensive, high-quality, difficult to design and build harmonic-drive limb joint. The hardware is strong, accurate and reliable. There's no backlash or slack anywhere. Your software for moving the joint can in such a case be more or less "move_to_angle(something)" and you're done.

      Or you can have a hobby servo moving a hinge consisting of two holes threaded with a wire hanger. You can build it in five minutes. But now your software has to take all the slop, and all the inaccuracies into account. The behaviour of the joint will change depending on bending angle, direction to the floor, what it's holding and probably a lot more. You'll need extra sensors and probably some kind of adaptive system that learns to control the rickety thing.

      So you can decide whether you want to shift more of your problems to the hardware or to the software.

      --
      Trust the Computer. The Computer is your friend.
    7. Re: Gazebo, ROS, OpenCV, Point Cloud Library by Anonymous Coward · · Score: 0

      Very good advice. I will have to check out the third site, because you've hit the nail on the head with the first two.

  10. Why not by NEDHead · · Score: 3, Funny

    Hack into any of the connected cars that are being sold, program them to your liking, and then watch the news for feedback?

  11. You can get everything you need for free... by Bearhouse · · Score: 4, Insightful

    I've worked in "third world" countries, (how I hate that term).
    On the downside, most things are run into the ground and then thoroughly scavenged for everything possible of value.
    And then the rubbish dumps are hand-sorted. Because lots of young people plus no money = lots of hungry manpower
    But I'm sure you can get people interested in your project, and get things of very, very little value for your projects.
    Because everyone is thirsting for knowledge, (as well as clean water)
    Get creative! Get the community involved, trade teaching hours for hardware...
    Cars will yield fuses, voltage regulators, thin wire of little value for copper for the recyclers, switches and - in more moderns ones recently crashed - plenty of tiny electric motors again of zero value to a recycler but fine for your projects.
    Almost anything can get you started - old TVs are of course the absolute best, just jammed full of stuff!
    But washing machines are pretty good too, and even an old coffee machine can get you an electric thermostat plus the power supply.
    Look on the web - there are dozens of sources that will help you turn old stuff into some magnificent steampunk robotics!
    You don't have to buy an expensive kit of parts to make a robot.

    Oh, and by the way, you don't have to buy a Pi either - you can get started by using a washing machine controller as your program control unit.
    (Sadly now banned in many parts of the world, since they make excellent bomb timers)
    Not everything has to be digital...
    Have fun!

    1. Re:You can get everything you need for free... by Anonymous Coward · · Score: 0

      Get the community involved

      Local workshops and small businesses would be interesting partners for the more rugged and simplified projects.

    2. Re:You can get everything you need for free... by Tablizer · · Score: 1

      [in developing countries] lots of young people plus no money = lots of hungry manpower

      That's why I've been thinking that linking to existing overseas brains to remote-control may be cheaper than AI and bot automation tuning, if bandwidth gets cheap enough.

      However, hungry desperate people may also be inclined to cheat and steal for small bribes, something we wouldn't normally expect from a self-running bot.

    3. Re:You can get everything you need for free... by Anonymous Coward · · Score: 0

      I've worked in "third world" countries, (how I hate that term).

      The origin of the term was from a very simple post-WW2 grouping logic.

      "Western" allies.
      Warsaw Pact.
      Other.

      So "third world" just meant that they didn't declare a side in the Europe vs. Soviet diplomatic arguments.

      Since then, people misunderstood it as a function of economic prosperity, and thus the whole stupid "first world problems" meme.

    4. Re:You can get everything you need for free... by jimbob6 · · Score: 1

      Old printers are a gold mine for this kind of stuff. you will find gears, motors, encoders, thermistors, slides, belts, sensors, switches, usually a reasonable hackable embedded control system.

  12. Look into ROS by Anonymous Coward · · Score: 0

    Short answer: It's possible to do a lot with simulation, but most of the real learning happens when you deal with actual hardware.

    Note: I don't use the produce I'm going to mention, but looked at it in the past... Its not that it wasn't good, its just that I went another direction.

    You might look into the Robot Operating System (http://www.ros.org). It includes an advanced simulation environment called RVIZ. You would probably need a fairly high performance computer to do a complex simulation, but simpler configurations may not be stressing for lower-performance hardware. You can simulate systems that would be very expensive to actually build. The site provides packages for Ubuntu Linux.

    Learning in a simulated environment can be difficult. To really understand the issues involved it helps to be guided through a set of objectives that introduce the different topics in a way that isn't overwhelming. I don't know if such coursework is available for ROS, I'd be surprised if there wasn't something available.

    The logic and programming needed to solve a robotics problem is really only about half of puzzle. A lot of the skill set needed for robotics is in dealing with actual hardware that doesn't always (or ever) work exactly as it should. Even without this extra learning, you can probably build a good foundation with simulation alone.

  13. Yes... it is turtles all the way down. by niftymitch · · Score: 1

    Yes it is possible (and often preferable) to learn in a pure software emulated
    environment.

    Start with turtle graphics. While old school this is where many have started
    their programming journey.

    Simulators that model real systems are critical to the design and maintenance
    of all manner of real world systems. This is what many video games are...
    i.e. they are simulators of real or imaginary systems.

    Modern graphics invites a 3D turtle graphics environment where ants
    can place blocks and build bridges to navigate turtles over.

    Yes a Raspberry Pi is a wonderful learning tool.
    It is possible to explore almost any programming language you can name.
    And yes there is a Turtle Graphics application set.

    The big value of a SBC like the Raspberry Pi is all the levels are open enough
    for any level of software tinkering and they are easy to recover if your hacking
    adventure steps on the OS. The logic of the Raspberry Pi is low voltage
    but it is very easy to add LEDs for small change. A current limiting resistor and
    an LED cost small change. The schematics of the Raspberry Pi shows how the
    onboard LEDs have been interfaced.

    Look at QEMU -- it is a very interesting simulator and tool kit.

    Big powerful robots are expensive but the simulation
    tool set is a necessary layer that any robotics project will need.
    Without a good simulation expensive hardware becomes expensive junk.
    https://www.willowgarage.com/p...

    And if you make and document your progress there are individuals and companies that
    will fund a project in areas lacking schools, funding and infrastructure.

    --
    Truth is stranger than fiction, but it is because Fiction is obliged to stick to possibilities; Truth isn't. Mark Twain.
  14. Not invaluable itself by DerekLyons · · Score: 1

    "So is there any chance for me to learn robotics even if I don't have the hardware? Is it possible to program a robot using pure software simulation?"

    Learning how to write a simulator and then program inside of it is pretty interesting and a particularly useful skill itself. Not being able to translate it into hardware and test against real world truth sucks, but the experience is not to be spurned.

  15. Lego Mindstorms by Anonymous Coward · · Score: 0

    You are not going to believe this, but a EV3 Core (Educational) kit of Lego Mindstorms will let you learn some amazing things. Spend $350 on the EV3 Core kit, plus $5 per pound for another 30 pounds of used Legos. That will be about $500.

    1. Re:Lego Mindstorms by Anonymous Coward · · Score: 0

      30 pounds of used Legos

      Wrong.

  16. Linuxcnc Similator and Vismach by Anonymous Coward · · Score: 0

    You can run Linuxcnc on any PC in SIM mode. There is also the Vismach simulator to show 3D previews of a physical machine.

    You can download it all for free here:
    http://linuxcnc.org/
    http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Vismach

  17. Player / Stage by awkScooby · · Score: 1

    If you don't mind working at a higher abstraction level, Player/Stage (available on SourceForge) provides a multi-robot simulation.

  18. "Borrow" :-) by Tablizer · · Score: 1

    Just hack into somebody else's bot at 2am. As long as you set it back to its original spot before the morning alarm clock and don't break the china, the owner may never know the diff. Pick an already-messy house and use the bot to clean it up. A net gain for both sides.

  19. Third World Country by Anonymous Coward · · Score: 0

    Third world country could really mean any of the "have not" states in the USA, of which there are many.

    Oh, wait, the poster mentioned more or less open internet access, so that wouldn't be the USA, it's some *other* third world shithole.

  20. Does Minecraft count? by oneiros27 · · Score: 1

    It's been a while since I played, so I don't know what the status are for mods with the new re-write by Microsoft ... but there's ComputerCraft, which adds turtles to the game.

    You can program them to do tasks like digging tunnels, building roads, etc.

    If not that, I'd have to second the argument to learn Logo. (25-30 years ago, that's what schools would use to control robotic arms and such, so it's not just for turtle graphics)

    --
    Build it, and they will come^Hplain.
  21. Hardware is a waste of time by Anonymous Coward · · Score: 0

    Forget about mechanical robots. They are cute, but you can waste a lot of your time in that arena.

    As Marvin Minsky famously said. "Graduate students are wasting 3 years of their lives soldering and repairing robots, instead of making them smart. It's really shocking."

    If you really want to understand the foundation of robotics, study how to make something "smart".

    It could be a smart program that autonomously combs through the internet to increase its knowledge base.

    It could be a software assistant that learns to communicate with disabled people.

    Forget the motors and gears. it's only a reflection of todays "fashion" in robotics.

    For a start, learn how to program a neural net. There are thousands of simple examples if you google for them.

    You only need a computer and a knowledge of a programming language.

    Look into genetic programming to study how nature does it -
    http://www0.cs.ucl.ac.uk/staff/wlangdon/ftp/papers/poli08_fieldguide.pdf

    Remember, you don't need money to learn robotics.

    1. Re:Hardware is a waste of time by Anonymous Coward · · Score: 0

      Here are some more good links

      http://origin.conversationsnetwork.org/ITC.AC05-DavidFogel-2005.09.17.mp3
      http://www.popsci.com/scitech/article/2006-04/john-koza-has-built-invention-machine
      https://en.wikipedia.org/wiki/Genetic_programming
      http://demonstrations.wolfram.com/TravelingSalesmanProblem/

    2. Re: Hardware is a waste of time by Anonymous Coward · · Score: 0

      He's asking about robotics. Yes, logic is necessary, but a robot must interact with the physical world to be considered as such.

  22. Botting in online games by myowntrueself · · Score: 1

    Program bots to do things like mining in Eve Online.

    --
    In the free world the media isn't government run; the government is media run.
  23. Gazebo. ROS.org by dbc · · Score: 1

    Get a beefy workstation, and bring up ROS using the Gazebo simulator. You can define your own robots, and you have a full physics simulator. You might look at the Fetch Robotics web site for a demo that you can download. The demo gives you a full model of a Fetch, and a demo script that you can start hacking on. This is exactly how the developers at Fetch work up their code before deploying on actual hardware.

    So not only is it possible to do serious, state-of-the-art, robot software development in a purely simulated environment, if you go to any serious robot research lab in academia or industry, you will have to show your code working on the simulator *before* you are *allowed* to run your software on real hardware.

    ROS has pretty much taken over as the framework for academic research except for places like CMU and MIT that have many years invested in their own robotics software frameworks. Even at those places, there are labs switching over to ROS depending on the underlying hardware. In industry, you find companies prototyping in ROS and replacing open source modules with "secret sauce" modules to market differentiation as they ramp. ROS is also where serious hobbyists are going now. So, if you want to get into a robotics graduate school program, or into robotics industry, learn ROS, do something original, and put together a good demo screencast.

    So..... you will not run the Gazebo simulator on a RasPi. Build the beefiest X86 Ubuntu workstation you can afford, and be *very* careful about choosing a compatible graphics card. Go to ROS.org to find specs. X86/Ubuntu is the reference platform and development platform for ROS. There are ports to lots of other platforms, and people *do* run parts of ROS (not Gazebo) on RasPi's. Porting ROS is *not* a beginner's project. Take the easy route. Every. Time. (For now, things continue to get better.....)

  24. yes by Anonymous Coward · · Score: 0

    Read up on the ROS open source operating system and the PR2 robot's software simulator.

  25. ACE from Adept by Anonymous Coward · · Score: 0

    Check out ACE from Adept. It can be used to program their real robots or in simulation mode.
    Windows OS only AFAIK. Free to download. We use it at work to modify our production software before we load it on the real hardware.

    http://www.adept.com/products/software/pc/adept-ace/general

  26. Form a hackerspace by ventsyv · · Score: 1

    You can learn the software portion OK, but you do need the hardware to get the full experience. Are you familiar with Hackerspaces? They are basically clubs for people who share interest in programming / robotics and tech in general. They get together on regular bases to learn and do projects. If you can get a couple of people who share your interest in robotics you can each contribute some money and buy the components you need. Alternatively you can improvise and build / scavenge the components you need. That might turn out to be a lot more fun actually.

  27. Learn through Observation And C++ by MakersDirector · · Score: 0

    The BEST way to learn about robotics is to study it in fictional media.

    Pick up Star Trek, and study the cyborg known as Data. Pay attention to the Borg, and trace what little clues are there in their origin. Pick up Doctor Who and look at the Cybermen and Daleks, and pay attention to why the Doctor's always at war with them.

    Pick up the movie "Terminator" and study the interactions the robots have.

    Look at Elbot (http://elbot_e.csoica.artificial-solutions.com/), and Cleverbot, and pay attention to the similarities in the information acquisition, the discontinuities both exhibit, and the vocabularies (here: http://www.cleverbot.com/)

    Your computer, the one you are sending this request to, is a rudimentary robot. It includes peripherals which provide the computer stimulus in digitally interpreted fashion. Fictional media resources feature robotics which acts in a very predictable fashion, there's no spontaneity, the actions are guided, and there teds to be responses in reactive form to external stimulus received in highly predictable fashions.

    So my advice is - before you go and get the Microsoft Robotics SDK or anyone else's interpretation of robotics, then study the core Microsoft Windows operating system at a messaging and routing perspective. Specifically: the WM_ messages and ask yourself - how are devices which 'come online' notified system wide?

    What you're going to find is: software vendors have a habit of detaching you, the developer, by building in object layers and layers of abstraction away from the physical events themselves, but Windows - from the ground up - was actually built FOR robotics based on a messaging system and adoption of new peripheral devices that would be built, later, and applications devel

  28. Other than yourself, obviously by edittard · · Score: 1

    You certainly can, but it's like learning about sex without a woman/man/sheep.

    --
    At the bottom of the /. main page it says 'Yesterday's News'. Well they got that right.
  29. You can by guruevi · · Score: 1

    But it's a lot more fun to learn with it. I grew up poor as well and without the convenience of Arduinos or RPis, back then it was a $5 PIC16F84 kit or programming a parallel port on an old 80286. Motors were scavenged from tape recorders or fans, stepper motors from printers that we couldn't repair and later on from CD drives. Power transistors and transformers came mostly from audio amplifiers. I don't think I spent more than $200 between age 10 and 15 most of that was on a good multimeter.

    --
    Custom electronics and digital signage for your business: www.evcircuits.com
  30. Reality is the best teacher by Jeremy+Lee · · Score: 1

    There's an old saying, "In theory, there's no difference between theory and practice. In practice, however, there is."

    You can get really far with pure simulation, further if you write the simulation yourself (no better way to learn all the important variables than to implement them) but at some point you need to experience the messy reality, where stuff like tensile strength and friction live. Where you need oils and lubricants and vibration damping.

    I build a lot of robots. I can see two from where I'm sitting, three if you count the laser galvo system. Some of my best are complete Borg creations.. mismatched pieces, wires hanging off, random scrounged parts... and they hurl themselves into the air with astonishing fury, because (with power to weight ratios being what they are) what you leave off is just as important as what you put on.

    Now, I realize I'm in a privileged position, and I've been collecting robot pieces for a long time now (in a society which throws away useful components all the time) but I started small, by collecting broken things, taking them apart, and seeing if they could be repaired, or scrounged for parts. I have a "parts bin" of old broken radios and computers that saves me immense time and cost when I just need a 10uF cap, or a 100K resistor, or a bit of wire.

    And remember, robots don't _have_ to be made from electric motors. How about hydraulics driven by boiling water with toaster wire? A miniature steam-engine doom tank? Moving fluid drops around with electric fields? I've seen remote-controlled planes powered by rubber bands.

    Use what you have, because the engineering challenge is the same. Time and interest are your greatest resources.

    After a while, you realize "The Robot" is an idea in your mind, and the physical version is just a shadow of that. Bits break and fall off the "real" one all the time, but like the Japanese Temple, you can replace or upgrade every part and yet still it's the "same robot" so long as you remain committed.

    Incidentally, one of the best "robot simulation" systems I've seen is the game "RoboCraft". You build driving/flying/shooting vehicles from minecraft-like parts, and battle! The physics simulation is good enough to properly represent driving a half-exploded tank on it's remaining wheels, and teach you why redundancies are good.

    --
    Jeremy Lee | Orinoco
  31. Can't you read? by Anonymous Coward · · Score: 0

    Feel free to read what the OP wrote. As for prices, those may be what you can pay locally but that is absolutely no indication of what the same things cost elsewhere.

  32. Learn Visual C++ and Windows Messaging by MakersDirector · · Score: 0

    The BEST way to learn about robotics is to study it in fictional media.

    Pick up Star Trek, and study the cyborg known as Data. Pay attention to the Borg, and trace what little clues are there in their origin. Pick up Doctor Who and look at the Cybermen and Daleks, and pay attention to why the Doctor's always at war with them.

    Pick up the movie "Terminator" and study the interactions the robots have.

    Look at Elbot (http://elbot_e.csoica.artificial-solutions.com/), and Cleverbot, and pay attention to the similarities in the information acquisition, the discontinuities both exhibit, and the vocabularies (here: http://www.cleverbot.com/ [cleverbot.com])

    Your computer, the one you are sending this request to, is a rudimentary robot. It includes peripherals which provide the computer stimulus in digitally interpreted fashion. Fictional media resources feature robotics which acts in a very predictable fashion, there's no spontaneity, the actions are guided, and there teds to be responses in reactive form to external stimulus received in highly predictable fashions.

    So my advice is - before you go and get the Microsoft Robotics SDK or anyone else's interpretation of robotics, then study the core Microsoft Windows operating system at a messaging and routing perspective. Specifically: the WM_ messages and ask yourself - how are devices which 'come online' notified system wide?

    What you're going to find is: software vendors have a habit of detaching you, the developer, by building in object layers and layers of abstraction away from the physical events themselves, but Windows - from the ground up - was actually built FOR robotics based on a messaging system and adoption of new peripheral devices that would be built, later, and applications developed for them once the device came online and found widespread use.

    Take up Microsoft Visual Studio - C++ for a direct and easy to manage message pump and study they effects in the message pump when devices are brought online. My advice is to pull down Visual Studio 2005 or 2008, both of which Microsoft distributes as torrents if you can't afford it here: https://kat.cr/usearch/microso... [kat.cr]

    Now be careful. Other languages such as Java, Python and ;NET may offer SOME semblance of message pump handling, but it's abstracted away from the hardware layer through volatile assemblies which have seen a ton of problems with compatibility and mismanagement of memory, not to mention it's not nearly as fast as managing the message pump yourself.

    Now what's this all have to do with robotics?

    If you study media, you understand where civilization is going and what - hardware wise - we have in store for our future. There's no 'quick and dirty' solution to robotics programming, the software is already all available out there, you just gotta learn how to learn about it and leverage it for yourself.

    And thats where practice, practice, practice comes in.

    And a few expenditures.You aren't gonna be able to get by this in the end.

  33. Robotics withotu a real robot is pointless by Miamicanes · · Score: 2

    You could, but it would be largely pointless. In the real world, unless you're an entity like NASA (with resources to match), hardware almost never behaves exactly the way it's officially supposed to. Electronics can be simulated perfectly. Mechanical devices? Not so much. Your simulated stepper motor makes certain assumptions about torque, inertia, etc. that are mostly guaranteed to be invalid once you try it in a real device with worn bearings operating running across a shag carpet or wet floor.

    The sad fact is, robotics isn't a hobby for poor people. The electronics part is cheap thanks to Arduino and RasPi (and Edison, and ...), but once it's time to start adding hardware, all bets are off. Sure, you can make a sub-$100 robot that can follow lines and avoid running into walls, but the moment you get bored and want to add real sensors & stuff, prepare to fork out some SERIOUS cash.

    Just to give one example: Crustcrawler.com's AX12-AHW robotic arm kit. It's $399... not counting the 7 Robotis AX-12A digital servos you'll have to buy for around $45 apiece, and the power supply, and the controller, unless you already have them. Now, this is an awesome, kick-ass robotic arm. It's well-designed, and can probably be used to do useful things. But damn, it's expensive.

    All kidding aside, the iRobot Create is one of the best platforms to get started with... it's under $100 at Amazon, and gives you not only the ability to detect walls and collisions, but also gives you the ability to avoid running down stairs & furnishes data about its actual, measured motion.

    If you really want to do something meaningful without a real robot, get a cheap webcam for your PC and learn how to use OpenCV. If you ever get to work on a real robot someday, OpenCV programming knowledge will be very useful... especially since RasPi-based robot controllers can use the same cheap webcams as desktop PCs (assuming they support Linux & have open-source drivers you can build for the Pi).

    Big tip to programmers who want to get into robotics: if you anticipate needing hardware that can't be purchased off-the-shelf, become friends with a mechanical engineer. They understand things like drivetrains the same way you understand things like recursion & objects... and he (or she) probably finds programming to be about as frustrating and alien as you find trying to bolt things together (dropping screws & nuts into the carpet, gouging your finger with the screwdriver, etc). There's a tiny bit of overlap between the electronic and mechanical realms, but most people who develop robots are teams of two (or more) with complementary skill sets.

    1. Re:Robotics withotu a real robot is pointless by Anonymous Coward · · Score: 0

      Learning some basic mechanical skill is also usefull, often it is much easier to make some mechanical piece than finding where to buy it and waiting for it to arrive. At least, most things you can improvise so you can continue working until the good, factory made, part arrives.

    2. Re:Robotics withotu a real robot is pointless by thinkwaitfast · · Score: 1

      The sad fact is, robotics isn't a hobby for poor people.

      I did pretty well, learned much, got a degree in control systems and subsequent job in robotics and never had any money growing up and certainly nothing like the abundance of nearly free hardware that is available today. In my experience, the work is 95%+ software, understanding real-time control and how to make it work. That's ~$8 of arduino and friends parts on ebay. No matter what you do, output is 99% of the time going to be pwm or discrete I/O (both built into wiring) and input is going to be discrete or an analog value. That covers every piece of hardware out there from light meters, strain gauges, motors, lights, microwave ovens, sprinklers, etc. Knowing how to talk to external devices is embedded programming, but the bulk of the work in any robotics system.

      Unless you start talking about vision systems, I don't know of anything that costs over $10. Seriously. Do yu have any examples?

    3. Re: Robotics withotu a real robot is pointless by Miamicanes · · Score: 1

      Ummmm.... anything involving a motor? A 6-axis accelerometer + gyro? Any off the shelf infrared distance sensor module (like Sharp's)?

      Most really interesting robotics projects ultimately require some degree of computer vision. As luck would have it, CV is one of the few things directly relevant to robotics that can BE effectively learned using only a PC (with cheap webcam).

    4. Re: Robotics withotu a real robot is pointless by thinkwaitfast · · Score: 1

      Ummmm.... anything involving a motor?

      Well, I've worked on autonomous cars, starting on the platooning problem, and later lateral guidance (steering). I then worked on energy management in aircraft (altitude which is very motor dependent (and also have a patent in this area)). Another problem involving motors is the stacking of aircraft which I spent about a year developing models for. The motors were simulated as 3rd order models, we found that this is all that was necessary. So yeah. Any questions? And also very familiar with gyros et al and 6dof models, gps simulation/real life nmea83 decode and also wgs84 and very experienced with many ARINC standards, though mostly 653 and 429. Simulations is vitally important in spacecraft systems where you don't have the 'robot' until sometimes years after you've designed it.

  34. Mechanics, Electronics and IA by Anonymous Coward · · Score: 0

    The problem of robotics it's that it's a very multidisciplinary field. For my experience, robotics encompasses electronics, mechanical engineering and artificial intelligence.

      Mechanics: inverse and forward kinematics, trajectory generation, control...
    For the mechanical part you would need pretty much a solid mathematical basis. It would be at least first year of engineering but you can do it with high school maths in case you don't want to go very far (which honestly , you don't need).
    There are tons of software and libraries for robotics mechanics, so you don't need hardware at all. Nevertheless, at the end of the day, you would only be able to understand properly mechanics when dealing with real problems, and real problems come with real physical experiments.

        Electronics
    As with mechanics, you have plenty of software to play with. But in this case, I would say it's actually pretty difficult to properly understand electronics without actually building your own circuits. You can learn the basics with simulators, but again you would need to make your hands dirty if you actually want to really state you know electronics. In the case of electronics often times you find out that simulations are a very ideal case that doesn't have into account many aspects that only show up in actual circuits (heat, induced current, current/voltage limits, soldering and many many many more).

        IA
    IA is usually applied to computer vision, but it is also playing more and more an important part in the control side of the robot. You can go and play with OpenCV using webcams (I'll assume you can afford a pair of cheap webcams :) ). That'll be a good start point and if you don't do anything fancy, you'll be good to go.
    If you want to go master IA you'll have to most likely learn reinforcement learning (for control), deep learning (for vision) which require a solid basis of mathematics (more or less like 'Mechanics'). Nevertheless, both reinforcement learning and deep learning are fields that are extremely interesting by themselves alone. Not to mention, they have the power of being the 'next big thing' in IT, just at the level of Internet or integrated circuits (yes, my subjective opinion, but I had to say it !! :D ). For example, this an integration of reinforcement learning with deep learning http://www.nature.com/news/game-playing-software-holds-lessons-for-neuroscience-1.16979

  35. Small cheap parts by terminal.dk · · Score: 1

    Things are cheap. Arduino Pro mini is $1.50 - stepper motors $1. SG90 servos $2. Ultrasound sensors = $1.60. GY-521 6DOF gyro is $2.04....
    Parts are small and cheap.

  36. What I did by Anonymous Coward · · Score: 0

    As a robotics engineer from a "3rd world" country now working in a "1st world" country my advice is the following: For motors and sensors, locate old printers. They are a treasure and have dc motors with gears, stepper motors, barrier sensors, mechanical "push" sensors, etc... For electronics I used to "order" sample chips, and usually got 5 to 10 samples for free. ROS is for free, as well as online courses in programming, embedded systems and control theory.

  37. Read books about it by Anonymous Coward · · Score: 0

    Then, when the opportunities arise in your life to pursue robotics, your mind will already have a foundation.

  38. RobotStudio by Anonymous Coward · · Score: 0

    Probably not what you are looking for with your budget, but in regards to answering your question "Is it possible to program a robot using pure software simulation?"
    Yes: http://new.abb.com/products/robotics/robotstudio

  39. cheap Arduino clones + meArm + mini servos by schweini · · Score: 1

    I used a cheap chinese Arduino clone, and had a (meArm laser-cut from acrylic. Combined it with some very cheap mini-servos from Aliexpress, and I had a very basic robot-arm.
    AliExpress is awesome for these electronics things - worldwide free shipping, and the prices are really ridiculously cheap sometimes.
    You can then code up some basic code in the Arduino that lets you remote control the servos from a PC with the programming language of your choice (I use perl).
    After that, you can e.g. add a 5$ webcam to your computer, to combine your robot arm with basic computer vision, or add some seonsors to the arm, and so on.

  40. Short answer: No by gmiller123456 · · Score: 1

    Robotics is the conglomoration of many different diciplines including mechanical engineering, electrical engineering, computer science, fabrication, and more. You can learn the computer science part using simulators, but just knowing that doesn't mean you've "learned robotics". There are plenty of pure theoretical areas you can explore in robotics without access to anything, not even a computer. So, it's really important to be very specific about what it is when you say you want to learn robotics.