Hacker News new | past | comments | ask | show | jobs | submit login
Robot Academy – Open online robotics education resource (robotacademy.net.au)
180 points by farazzz 7 months ago | hide | past | web | favorite | 10 comments

It seems to me that robotics is getting more important as more companies are trying to use it (Tesla's smart factory, Amazon's robots in warehouses, space X, driveless cars, drones, etc) Traditionally, programming has been something that one can self-study and work on personal project to build something meaningful.

But programming with robotics seems to make it hard for individuals to use for personal projects because expensive hardware creates barrier for beginners to enter.

Of course, one can use 3D simulator as a mean to build a personal project but I heard that what you create in 3D simulator often doesn't work in practice.

Then, my question is that what would be the best way to enter field of Robotics and prepare for future where robotics programming becomes very important for someone with only programming background? For example, should I buy industrial robot arms and build personal project of automating simple tasks with computer vision, machine control, and machine learning?

There's quite a few degree programs nowadays where you get access to not only the theoretical foundations but also the possibility to work on projects on actual industry hardware, as well as improving that hardware if that's more your vibe.

I feel like the DIY route wouldn't really transfer all that well into industry applications. If you're not in the research arm of a company those robots are more work horses that come with their own stack and ways to put them to use.

Robotics programming is not something that will suddenly be relevant for the general programmer. It's more likely to stay relevant for people with engineering backgrounds (since that's their primary application) or people that dedicated a few years on learning the intersectional topics.

Other than that, if your interest is just in "machine with actuators" kind of robotics it's pretty much more approachable than ever. You can get quasi professional sensors and actuators relatively cheaply, entry level microprocessor development and single board computers have become super easy and capable enough for complex signal processing, the mechanical parts can (mostly) be substituted by a bit of off the shelf parts and 3D printing.

What you should do heavily depends on your goal. Do you want to get into robotics to tinker, to work with them or to professionally develop them? The first one is pretty approachable, the latter are rather dedicated functions that have their own learning curve and education requirements just like any non-trivial job.

Good question! The great news is that the maker movement has meant lots of the parts you'd use in robotics are now accessible and cheap! For example, you can buy Dynamixel AX-12 robot servos and build your own robot arm for ~$400-$1000. This gives you servos that have accurate positioning and feedback, unlike the super-budget arms that you can get for $100ish.

You can buy robot platforms and sensors from companies like DFRobot, Adafruit, Sparkfun, etc. Hobby 2-D lidar? $300-400. Plenty for personal projects & learning.

> should I buy industrial robot arms and build personal project of automating simple tasks with computer vision, machine control, and machine learning?

It sounds to me that you're interested in the software side of the space. My personal recommendation is if say you're interested in reinforcement learning to learn the algorithms in simulation like Mujoco and Unity. Sure, algorithms that work in sim don't move nicely to the real world, but you don't need your thing to work in real world to learn how it works. And if you _wanted_ to try it in the real world, you could go and learn the hardwarey things. Similarly, if you're interested in supervised learning or vision, you don't need to build robots.

Planning and control you can probably do a lot in sim too but those things have a lot of theory behind them that might be nice to learn in the classroom setting. If I were trying to be a planning & control engineer I'd probably look into a coursera course or something. Thing to remember about RL for control & planning right now is that it doesn't quite work yet.

I've noticed the same thing and have been actively working over the past 5 years trying to make introductory robotics approachable.

I've been a software developer for a long time, but robotics always felt like a mystery to me until I had someone show me the basics. I recently started a small company trying to teach the basics of robotics. The biggest challenge is that robotics have a real price attached that normal software development doesn't have associated.

With Javascript, I just need a text editor and a browser, but with Robotics I have to make the leap and purchase a kit and trust that the kit will do enough to teach me what I need to know to get started.

We designed and built a low-cost kit and have been using it in middle-schools throughout the southeast teaching kids the introduction, and so far that's been working really well.

