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

ROS2 Package using both C++ and Python

asked 2018-11-26 14:38:07 -0600

beck gravatar image

updated 2018-11-28 16:07:13 -0600

How can I configure a ROS2 package that contains both C++ and python code for installation? I am aware of a previous question here, but the answer does not provide an example. I tried following the tutorial here, but I get No executable found when trying to run my python script with ros2 run (the C++ executables run without issue).

How do I configure my CMakeLists.txt to install python scripts so that ros2 run can find them?

Edit: I have also tried the call to install(FILES <> DESTINATION share/${PROJECT_NAME}) used here to no avail.

edit retag flag offensive close merge delete



have you tried adding in CMakelist.txt and launch the nodes pass the test. I have migrated .test files from ros1 to in ros2 but not able to add it in CMakelist.txt. With ros1, we can do with rostest.

Thanks, Poonam

poonam1120 gravatar image poonam1120  ( 2018-12-03 06:14:38 -0600 )edit

@poonam1120 I've already asked you to not use answers to ask questions. Please use comments.

William gravatar image William  ( 2018-12-05 14:38:22 -0600 )edit

@William, My apologies.

poonam1120 gravatar image poonam1120  ( 2018-12-06 00:04:08 -0600 )edit

No worries, just try to use comments unless it's actually an answer :)

William gravatar image William  ( 2018-12-06 00:28:25 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2018-11-28 17:09:17 -0600

lucasw gravatar image

updated 2018-11-30 15:49:31 -0600

This works for me in bouncy:


PROGRAMS sets the installed file permissions to be executable- but the file has to already be executable, e.g. chmod a+x

edit flag offensive delete link more


This works, but only after clearing the build and install directories, and does not work with the --symlink-install option. Is it possible to get it to play nice with --symlink-install?

beck gravatar image beck  ( 2018-11-28 17:31:02 -0600 )edit

I'll take a look at symlink install- I didn't realize until looking it up now that it was the new approach to the ros1 'devel' build directory.

lucasw gravatar image lucasw  ( 2018-11-28 20:54:57 -0600 )edit

I ran symlink-install with a clean workspace (also used with --base-paths to use the same src directory as I already set up without making a symlink) and in install/imgui_ros/lib/imgui_ros there is a symlink to, it works:

source install/setup.bash
ros2 run imgui_ros
lucasw gravatar image lucasw  ( 2018-11-29 10:27:44 -0600 )edit

This still doesn't work for me. The symlink to the script is being created in the install folder, but ros2 run is not finding it. I installed bouncy from binaries, so if you did an install from source, perhaps this was bug that was fixed?

beck gravatar image beck  ( 2018-11-29 11:44:48 -0600 )edit

I've been using the bouncy binaries.

lucasw gravatar image lucasw  ( 2018-11-29 13:58:03 -0600 )edit

Well, then I'm at a loss as to why this doesn't work.

beck gravatar image beck  ( 2018-11-29 14:16:52 -0600 )edit

Can you makie a minimal example and put it on github, just a cpp and py node that print something?

lucasw gravatar image lucasw  ( 2018-11-30 08:09:50 -0600 )edit

See here.

beck gravatar image beck  ( 2018-11-30 14:35:32 -0600 )edit

Question Tools



Asked: 2018-11-26 14:38:07 -0600

Seen: 2,958 times

Last updated: Dec 03 '18