Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I realize this is a very basic question, but I couldn't figure it out. I couldn't find any info on the topic, too, neither on MoveIt website nor anywhere else. I'd appreciate any help!

Well .. these aren't really MoveIt specific questions, so I'm not surprised you can't find anything there: creating packages and writing nodes are considered basic skills when developing with ROS, so they are not covered by package-specific tutorials like those for MoveIt.

I would recommend you take a look at the wiki/tutorials and you pick up a book (or two). A Gentle Introduction to ROS is free (although the author would probably appreciate it very much if you'd support him by buying a hardcopy from Amazon), and as far as I've understood from others, a good introduction to some of the basic workflows in ROS.


My take is that I shouldn't use gcc straightforwardly

Well, you could, but it doesn't really scale very well, so avoiding it is a good idea.

but rather catkin build, which means I need a CMakelists.txt or something similar.

Indeed. But understand that CMakeLists.txt are not something we in ROS invented. It's all just CMake (so be sure to look up CMake documentation as well as Catkin's (and some tutorials).

Also, should I write a .launch file?

Only if you feel that would help make your life easier. Basically, a launch file is script that starts a bunch of nodes for you with a single command. Instead of having N open terminals and writing rosrun .. N times, roslaunch takes care of starting everything for you.

So if you have just a single node, then rosrun $pkg $binary_name .. might be enough. As soon as you have multiple nodes that (need to) work together, launch files would start to make sense. But it's perfectly possible to use a launch file for a single node as well.

I realize this is a very basic question, but I couldn't figure it out. I couldn't find any info on the topic, too, neither on MoveIt website nor anywhere else. I'd appreciate any help!

Well .. these aren't really MoveIt specific questions, so I'm not surprised you can't find anything there: creating packages and writing nodes are considered basic skills when developing with ROS, so they are not covered by package-specific tutorials like those for MoveIt.

I would recommend you take a look at the wiki/tutorials and you pick up a book (or two). A Gentle Introduction to ROS is free (although the author would probably appreciate it very much if you'd support him by buying a hardcopy from Amazon), and as far as I've understood from others, a good introduction to some of the basic workflows in ROS.


My take is that I shouldn't use gcc straightforwardly

Well, you could, but it doesn't really scale very well, so avoiding it is a good idea.

but rather catkin build, which means I need a CMakelists.txt or something similar.

Indeed. But understand that CMakeLists.txt are not something we in ROS invented. It's all just CMake (so be sure to look up CMake documentation as well as Catkin's (and some tutorials).

Also, should I write a .launch file?

Only if you feel that would help make your life easier. Basically, a launch file is script that starts a bunch of nodes for you with a single command. Instead of having N open terminals and writing rosrun .. N times, roslaunch takes care of starting everything for you.

So if you have just a single node, then rosrun $pkg $binary_name .. might be enough. As soon as you have multiple nodes that (need to) work together, launch files would start to make sense. But it's perfectly possible to use a launch file for a single node as well.

Also:

If I copy one of the example cpp-files to ${CATKIN_WS}/moveit_mycode/ [..]

If you have an actual Catkin workspace, then source files should not be placed at the root of it, but rather in the source space (${CATKIN_WS}/src by default). And also in a package, but that'll become clear when you read up on these things.

I realize this is a very basic question, but I couldn't figure it out. I couldn't find any info on the topic, too, neither on MoveIt website nor anywhere else. I'd appreciate any help!

Well .. these aren't really MoveIt specific questions, so I'm not surprised you can't find anything there: creating packages and writing nodes are considered basic skills when developing with ROS, so they are not covered by package-specific tutorials like those for MoveIt.

I would recommend you take a look at the wiki/tutorials and you pick up a book (or two). A Gentle Introduction to ROS is free (although the author would probably appreciate it very much if you'd support him by buying a hardcopy from Amazon), and as far as I've understood from others, a good introduction to some of the basic workflows in ROS.


My take is that I shouldn't use gcc straightforwardly

Well, you could, but it doesn't really scale very well, so avoiding it is a good idea.

but rather catkin build, which means I need a CMakelists.txt or something similar.

Indeed. But understand that CMakeLists.txt are not something we in ROS invented. It's all just CMake (so be sure to look up CMake documentation as well as Catkin's (and read/follow some tutorials).)).

Also, should I write a .launch file?

Only if you feel that would help make your life easier. Basically, a launch file is script that starts a bunch of nodes for you with a single command. Instead of having N open terminals and writing rosrun .. N times, roslaunch takes care of starting everything for you.

So if you have just a single node, then rosrun $pkg $binary_name .. might be enough. As soon as you have multiple nodes that (need to) work together, launch files would start to make sense. But it's perfectly possible to use a launch file for a single node as well.

Also:

If I copy one of the example cpp-files to ${CATKIN_WS}/moveit_mycode/ [..]

If you have an actual Catkin workspace, then source files should not be placed at the root of it, but rather in the source space (${CATKIN_WS}/src by default). And also in a package, but that'll become clear when you read up on these things.