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

Revision history [back]

click to hide/show revision 1
initial version

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.