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

pre-requisite C programming knowledge for ROS?

asked 2012-06-21 05:26:28 -0600

hina gravatar image

Hi i am new to ROS. i want to know that if advance programming concpts in C programming(e.g inheritance etc) are essential to understand ROS?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
4

answered 2012-06-22 03:30:10 -0600

DimitriProsser gravatar image

I don't want to sound too critical, but ROS uses C++, not C. The ROS API is strictly object-oriented in nature, so it's essential that you at least understand how to instantiate/use objects.

Here's my list of programming concepts that you should understand if you were to use C++ in ROS:

Object-Oriented Design: If you're going to code using ROSCpp, it's vital that you at least understand how to instantiate, handle, destroy, and pass objects. This applies to using Python with ROS as well.

Interface Programming: Any time that you use ROS's pluginlib features, you will be required to utilize interfaces to create your plugins. In terms of C++, this means inheriting from a base class and implementing virtual functions. So if you want to use pluginlib, you will need to understand inheritance. Inheritance also exists in Python, so it's a good concept to know either way.

Real-time Programming: Based on your application, you might need to understand the concepts of real-time programming to achieve your goals.

Boost: Boost is an incredibly powerful and helpful library, and ROS already includes it as a dependency, so you should learn how to use if you're going to use ROSCpp.

edit flag offensive delete link more
7

answered 2012-06-21 05:38:57 -0600

michikarg gravatar image

Basically you can also use Python as your programming language which i would recommend if you don't have any advanced programming skills in C++, Java or LISP.

Nevertheless, programming concepts like inheritance are important and i would strongly recommend to have a look at them regardless of which programming language you want to use...

edit flag offensive delete link more

Question Tools

Stats

Asked: 2012-06-21 05:26:28 -0600

Seen: 361 times

Last updated: Jun 22 '12