ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Possible to learn ROS without advanced mathematical skills?

asked 2016-10-26 17:40:43 -0600

tommytwoeyes gravatar image

I'm an engineering student (sophomore / Calculus II level) with a plan to get a Master's or PhD in robotics, ultimately.

I got started in this after being introduced to Arduino and the maker scene, but my real passion is robotics. I'd like to begin learning ROS, but I don't understand the coordinate frames, transform frames, and other advanced stuff.

Is it still possible to learn ROS without an understanding of the more advanced mathematics and physics / kinematics concepts?

edit retag flag offensive close merge delete


Why'd you delete your response?

gvdhoorn gravatar image gvdhoorn  ( 2016-10-29 03:42:15 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2016-10-27 02:25:41 -0600

gvdhoorn gravatar image

updated 2016-10-27 02:26:39 -0600

Is it still possible to learn ROS without an understanding of the more advanced mathematics and physics / kinematics concepts?

I would say yes.

At its core, ROS is 'just' a middleware (ie: a way for programs to exchange data, whether locally, on the same machine, or via a network) that happens to come with a lot of components and a (relatively) large community. If you like the idea of creating robot (control) systems that consist of multiple programs, each responsible for their own task, exchanging messages, and would like to re-use all the components already 'out there', then ROS could make sense.

Some things will remain magic incantations and / or black boxes, but you'll probably be fine.

As to "coordinate frames, transform frames and other advanced stuff": it will pay off (but this is true in general for robotics) if you have a basic understanding of Linear Algebra (vectors, coordinate systems, matrix-vector multiplication, etc). And you don't need to follow a complete LinAlg course for that at all. Something like this already gets you started in 2D (random googling, no affiliation)). A bit more thorough: here.

But to get started with ROS, that is not necessary. I'd pick up a recent book or two (from wiki/Books fi, A Gentle Introduction to ROS is nice) and just start doing things. If you run into anything you don't understand, use Google, search ROS Answers or ask a question.

(obligatory attempt at an analogy:) coordinate frames in robotics is really all about unambiguously defining positions in space (2D, 3D .. 9D, doesn't matter). If you tell your friend to meet you "at the house next door", that only works because your friend knows where you live. If you'd say the same thing to a stranger, you'd have to include more information, or he won't know what "next door" means, because it is relative to something else. You'd either have to tell him your home address, or ask the stranger where he is, and guide him from that location to wherever "next door" is.

In both cases, you'll be telling the stranger how to relate (transform) the position "next door" (coordinate) from your point of reference (or coordinate system) to his. Now both of you can refer to the same position in space, without that stranger needing to come and live in your house. As long as you both have a shared point of reference (or origin) this will always be possible.

Transforms really only do this: they add or subtract a bit of distance (and sometimes also rotation) to or from a position in space so that all components (or programs) in your robot understand where that specific point is, relative to something else.

Now if you and your friend live in campers, and you always move to a new location together, then "next door" will always mean the same thing, but only to you, in your own coordinate system. For the stranger ... (more)

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2016-10-26 17:40:43 -0600

Seen: 276 times

Last updated: Oct 29 '16