Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Courses/textbook recommendations for studying robotics?
180 points by codeknight11 on April 4, 2023 | hide | past | favorite | 39 comments
Hi HN,

I am studying robotics and exoskeletons as a hobby. Can HN please recommend high quality resources for self study?




Kevin Lynch's book is free and very good: http://hades.mech.northwestern.edu/index.php/Modern_Robotics - someone already mentioned his course.

The Robotics resources and texts by Peter Corke are good: https://petercorke.com/ -also has this good related course: https://robotacademy.net.au/

"Controls Engineering in the FIRST Robotics Competition" by Tyler Veness is free and a good short reference: https://controls-in-frc.link/

Also add the MIT Robotics Series books: https://mitpress.mit.edu/series/intelligent-robotics-and-aut...

Algorithms for Decision Making is free and awesome: https://algorithmsbook.com/

Also looks really good (MIT Press hardcopy): https://introduction-to-autonomous-robots.github.io/


Thanks, what about resourses for reinforcement learning in robotics.


I'd say RL is an advanced robotics topic. There are some books out there that cover introductory or general RL aspects... after that you'll have to dive into papers and specific code bases.

Might not be a bad idea to start with a Python-based, practical RL book and move from practical demonstrations towards theory.

Although not an RL book, I really like Data-Driven Science and Engineering by Brunton and Kutz:

- https://www.databookuw.com/

- https://www.amazon.com/Data-Driven-Science-Engineering-Learn...

Steve Brunton also has an awesome youtube channel on dynamic systems, control, and machine learning.

Robotic books with some RL concepts (don't have either of these tbh):

- https://introduction-to-autonomous-robots.github.io/

- https://mitpress.mit.edu/9780262046169/learning-for-adaptive...

General texts/resources on adaptive control, optimal control, and RL:

- https://arxiv.org/abs/1912.03513

- http://www.cs.cmu.edu/~cga/dynopt/

- http://www.mit.edu/~dimitrib/RLbook.html

Practical Methods for Optimal Control Using Nonlinear Programming, Third Edition by John Betts:

- https://my.siam.org/Store/Product/viewproduct/?ProductId=316...

Adaptive Control Tutorial by Ioannou and Fidan

- https://mitpress.mit.edu/9780262039246/reinforcement-learnin...

Control Systems and Reinforcement Learning by Sean Meyn looks to be on topic but I haven't read through it.


Thanks for the list.


If you're interested in perception, like tracking & freespace detection or SLAM, then "Probabilistic Robotics" by Thrun is pretty good. For a more fundamental take on that stuff (but less robotics specific), "Pattern Recognition and Machine Learning" by Bishop is my favorite.


This reply will focus mainly on the academics.

Since you've mentioned exoskeletons, knowledge of kinematics and dynamics is imperative.

Rotation Matrices, Forward/Inverse Kinematics, Denavit - Hartenberg Parameters, Lagrangian Mechanics are a few fundamental concepts one should be familiar with. Their applications mostly pertain to robotic manipulators (arms), which are what members of exoskeleton's are modeled after.

They're covered extensively in the classic in the field textbook

    Robotics Modelling, Planning and Control by Siciliano, Sciavicco, Villani, Oriolo
https://link.springer.com/book/10.1007/978-1-84628-642-1

They also require some prior knowledge of linear algebra to safely navigate through, so make sure you've achieved at least some math literacy before diving into them.

Speaking of navigation, if you're interested in motion planning i.e. how to optimally (safely and efficiently) go from point A to point B, what you read is

    Planning Algorithms by Steven M. Lavalle
http://lavalle.pl/planning/

for various ways the math people have came up with to solve this. Many cool applications in fields outside of robotics like in Computer Graphics/Animation too.

And btw, if there's one paper you'll absolutely have to read if you find yourself more interested in motion planning is

    Sampling-based Algorithms for Optimal Motion Planning by Sertac Karaman and Emilio Frazzoli 
https://arxiv.org/pdf/1105.1186.pdf

in which the authors have revised two very popular path planning algorithms by making them significantly more optimal than their initial implementations were, and are part of many decision making systems that are involved in any type of mechanical movements.

Some other comments talked about more advanced disciplines in the field like State Estimation or Reinforcement Learning but I believe the aforementioned (kimenatics/dynamics/motion planning) are the bare minimum before diving into even more advanced math-heavy concepts.


Kevin Lynch has a great course "Modern Robotics: Mechanics, Planning, and Control Specialization" on coursera. It covers the key ideas in robotics at a high level (however it leaves out perception). I recommend it for people interested in getting started on this topic.

https://www.coursera.org/specializations/modernrobotics#cour...


Are any subtopics particularly interesting to you?

Mechatronics, Computer Vision, Control Theory, State Estimation, Path Planning, etc?


Second that.

Similar questions get posted pretty often in engineering subreddits and it's difficult to answer as robotics is so multi-disciplinary.

Very few people in this world are skilled enough in embedded programming, PCB design (motor control and sensors), materials and structures, dynamics and kinematics, controls and machine design (CAD, selecting manufacturing processes, selecting various COTS mechanical parts like actuators and bearings) to be a one-man-robot making orchestra.

Advice to OP: pick a specialization to start with, and focus on learning that while using pre-made parts for the rest. For example, buy a ready-made robotic arm and write path planning and controls software to operate it. Or build your own CNC router/pick-and-place/3D printer/pen plotter but use off the shelf/open-source electronics and firmware.

Once that's done, pick another specialty and move on to that if it interests you.


Picking up this idea, someone should write a robotics version of "Build Your Own Metal Working Shop From Scrap"[0]. It's a seven volume series where basically you start with rocks, make a series of tools, and end up with a metal shop.

https://www.goodreads.com/en/book/show/19811050


Even better if the parts for your robot(s) are machined using the DIY metal-shop tools! It's DIY all the way down...

All joking aside, I've always longed for a complete set of those Gingery books in print format. I have ebooks of most of them, but I'd love to have a bound set. And even more, I'd love to have time (and space) to actually take a stab at building the Gingery metal shop. Seems like it would be real blast (no pun intended).


Good advice.

Can you recommend the names of any off-the-shelf robotic arms or tools that can be modified or hacked?

Any good standard starting points for controller software?


I recently researched "cheap" (not really but not super extra expensive) robot arms.

(Disclaimer: I haven't bought any of them, so can't say anything about the quality.)

UFactory Lite $3900 https://www.ufactory.cc/product-page/ufactory-lite-6-kit

Dorna 2 $4200 https://dorna.ai/product/dorna-2/

ReBeL cobot €5000 https://www.igus.si/product/20962?artNr=REBEL-6DOF-01

Interbotix https://www.trossenrobotics.com/robotic-arms/ros-research-ar...

DOBOT $2700 https://www.trossenrobotics.com/dobot-mg400-industrial-deskt...

Wlkata Mirobot $2000 https://www.wlkata.com/products/professional-kit-of-wlkata-m...


The Niryo arm is a high quality kit with good software support package if not updated as often as it could be

https://www.niryo.com


There's plenty of toy arms for programming on every electronics site, including amazon. They're basically just a series of exposed hobby servos mounted together in a plastic skeleton. The motors are pretty much standard. You can even buy them with or without an control board.

Buy an Arduino Mega or something. That way you'll have way more pins that you'll need, and shouldn't hit up against the memory limits. Arduinos have a huge community, and the free IDE has all libraries and everything you need. I bought one and an MP3 shield from AdaFruit last year and successfully made a GNK droid. complete with flashing lights and multiple modes of tranquil gonks.


From a control system perspective:

Nise - Control Systems Engineering: https://www.amazon.com/Control-Systems-Engineering-Norman-Ni...

Friedland - Control System Design: https://www.amazon.com/Control-System-Design-Introduction-St...


I bought a 6DOF robot arm a while ago, which uses servos driven by PWM, which I found quite fun.

It was only around £70 for the servos + metal framework. I drive it with a Pi and a PCA9685 based I2C board.

I was driving with a 5V supply, but it looks like the servos can run at 6V, which I need to try, as the bottom servo in the arm doesn't seem to have quite enough power.

I'd like to sometime try to 'teach' it to draw with a pen (however badly), 'Inverse kinematics' feels rather scary though, so wonder if anyone might have any very basic tutorials on this.

Tangentially related, I just bought 'The Ultimate Guide To DIY Animatronics' yesterday, which I'm looking forward to reading when it arrives.

And have been watching a few videos on animatronics such as:

* https://www.youtube.com/watch?v=y0R8-F4TmPI - 'Show and Tell: Animatronic Raven Kit!'

* https://www.youtube.com/watch?v=uNIfx0Xddzc - 'How Realistic Animatronics Are Made For Movies & TV | Movies Insider'

Curious if anyone has any recommendations for videos/books in this area?


Try the Robot Operating System documentation for the software and control side. If you can write the low level drivers then the ROS stack abstracts the IK and other middleware layers allowing you to focus on app and problem spaces.

https://docs.ros.org


Thanks, that sounds really interesting, will definitely have to try that out.


>'Inverse kinematics' feels rather scary though, so wonder if anyone might have any very basic tutorials on this.

You might look into graphics programming and 3d modeling. For example Blender supports Inverse Kinematics for creating character animation.


That sounds a good plan, I've played with Blender a little, only for very simplistic stuff, but will have to look into its IK support.


Found the article I was thinking about when I wrote the comment above.

https://wiki.blender.org/wiki/Source/Animation/IK


I'd be interested in a link to the arm you bought? (Or do you mean more along the lines of "designed"?)


I bought from amazon, where it doesn't seem to be for sale any more, but it looks identical to - https://www.aliexpress.com/item/1005005380691351.html (the silver one), with MG996 servos.


“Robotics dynamics algorithms” by Featherstone is a great book to read for modern forward and inverse dynamics and spatial vector algebra.


If your robot has sensors, they'll need to be calibrated. This ebook is basically the calibration bible: https://www.tangramvision.com/resources/calibration-desk-ref...


The really big shift in ai in a sense was to reject the sense-model- plan- act cycle. I continue to see researchers assuming SMPA so although "everyone" knows this,"Intelligence without representation" by Brooks is essential. The alternative is sense-act in one layer, and model-plan over the top.


I apparently wasn't paying attention: can you elaborate on what it is that "everyone" knows?


For mobile, "Introduction to Autonomous Mobile Robots" by Siegwart et al.

For motion, "Principles of Robot Motion: Theory, Algorithms, and Implementations" by Choset, et al.

It's telling that few new robotics textbooks have shipped in the past 10-15 years.


Well, from my experience in a partially automated factory 'wrangling the robots' I would do a little foray into 'things that can go wrong'. Our robot arms would periodically have 'robot revolt parties'. Watched a robot arm reach up and push a compressor right off a ten foot dead nest. It didn't drop it or fumble, it cleanly swept it right off. So many small things could trigger problems and sometimes the fixes were odd, like one robot refused to reset unless you opened and closed a certain one of the cage doors despite having done the proper reset process in the computer.


The classic book for kinematics and dynamics is John Craig, Introduction to Robotics: Mechanics and Control, published by Pearson.

Despite the title, it isn't a particularly good controls book. But it's the standard for kinematics.


This is the undergraduate curriculum for additional major in Robotics at CMU:

https://www.ri.cmu.edu/education/academic-programs/undergrad...

You can google the course numbers and find out which of the courses have an available webpage and study material from there.


Nonlinear systems and control could be something that’s useful to get into regarding legged robots or exoskeletons. It’s not covered in depth by many general robotics textbooks but there’s a great lecture including fantastic interactive notebook material at http://underactuated.mit.edu/


I have heard good things about Foundations of Robotics Analysis and Control by Tsuneo Yoshikawa though haven't read it myself. Apparently it has a good coverage of the mathematics/equations needed for manipulation/control.

Somebody who has already read it might want to chime in.


Paul McWhorter is my favorite.

His web site's name, TopTechBoy is a joke - it's in pigdin because he simplifies things.

https://www.youtube.com/watch?v=fJWR7dBuc18&list=PLGs0VKk2Di...


Probabilistic Robotics by Thurn/Burgard/Fox is basically the best resource for anything SLAM or planning related.

Artificial Intelligence: A Modern Approach by Russell/Norvig is another good book for planning and AI.


Take a look at Stanford's Principles of Robotic Autonomy:

http://asl.stanford.edu/aa274a/


Learn thru experience and consider mentoring a FIRST robotics team in your area.


what about mechanical engineering resources as relates to robotics?




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

Search: