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

demmeln's profile - activity

2022-11-27 11:47:37 -0500 received badge  Great Answer (source)
2022-05-09 06:37:59 -0500 received badge  Good Answer (source)
2020-05-13 02:32:38 -0500 received badge  Great Answer (source)
2020-05-13 02:32:38 -0500 received badge  Guru (source)
2020-04-25 17:18:55 -0500 received badge  Nice Answer (source)
2020-01-05 21:39:44 -0500 received badge  Guru (source)
2020-01-05 21:39:44 -0500 received badge  Great Answer (source)
2019-12-30 03:36:50 -0500 marked best answer Maintaining a ROS source install (add packages, update release).

This is a bit of a follow up on the answer to this questions: http://answers.ros.org/question/108916/openni_launch-rosdep-on-os-x/

So assuming I have build and installed ROS (e.g. the desktop-full variant), I'm woundering how to best maintain my installation, meaning adding additional packages (which on ubuntu I would install via apt-get) and updating the whole installation to current releases (staying on the same distro, hydro in my case).

Is it possible and recommended to install to the same install space (e.g. /opt/ros/hydro) from different workspaces? E.g. I would like to add additional packages like suggested in the answer linked above. Can I build them in a freshly created workspace and install to /opt/ros/hydro? Should I instead extend my workspace with which I build the original packages installed to /opt/ros/hydro?

How would I go about upgrading my packages to the latest releases? Can I use my existing workspace and update the .rosinstall file to the latest released versions? What is the best practice here?

2019-05-02 17:34:27 -0500 commented answer Specifying CMake options for external CMake project

Makes sense. So I guess the answer is, its possible with colcon, e.g. with a colcon.pkg file (instead of package.xml) in

2019-04-30 13:36:38 -0500 commented answer Specifying CMake options for external CMake project

Wait, I think I misunderstood how the .meta files work. It should be possible with those (either with name or path).

2019-04-30 13:32:33 -0500 commented answer Specifying CMake options for external CMake project

Wait, if you use ExternalProject, you can specify any options you want in the wrapper project, no? Or are you asking how

2019-04-30 13:29:48 -0500 commented answer Specifying CMake options for external CMake project

So you can specify this in the source of the package and you can customize the defaults for that package (compared to a

2019-04-30 13:19:08 -0500 commented answer Specifying CMake options for external CMake project

Doesn't bloom allow you to include "patch files" that can tweak the defaults of options in the CMakeLists.txt as needed?

2019-04-30 13:15:20 -0500 received badge  Famous Question (source)
2019-04-30 13:15:20 -0500 received badge  Notable Question (source)
2019-04-30 13:06:31 -0500 answered a question Specifying CMake options for external CMake project

If you building your workspace with catkin_tools, you can specify cmake args (--cmake-args I believe), but the caveat is

2019-04-10 14:09:49 -0500 received badge  Famous Question (source)
2019-02-11 15:06:15 -0500 received badge  Great Answer (source)
2019-02-11 15:06:15 -0500 received badge  Guru (source)
2019-01-01 19:50:25 -0500 received badge  Good Answer (source)
2018-12-06 15:02:53 -0500 received badge  Good Answer (source)
2018-07-07 15:02:50 -0500 answered a question Automatically run tests on ROS build farm for pure cmake project

Looks for the log like it does not run make run_tests for pure cmake packages. But it does look like it runs 02:12:27

2018-05-04 06:16:59 -0500 commented answer The Good (C++11/14), the Bad (CMAKE_CXX_FLAGS) and the Ugly (cmake)

Thanks. For the record, I've had success with passing additionally -DCMAKE_CXX_STANDARD=14 in catkin config to compile l

2018-05-04 03:59:37 -0500 commented answer Use identical package.xml for ROS1 and ROS2 pkgs

Thanks for confirming the current state. Just for the record, an alternative to changing package format again would mayb

2018-05-02 03:35:31 -0500 commented answer Use identical package.xml for ROS1 and ROS2 pkgs

@William @Dirk Thomas, friendly ping about the issue concerning different build_type for mixed catkin / ament packages (

2018-05-02 03:35:22 -0500 commented answer Use identical package.xml for ROS1 and ROS2 pkgs

@Willaim @Dirk Thomas, friendly ping about the issue concerning different build_type for mixed catkin / ament packages (

2018-04-26 03:27:20 -0500 commented answer The Good (C++11/14), the Bad (CMAKE_CXX_FLAGS) and the Ugly (cmake)

@Dirk Thomas, your answer is insightful, but it is still a bit unclear to me what is the "recommended" approach for ROS

2018-04-22 17:49:11 -0500 commented answer Use identical package.xml for ROS1 and ROS2 pkgs

@William @Dirk Thomas, is there a solution in sight for the issue concerning build_type for a mixed ros1 / ros2 package?

2018-04-22 17:49:00 -0500 commented answer Use identical package.xml for ROS1 and ROS2 pkgs

@William @DirkThomas, is there a solution in sight for the issue concerning build_type for a mixed ros1 / ros2 package?

2018-04-22 17:48:44 -0500 commented answer Use identical package.xml for ROS1 and ROS2 pkgs

@William @dirk-thomas, is there a solution in sight for the issue concerning build_type for a mixed ros1 / ros2 package?

2018-04-16 03:24:39 -0500 commented answer Use identical package.xml for ROS1 and ROS2 pkgs

Btw, how do we deal with the different build_type for ros 1 and ros 2 for regular catkin / ament packages? As @nuclearsa

2018-04-16 03:22:13 -0500 commented answer Use identical package.xml for ROS1 and ROS2 pkgs

Just saw your third comment. Posted the answer by accident. The example is helpful, thanks!

2018-04-16 03:20:36 -0500 answered a question Use identical package.xml for ROS1 and ROS2 pkgs

Ah ok. I'm still unsure about the buildtool_depend. For build_type cmake, what should it be. I have seen ament_cmake, am

2018-04-15 15:17:13 -0500 commented answer Use identical package.xml for ROS1 and ROS2 pkgs

Or is there an example?

2018-04-15 15:16:58 -0500 commented answer Use identical package.xml for ROS1 and ROS2 pkgs

Ah I see. Is there documentation for plain cmake packages with ament somewhere? For example, should you add something li

2018-04-15 03:34:15 -0500 commented answer Use identical package.xml for ROS1 and ROS2 pkgs

So is there a way to use this to build pure cmake packages for both ros 1 and 2 with a single package.xml? AFAICT the re

2018-03-14 10:19:47 -0500 received badge  Good Answer (source)
2018-01-30 21:10:56 -0500 received badge  Guru (source)
2017-07-21 06:25:24 -0500 commented answer catkin_make_isolated: ImportError: No module named genmsg

You can remove build_isolated, devel_isolated and install_isolated to wipe all generated files and start a clean build.

2017-07-20 09:55:21 -0500 answered a question catkin_make_isolated: ImportError: No module named genmsg

Not sure what causes this. genmsg should be a ROS package that you have from source in your catkin workspace. Maybe try

2017-04-06 15:17:21 -0500 received badge  Good Answer (source)
2017-03-27 09:25:51 -0500 received badge  Good Answer (source)
2017-03-19 23:28:03 -0500 received badge  Nice Answer (source)
2017-03-16 11:15:18 -0500 received badge  Good Answer (source)
2017-02-23 08:27:58 -0500 received badge  Nice Answer (source)
2017-01-30 18:46:57 -0500 commented answer Releasing private catkin packages with bloom in legacy codebase

Yeah both answers by William are really great. It would be great to add those to the wiki, or at least some links to the answers here (anyone can edit the wiki ofc)...

2017-01-24 10:32:06 -0500 marked best answer Releasing private catkin packages with bloom in legacy codebase

I have the following scenario. We have a legacy codebase, all in one git-repository, with different modules and a legacy build system (in fact there are 4 different build systems already, 2 of them in daily used, qmake on Linux and vs in Windows). I want to create catkin packages for the individual modules and release them into a private rosdistro.

Because the code base will continue to be used with the legacy build system in non-ROS context, I have limited freedom to restructure and change things. I would like to be as unintrusive to the current layout and structure as possible, in order to not be faced with acceptance problems in parts of our team that are not using ROS (yet).

I have gotten as far as creating the catkin packages, making sure they work with the install space (see also a previous question) and releasing them with bloom into a private rosdistro. Now I want to build debians for the released packages (first manually, later with buildbot-ros or eventually with a private buildfarm setup). I am confronted with some issue that I will describe in the following.

The repository layout is as follows:

foo-project
├── config.h
├── external-libraries
│   └── libbar
│       └── bar.h
├── module1
│   ├── package.xml
│   ├── CMakeLists.txt
│   └── ...
├── module2
│   ├── package.xml
│   ├── CMakeLists.txt
│   ├── module2.h
│   └── ...
├── module3
│   ├── package.xml
│   ├── CMakeLists.txt
│   └── ...
├── ...
...

1. Header files outside the package directory

The first issue is that there is a header file config.h in the project root. It is included with #include "../config" in the headers of module1 (which are in turn included by other modules). I install the config.h together with the headers of module1, but I still need it to be in-reach at build-time of module1, which is not the case for the bloom-released branches, that contain only the module folder, not its parent. How could I inject this file into the bloom-released branch?

2. External library files at build time

In module1, the third party library libbar is included. It needs to be only there at build time, and not installed / exported. In the current module build-definition there is a include_directories(../external-libraries/libbar) and then in the source files of module1 it is referenced simply as #include "bar.h". Similar to the previous issue, I need to make these header files available at build time. But the difference is, that I don't need install them, and that they are not in the repository root, but in a parallel subfolder. This would make it possible to wrap them up in a foo_external_libs-dev catkin package.

3. Interdependencies between modules

Mostly the dependencies between the different modules can be mapped to a tree structure, with module1 at the root. This is reflected in the dependencies as declared in the package.xml files. However, to build the individual modules, there are unfortunately cyclic interdependencies. E.g. to build module1, module2.h is needed. When building in a catkin workspace, this works because the CMakeLists.txt of module1 has a include_directories(../module2). It is also ... (more)

2017-01-24 10:32:02 -0500 received badge  Good Question (source)