Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It really depends how far you want to go. For batchelor degree level robotics, the below is roughly what you'd want. That would let you write basic control software for most things from a plane to a production line.

Theres a fairly dense mathematical background to a lot of robotics, some of which is parallel to advanced CS but some which will be entirely new. Linear algrebra is a good starting point to jump into robot kinematics, and from there dynamics - kinematics(in robotics) is basically maths describing the position & motion of the end effector of a robot arm as a function of each of the joint values like angle or extention (and vice versa - called inverse kinematics!). Dynamics takes that further by looking at the force required at each joint to provide a certain acceleration of the end effector. A lot of things that might not seem "arm-like" can be modelled as arms for this, including 3d printer print heads or office chairs

Another topic to look into is control theory, which is used in a lot of fields but I wouldn't have thought it would be taught in CS classes (I'm trained in robotics so wouldn't know!). This is really critical to understand for robotics tho, a good start within this topic is understanding what PID control is.

Another useful thing will be understanding path planning basics. While you probably know some things that feel like path planning (Dijkstra's, a* etc) those are useful but not nearly the whole of it. New things could be cell decomposition (splitting a region containing obstacles into several sub-zones that contain no obstacles, useful for going from a global map to a local map), or calculating Configuration space (basically your robot isn't a point entity but actually is a physical shape, meaning you can't path arbritrarily close to an obstacle. Configuration space is "growing" obstacles such that the point you are using for navigation touching the edge of new obstacles is equivalent to the edge of the robot touching the old obstacles).

Some things that you probably already know such as computer vision are useful in robotics, so you aren't starting completely from scratch. Not sure if you're familliar with statistsics and/or Kalman filters and their variants, which would be very helpful. You're probably also familliar with low level networking stuff like packets and signal processing - knowledge on using an oscilloscope will be helpful!

Something you can use to practise some of this stuff is install a fresh linux partition with ROS (https://www.ros.org/ - best to keep it in its own linux parititon) and webots/gazebo (two robot simulation software - I like webots). Then you can dissect the control programs that come stock, and edit them or write your own. Also ROS is another thing in and of itself that might require a little bit of learning, but with good CS and the excellent ROS tutorials you should be able to figure out how to get nodes up and running in a day or two

I've been thinking about making a youtube channel with intros to some of this stuff one day, but thats a ways away yet

Each of these are really dense topics that will take a good few months to years to get truly proficient in, and they don't really cover stuff like electronics, biology (yes it comes up surprisingly often), materials or mechanical engineering which are also important for robotics, as well as stuff like knowledge about sensor types and their benefits and use cases (when to use LIDAR, when to use structured light sensors, sonar, ultrasound, infrared, radio etc). I tried to name-drop the most important topics in the hopes that it can start your search, but if you have any other questions feel free to ask.



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

Search: