Hacker News Stories and CommentsAll the comments and stories posted to Hacker News that reference this course.
Control or spatial-related DSP has a lot of geometry going on and it's really hard to get with a good working knowledge. I don't know if there's a short path. Start with a good linear algebra course maybe in parallel to actually trying to solve or hack though the type of problems you want to solve, and thinking about how the basic stuff you are learning complements with the high level one.
Besides the courses recommended here this are other online materials related to planning, location and control I found really useful and consider to be high quality:
For Linear Algebra I really like Strang's course on OCW taken together with reading through his book.
⬐ mrcoder111I took a linear algebra course. Maybe I need to restudy but I would rather have links to exact chapters than reading the whole thing, as I don't see a direct path from the linear algebra I studied to the topology concepts and geometry here. Specifically there weren't any curves in linear algebra. Ex 4.10 and 4.11 here: http://planning.cs.uiuc.edu/node143.html
Are examples of things that are hard for me to understand. Especially that 2d picture in 4.11⬐ chongliYou have to study quite a lot of linear algebra before you can tackle functional analysis, the subject which includes the study of topological vector spaces. I don't know anything about robotics, however, so I don't know how functional analysis would apply, if at all.⬐ tnecnivFunctional analysis shows up all over the place. Everywhere you can take a Fourier transform, you can use functional analysis. For robotics, control theory and computer vision both come to mind.
Start now! There are great introductions out there. Good luck, I want to get back into robotics myself.
If you are missing some math to understand these, those classes are online too.
Awesome! That goes really well with the upcoming course on Controlling Mobile Robots I was gonna take https://www.coursera.org/course/conrob
⬐ legogtMagnus's Finite Automata course was one of my favorites at GaTech and I'm sure you won't be disappointed with his Coursera offering.
Anyone in the Santa Monica/LA area want to take a stab at this competition?
Some suggestions. To learn:
1) http://societyofrobots.com/ especially the forum
3) download the old coursera course on computer vision from some torrent site
4) anything and everything on 3d mathematics you can find.
Get a job making robots. Oh and the interview question is "how do you find a path for a non-point robot with non-line obstacles". The answer is to add the point-inversion of the robot to every point in the scene, and find a path in the resulting "configuration space" (google that and program it once. In 2d. No need to torture yourself with the 3d implementation). Worst-case followup question : and how do you find paths if rotation is allowed ? Tell the interviewer that you don't know, but he doesn't know that either (and it's easy to use the previous answer to come up with a -way to slow- algorithm suggestion, doing it efficiently and correctly however ...).
If you just want to make a robot. I suggest :
(shortcut if you got money to burn and don't care about electronics : http://www.robotis.com/xe/bioloid_en . Lego motors are slow and crappy)
1) forward kinematics (given 3 translated and rotated robot arm sections, what movement makes the end effector ?). Oh and mobile platform kinematics (robot arm is now a robot paw. What is the effect on a mobile platform if you move the arm, given that the end effector is on the ground)
2) make a robot arm. Bonus points if you make a walker.
3) actually program forward kinematics.
4) notice that the engines get really, really hot
5) learn control algorithms. Summary : the position of a motor is a function. Find the derivative of that function, speed. Make your control loop limit that speed (meaning speed needs to remain within -x and +x. Slow down if you find your robot risks exceeding that). Find the derivative of the speed function, acceleration. Make your control loop limit it's value.
5.5) find that the limits imposed in 5 are too strict. Find a way to relax them so that over a "small" time period of, say 2-3 seconds they're always true, but allow for small periods that exceed these limits.
6) notice that if you limit the torque (the derivative of the acceleration function to relatively low values) humans will not notice the movement of the robot, even though it doesn't preclude the robot moving quite fast. Have some fun with that.
6.5) attempt to make your robot pick up an unboiled egg. Break 100 eggs. Publish the traditional "look I can pick up an egg" (in 100 attempts you'll have a single egg that survives. Don't mention the other 99)
7) find ways to get your control loops based on other values. For example, find a way to have an end effector exert constant force on an object, as opposed to having a specific position. Find a way for your end effector to track an object.
7.5) make your robot pick up an unboiled egg. Get the breakage under 10%. Publish another paper. Do mention the 10 broken eggs. 8) find a way to do 7 while making sure your robot doesn't crash into itself, that generally there is no way to trick it into attempting to intersect with itself.
After step 7, you now know more than 80% of the people working on robotics. If you're still having fun, I'd definitely suggest getting into a phd program. Note that all this is bloody hard. Before you have step 8 covered you will be one of the 100 best-informed people in your state when it comes to 3d geometry and how forces affect objects. You will get irritated everytime you see a crane or bulldozer or escalator or elevator ... Your girlfriend will hate you for pointing out ways that those things can easily or suddenly accelerate large masses and cause disasters, and how easy it would be to prevent that.
Note that we really aren't that far when it comes to robotics. That means that with basic electronics you can achieve the state of the art (exception : battery life). It is not necessary to utilize expensive motors to achieve any of this, nor do you need things like a 3d printer or the like (servos + balsa wood(and something more solid, when you inevitable make a bigger robot) + saw + drill) will get you to step 6.5, and there is plenty of information on the internet on how to replace the servo ciruits to make 7+8 possible.
⬐ blitiThis is a fantastic list. I would like to add:
8) Robotics is a big industry. Find what interests you within it. It may be arms, rovers, drones, sensors, logic, etc. In my case, I'm interested in autonomous robots in the spirit of the google self driving projects.⬐ jdorwI've been a robotics hobbyist for a few years and still can't answer any of those questions. I can get my turtlebot to follow me around and chase the cat though. Is there a practical programming robotics book/course out there? I've taken tons of math, controls, read robotics books, but still can't program anything harder than a PID or Kalman filter. I think part of that is me relying on ROS libraries too much.⬐ waps⬐ iandanforthBoth of those can be really easy or really hard, depending. What exactly would you like to learn ?
Both things are related to control loops, so how about you make a slightly more complex robot that can detect it's position somehow, and get some pathfinding going ?I also highly recommend bioloid (Dynamixel AX-12) servos. Next year there will also be slightly cheaper version (XL), but the current AX line is a great way for a software person to start working with robots right away.⬐ HeyLaughingBoyYou forgot inverse kinematics. If you want the robot to do something useful like pick up an object from somewhere and put it down somewhere else, forward kinematics alone won't help you.⬐ Shooti3) seems available here: https://class.coursera.org/vision/class/index
Control of Mobile Robots - https://www.coursera.org/course/conrob