pre-requisite C programming knowledge for ROS?
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?
ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
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.
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...
Asked: 2012-06-21 05:26:28 -0600
Seen: 361 times
Last updated: Jun 22 '12