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?
http://www.robots-everywhere.c... mkb@robots-everywhere.com
Liberty - Security - Laziness - Pick any two.
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
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.
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... )
Hack into any of the connected cars that are being sold, program them to your liking, and then watch the news for feedback?
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!
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.
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.
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.