
Robot Academy – Open online robotics education resource - farazzz
https://robotacademy.net.au
======
wonjohnchoi
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?

~~~
Datenstrom
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/](http://www.ros.org/)

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

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

~~~
dbcurtis
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 :)

~~~
kajecounterhack
Zoox self driving cars use ROS fwiw

~~~
dbcurtis
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.)

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

