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

Integrating package into ROS installed from source

asked 2019-02-28 05:00:27 -0500

twdragon gravatar image

I have a problem with ROS installed on embedded SPARC machine from source. It is needed to integrate the geometry_msgs package and some others into our installation. Is there a general way to do that? Unfortunately, rosmake is not working on our platform due impossibility to detect OS and environment.

edit retag flag offensive close merge delete



You tagged this melodic, yet mention rosmake. rosmake is part of rosbuild, which is the build system that was deprecated many years ago and is virtually unused on Melodic (or any recent ROS release).

Can you clarify?

Also: could you provide a little more details about "integrate $pkg ..

gvdhoorn gravatar image gvdhoorn  ( 2019-02-28 05:04:03 -0500 )edit

.. into our installation"? Do you want to use new packages with an existing ROS installation (which happens to run on an embedded SPARC system)? Can you describe the ROS distribution that is currently installed on the target? Cross-compiled? Any particular framework used (OpenEmbedded, etc)?

gvdhoorn gravatar image gvdhoorn  ( 2019-02-28 05:06:11 -0500 )edit

We installed ROS Melodic on our non-standard SPARC system using limited debian-based Linux distribution. We have apt equipped with only very limited set of packages provided by CPU manufacturer. There are no ROS packages prebuilt. We installed ROS Melodic from source using pip and virtualenv.

twdragon gravatar image twdragon  ( 2019-02-28 06:19:42 -0500 )edit

After that we tried to build our own workspace that requires geometry_msgs. And it was impossible to build it because of missing .cmake files from geometry_msgs. This is a problem because many of our packages require geometry_msgs. So it is desirable to integrate geometry_msgs into system

twdragon gravatar image twdragon  ( 2019-02-28 06:27:58 -0500 )edit

Have you tried adding geometry_msgs to that workspace? If that would be an acceptable solution to you, that is how you could approach it. Just make sure all the (transitive) dependencies of your pkg and their dependencies are present in the workspace. You can use rosdep to check.

gvdhoorn gravatar image gvdhoorn  ( 2019-02-28 06:34:25 -0500 )edit

We installed ROS Melodic from source using pip and virtualenv.

and quite a bit of compilation I assume. ROS consists of much more than Python packages.

gvdhoorn gravatar image gvdhoorn  ( 2019-02-28 06:34:58 -0500 )edit

Also: what made you think rosmake was required / involved in all of this?

gvdhoorn gravatar image gvdhoorn  ( 2019-02-28 06:35:29 -0500 )edit

Have you tried adding geometry_msgs to that workspace?

Yes, I did. This solution is appropriate for single workspace but it is not for dozens. I think it could be very good solution to recompile .debs of shared ROS packages on our SPARC machines. Is here a tutorial to obtain .debs from source?

twdragon gravatar image twdragon  ( 2019-02-28 15:15:47 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2019-03-06 10:53:12 -0500

twdragon gravatar image

With resource-constraint embedded platforms, building off target and then transferring binaries is much more common and scalable.

According to gvdhoorn's approach, I found a workaround of package installation in building off-target. I clone the package or package set into an empty workspace's src subdirectory and then build it with simple catkin_make install. After that I have install subdirectory which contains a set of files required to run the package. Due to ROS control system peculiarities it is enough to copy the contents of install directory onto the directory in which ROS was installed. Now rospack list shows the package and one able to use it.

edit flag offensive delete link more



If you can build off-target then I would actually suggest to look into buildbot-ros or the git-buildpackage approach.

That is going to be much more scalable and managable (ie: have a package manager).

gvdhoorn gravatar image gvdhoorn  ( 2019-03-06 10:57:02 -0500 )edit

Question Tools

1 follower


Asked: 2019-02-28 05:00:27 -0500

Seen: 424 times

Last updated: Mar 06 '19