Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
Check out the new SourceForge HTML5 internet speed test! No Flash necessary and runs on all devices. ×
Education Hardware

Ask Slashdot: Learning Robotics Without Hardware? 78

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?
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Learning Robotics Without Hardware?

Comments Filter:
  • by spiritplumber ( 1944222 ) on Thursday January 28, 2016 @03:17PM (#51390533) Homepage
    http://www.robots-everywhere.c... [robots-everywhere.com] mkb@robots-everywhere.com
    • by KGIII ( 973947 )

      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 i

  • by Anonymous Coward

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

  • by soft_guy ( 534437 ) * on Thursday January 28, 2016 @03:20PM (#51390591)
    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.
    • by U2xhc2hkb3QgU3Vja3M ( 4212163 ) on Thursday January 28, 2016 @03:31PM (#51390711)

      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.

      • 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.

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

      • 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
  • Yes and No (Score:4, Insightful)

    by goombah99 ( 560566 ) on Thursday January 28, 2016 @03:22PM (#51390607)

    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.

    • 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 [bizchip.com]. We had to take a picture and get the robot to pick up a block in the picture by analyzing the

    • 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

  • by Xerotope ( 777662 ) on Thursday January 28, 2016 @03:33PM (#51390725)

    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/ [gazebosim.org] and http://www.ros.org/ [ros.org]

    If you want to explore perception and computer vision, take a look at OpenCV ( http://opencv.org/ [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/ [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... [mit.edu] )

    • by Tablizer ( 95088 )

      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?

      • by dbc ( 135354 )

        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.

      • 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.
      • by JanneM ( 7445 )

        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 thre

  • Why not (Score:4, Funny)

    by NEDHead ( 1651195 ) on Thursday January 28, 2016 @03:33PM (#51390731)

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

  • by Bearhouse ( 1034238 ) on Thursday January 28, 2016 @03:39PM (#51390779)

    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!

    • by Tablizer ( 95088 )

      [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.

    • 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.
  • 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 navigat

  • "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.

  • If you don't mind working at a higher abstraction level, Player/Stage (available on SourceForge) provides a multi-robot simulation.
  • 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.

  • 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 [computercraft.info], which adds turtles [computercraft.info] 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)

  • Program bots to do things like mining in Eve Online.

  • 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 pur

  • 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
  • You certainly can, but it's like learning about sex without a woman/man/sheep.

  • 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.

  • 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 sitt

  • by Miamicanes ( 730264 ) on Thursday January 28, 2016 @11:17PM (#51393385)

    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.

    • 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

      • 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).

        • 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

  • 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.

  • I used a cheap chinese Arduino clone, and had a (meArm [mearm.com] 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
  • 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.

MAC user's dynamic debugging list evaluator? Never heard of that.

Working...