Take a look at the Robot Operating System[1] and their tutorials[2]. Keep in mind though that very slowly ROS is transitioning to ROS2 which fixes some major problems caused by ageing. Most notably the switch from ROS messages to the Data Distribution Service (DDS) which is very popular in robotics.

ROS has a large amount of packages available for popular robots and integrates well with many simulation environments also. This will save you a massive amount of time learning and from being overwhelmed with the massive amount of things that go into even making a simple robot work. Download a bunch of packages and focus on just the part/parts you are learning right now. You will also see lots of great examples of how robotics software is written. Whether it is DDS, ROS messages, or LCM it is generally structured into a collections of nodes that interact with each other.

As far as hardware, even having personal projects with a simple line following robot should be enough to get a foot in the door. Where I worked previously preferred to hire people who were software engineers first, or at least keep the team balanced and I learned on the job. Simulation to real training has had some recent breakthroughs also, see "Learning Dexterity" by OpenAI[3] so it is increasingly possible to do effective work in simulation.

[1]: http://www.ros.org/

[2]: http://wiki.ros.org/ROS/Tutorials

[3]: https://blog.openai.com/learning-dexterity/

OK, so I am a ROS fan and have worked on several ROS-based projects both for hobby and for hire. Be aware that ROS has a non-trivial learning curve. I guess I would say that if you are learning robotics, ROS is where you want to end up, but not necessarily where you want to start.

But when starting with ROS, be aware that: 1) ROS 2 is still under heavy development. We have not yet reached the promised land, no commercial ROS companies that I know (and I know a bunch) have switched over yet. 2) While there is a lot of documentation and tutorials for ROS to be found, it is very easy to get tangled up in documentation for the wrong release. Sounds basic, I know, but really, if you are working with Melodic and snag into a tutorial for Jade, errrf, it can be frustrating for a beginner until you realize your PEBKAC.

So for ROS, definitely start with the simulator, and work through the tutorials. Melodic is the current long-term-support release of ROS. After doing the turtlebot tutorials from ROS.org, you can get other simulated robots, like the Fetch model for a mobile manipulator, or for arms the Moveit! ROS package has a nice tutorial based around a simulated Puma.

But I don't think you need to start with ROS. A lot can be learned by starting with something much simpler. Get your hands dirty and build something simple, anything really. Something I have seen many times at the Homebrew Robotics club is some smart guy from Facebook or Google or similar with an MSCS will walk in and tell us all about the great robot he plans to build. The 12 year old kids with two or three Arduino-and-popsickle-stick robots under their belt are thinking (usually not saying) "Talk is cheap, show us a working robot." Robots are humbling.

So for parts, in addition to SparkFun and Adafruit for various motor controller and other widgets, also look at Pololu.com for robot parts. Their Romi chassis has a lot going for it as a beginner kit. A good challenge might be to add some sensors and see if you can get one to simply explore the top of a table without falling off. Not as easy as it sounds. Brings new meaning to the phrase "corner cases".

Books: An oldie but goodie that gives serious beginners a good overview is "Behavior Based Robotics" by Ron Arkin. A little more intense: "Probabilistic Robotics", Thrun/Burgard/Fox.

And my favorite piece of advice to all robot beginners: Your first robot should have low enough mass that a missing semicolon does not put a hole the the wallboard of your living room. (I recently worked on a 1000lb mobile robot with 1000lb payload capacity. Several of us spent a loooong time designing/tweaking the E-Stop circuit. Make your newbie mistakes on something smaller :)

Zoox self driving cars use ROS fwiw

Yes, I am pretty sure that is ROS 1. There are a lot of companies using ROS 1, mostly either Kinetic or Melodic. (I am not going to name names.)

any hobby robot is good enough, as long as you are ready to tear it appart and superglue sensors on it and change it's software.

start with a balancing bot, you can already go crazy with the sensors and control law.

This site is awesome and I'm a big fan of Peter Corke!

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact