Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Play old bagfiles #69

Merged
merged 49 commits into from Dec 15, 2018

Conversation

Projects
None yet
5 participants
@Martin-Idel-SI
Copy link
Contributor

commented Nov 30, 2018

This PR adds a plugin to rosbag to play back rosbags of ros1. It relies on #70

Build instructions:

  • Have ros1 installed + have the ros1_bridge build.
  • Source ros1, then source ros2 (similar to ros1_bridge)
  • Regularly build rosbag

Technicalities:

  • This PR contains a storage plugin which opens bagfiles and can read ros1 messages in serialized form (custom format within the rcutils_uint8_array)
  • This PR contains a converter plugin which converts ros1 messages to ros2 messages provided there exists a mapping between the two.
  • ros2 bag info has a new flag -s to specify the storage format (this is necessary as rosbags from ros1 don't have a yaml file).
  • When calling ros2 bag info on a rosbag file from ros1, all contents will be shown. The user will however see a warning for all topics that cannot be played back.
  • When calling ros2 bag play, only those topics will be played back that can be converted to ros2 topics.
  • Since directly linking against melodic rosbag_storage, the PR introduces a vendor package which rebuilds rosbag_storage (prefixed by ros1_ to avoid linker confusion).
  • Conversion methods are generated similar to ros1_bridge, hence the same limitations apply as for ros1_bridge.

Known issues:

  • The build will probably throw a CMake warning about a loop in dependencies.
  • The build might not work correctly or fail to link due to the loop in dependencies.

The problem is once again libclass_loader.so. For some unknown (to me) reason, the ros1_bridge is linked against libnodeletlib.so on Linux, which in turn uses the pluginlib. This only happens on some systems, while others declare a dependency, but don't actually link it anywhere (this leads to a CMake error, but everything works smoothly).

We currently don't understand why the ros1_bridge sometimes links against libnodeletlib.so or at least finds the package. @Karsten1987 Do you have any idea?

Not in this PR:

  • Support for split bagfiles. Currently, our ros2 bag CLI can only handle one file/folder as an argument. In order to use split bagfiles, several arguments must be given. We don't support it for now.
  • Windows support. Since we rely in ros 1 code as well as the ros1_bridge, this won't happen.

Decisions:

  • Currently, rosbag2 will throw a couple of CMake warnings if ros1 is not found (code inspired from ros1_bridge). Is this the desired behaviour? Or should we only build if some cmake-args are set?
  • The vendor packages uses the current commit hash for master and adds some patches. Should we switch to a published version?

@tfoote tfoote added the in review label Nov 30, 2018

@Martin-Idel-SI Martin-Idel-SI force-pushed the bsinno:feature/play_old_bagfiles branch from 3043a5f to 1f8c50c Dec 5, 2018

@Martin-Idel-SI

This comment has been minimized.

Copy link
Contributor Author

commented Dec 5, 2018

I updated the PR and changed the description. There is a major problem left to be sorted out. Why does the ros1_bridge link against libnodeletlib.so on some systems?

@Karsten1987

This comment has been minimized.

Copy link
Contributor

commented Dec 6, 2018

Why does the ros1_bridge link against libnodeletlib.so on some systems?

@dirk-thomas does that tell you anything?

Show resolved Hide resolved ros1_rosbag_storage_vendor/CMakeLists.txt
Show resolved Hide resolved ros1_rosbag_storage_vendor/CMakeLists.txt Outdated
Show resolved Hide resolved ros1_rosbag_storage_vendor/cmake/CMakeLists.txt.in
Show resolved Hide resolved ros1_rosbag_storage_vendor/cmake/CMakeLists.txt.in Outdated
+ <build_depend>ros1_bridge</build_depend>
<build_depend>boost</build_depend>
<build_depend>bzip2</build_depend>
- <build_depend version_gte="0.3.17">cpp_common</build_depend>

This comment has been minimized.

Copy link
@Karsten1987

Karsten1987 Dec 6, 2018

Contributor

why aren't these deps necessary?

This comment has been minimized.

Copy link
@Martin-Idel-SI

Martin-Idel-SI Dec 6, 2018

Author Contributor

This is similar to what the ros1_bridge does:

From my understanding from the discussion with Dirk Thomas on the ros1_bridge PR:

  • We only find_package, ament_export_dependencies and put into the package.xml all dependencies to ros2 packages and non-ROS packages (like bzip2 and boost).
  • All ros1 packages are found by the find_ros1_package. This ensures that the dependency tree does not get confused between ros2 and ros1 packages, which don't play nice together.
  • At the moment (no environment hooks present) this also means that all consuming downstream packages need to find those dependencies again. This is not nice but can be amended by registering the correct hooks to ament_package (however, I don't understand the process well enough to do this with limited time)

@Martin-Idel-SI Martin-Idel-SI force-pushed the bsinno:feature/play_old_bagfiles branch 2 times, most recently from e82cbeb to 0e2252e Dec 6, 2018

@Martin-Idel-SI

This comment has been minimized.

Copy link
Contributor Author

commented Dec 6, 2018

Here is a longer description of the problems with this build:

Short version:

On some systems, the build tries to find libnodeletlib.so. This is linked against libclass_loader.so from ROS 1, which is bad, so CMake generates a warning.

On yet other systems, the build actually links against libnodeletlib.so, because the ros1_bridge is linked against it. This results in crashes at runtime, because the libnodeletlib.so tries to access symbols from libclass_loader.so thinking it's the ROS 1 version where it is sadly the ROS 2 version. As the two are not ABI-compatible, it's game over.

Long version:

System 1: It works but I get CMake warnings.

System specs:

  • Ubuntu 18.04 bionic beaver
  • ROS 1 binaries ros-melodic-ros-base
  • ROS 2 source build with current master build merge-install

CMake problems:

CMakeLists output for package rosbag2_bag_v2_plugins:

CMake Warning at /home/martin/gitRepos/ros2_master/install/share/ament_cmake_gmock/cmake/ament_add_gmock.cmake:67 (add_executable):
  Cannot generate a safe runtime search path for target
  test_rosbag_v2_storage because there is a cycle in the constraint graph:

    dir 0 is [/home/martin/gitRepos/rosbag/build/rosbag2_bag_v2_plugins]
    dir 1 is [/home/martin/gitRepos/ros2_master/install/lib]
      dir 6 must precede it due to runtime library [libclass_loader.so]
    dir 2 is [/home/martin/gitRepos/rosbag/install/ros1_rosbag_storage_vendor/lib]
    dir 3 is [/home/martin/gitRepos/rosbag/install/rosbag2/lib]
    dir 4 is [/home/martin/gitRepos/rosbag/install/rosbag2_storage/lib]
    dir 5 is [/home/martin/gitRepos/ros2_master/install/opt/yaml_cpp_vendor/lib]
    dir 6 is [/opt/ros/melodic/lib]
      dir 1 must precede it due to runtime library [libclass_loader.so]

But: Everything works. The test that generates the warning (there are a few other tests with the same warning) run without a hitch.

Analysis:

The problem seems to be (justification following in part 2) the call to nodeletlib. Here is the beginning of the CMake output generating the warning above - I highlighted the nodeletlib search by inserting blank lines

-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found ament_cmake: 0.6.0 (/home/martin/gitRepos/ros2_master/install/share/ament_cmake/cmake)
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.6.7", minimum required is "3") 
-- Using PYTHON_EXECUTABLE: /usr/bin/python3
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") 
-- Found ros1_bridge: 0.5.1 (/home/martin/gitRepos/ros2_master/install/share/ros1_bridge/cmake)
-- Checking for module 'roscpp'
--   Found roscpp, version 1.14.3
-- Found pluginlib: 2.2.0 (/home/martin/gitRepos/ros2_master/install/share/pluginlib/cmake)
-- Found poco_vendor:  (/home/martin/gitRepos/ros2_master/install/share/poco_vendor/cmake)
-- Found tinyxml2: /usr/lib/x86_64-linux-gnu/libtinyxml2.so  
-- Found rclcpp: 0.6.0 (/home/martin/gitRepos/ros2_master/install/share/rclcpp/cmake)
-- Found rosidl_adapter: 0.6.0 (/home/martin/gitRepos/ros2_master/install/share/rosidl_adapter/cmake)
-- Found rmw_implementation_cmake: 0.6.0 (/home/martin/gitRepos/ros2_master/install/share/rmw_implementation_cmake/cmake)
-- Found rosbag2: 0.0.0 (/home/martin/gitRepos/rosbag/install/rosbag2/share/rosbag2/cmake)
-- Setting yaml-cpp_DIR to: '/home/martin/gitRepos/ros2_master/install/share/yaml_cpp_vendor/cmake/../../../opt/yaml_cpp_vendor/lib/cmake/yaml-cpp'
-- Found ros1_rosbag_storage: 1.14.3 (/home/martin/gitRepos/rosbag/install/ros1_rosbag_storage_vendor/share/ros1_rosbag_storage/cmake)
-- Checking for module 'cpp_common'
--   Found cpp_common, version 0.6.11
-- Checking for module 'roscpp_serialization'
--   Found roscpp_serialization, version 0.6.11
-- Checking for module 'roscpp_traits'
--   Found roscpp_traits, version 0.6.11
-- Checking for module 'rostime'
--   Found rostime, version 0.6.11
-- Checking for module 'roslz4'
--   Found roslz4, version 1.14.3
-- Checking for module 'actionlib'
--   Found actionlib, version 1.11.13
-- Checking for module 'actionlib_msgs'
--   Found actionlib_msgs, version 1.12.7
-- Checking for module 'bond'
--   Found bond, version 1.8.3
-- Checking for module 'diagnostic_msgs'
--   Found diagnostic_msgs, version 1.12.7
-- Checking for module 'dynamic_reconfigure'
--   Found dynamic_reconfigure, version 1.6.0
-- Checking for module 'geometry_msgs'
--   Found geometry_msgs, version 1.12.7
-- Checking for module 'nav_msgs'
--   Found nav_msgs, version 1.12.7
-- Checking for module 'rosgraph_msgs'
--   Found rosgraph_msgs, version 1.11.2
-- Checking for module 'sensor_msgs'
--   Found sensor_msgs, version 1.12.7
-- Checking for module 'shape_msgs'
--   Found shape_msgs, version 1.12.7
-- Checking for module 'std_msgs'
--   Found std_msgs, version 0.5.11
-- Checking for module 'stereo_msgs'
--   Found stereo_msgs, version 1.12.7
-- Checking for module 'trajectory_msgs'
--   Found trajectory_msgs, version 1.12.7
-- Checking for module 'visualization_msgs'
--   Found visualization_msgs, version 1.12.7

-- Checking for module 'nodelet'
--   Found nodelet, version 1.9.16

-- Checking for module 'std_srvs'
--   Found std_srvs, version 1.11.2
-- Checking for module 'topic_tools'
--   Found topic_tools, version 1.14.3
-- Found action_msgs: 0.6.0 (/home/martin/gitRepos/ros2_master/install/share/action_msgs/cmake)
-- Found action_msgs: 0.6.0 (/home/martin/gitRepos/ros2_master/install/share/action_msgs/cmake)
-- Found actionlib_msgs: 0.6.0 (/home/martin/gitRepos/ros2_master/install/share/actionlib_msgs/cmake)
-- Found actionlib_msgs: 0.6.0 (/home/martin/gitRepos/ros2_master/install/share/actionlib_msgs/cmake)

However, nodeletlib, albeit wanted, isn't actually linked. This is the lddtree output from librosbag2_bag_v2_plugins.so after sourcing both ROS 1 and ROS 2 including rosbag:

librosbag2_bag_v2_plugins.so => install/rosbag2_bag_v2_plugins/lib/librosbag2_bag_v2_plugins.so (interpreter => none)
    libros1_rosbag_storage.so => /home/martin/gitRepos/rosbag/install/ros1_rosbag_storage_vendor/lib/libros1_rosbag_storage.so
        libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0
        libament_index_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/libament_index_cpp.so
        libtinyxml2.so.6 => /usr/lib/x86_64-linux-gnu/libtinyxml2.so.6
        libroslz4.so => /opt/ros/melodic/lib/libroslz4.so
            liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
            ld-linux-x86-64.so.2 => /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
    librosbag2.so => /home/martin/gitRepos/rosbag/install/rosbag2/lib/librosbag2.so
        libPocoFoundation.so.50 => /usr/lib/libPocoFoundation.so.50
            libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
            librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
            libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3
            libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1
    librosbag2_storage.so => /home/martin/gitRepos/rosbag/install/rosbag2_storage/lib/librosbag2_storage.so
        libyaml-cpp.so.0.6 => /home/martin/gitRepos/ros2_master/install/opt/yaml_cpp_vendor/lib/libyaml-cpp.so.0.6
    libros1_bridge.so => /home/martin/gitRepos/ros2_master/install/lib/libros1_bridge.so
        libactionlib_msgs__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/libactionlib_msgs__rosidl_typesupport_cpp.so
            librosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/librosidl_typesupport_cpp.so
        libdiagnostic_msgs__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/libdiagnostic_msgs__rosidl_typesupport_cpp.so
        libnav_msgs__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/libnav_msgs__rosidl_typesupport_cpp.so
        libshape_msgs__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/libshape_msgs__rosidl_typesupport_cpp.so
        libstd_srvs__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/libstd_srvs__rosidl_typesupport_cpp.so
        libsensor_msgs__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/libsensor_msgs__rosidl_typesupport_cpp.so
        libstereo_msgs__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/libstereo_msgs__rosidl_typesupport_cpp.so
        libtrajectory_msgs__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/libtrajectory_msgs__rosidl_typesupport_cpp.so
        libgeometry_msgs__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/libgeometry_msgs__rosidl_typesupport_cpp.so
        libstd_msgs__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/libstd_msgs__rosidl_typesupport_cpp.so
        libvisualization_msgs__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/libvisualization_msgs__rosidl_typesupport_cpp.so
        librclcpp.so => /home/martin/gitRepos/ros2_master/install/lib/librclcpp.so
            librcl_interfaces__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/librcl_interfaces__rosidl_typesupport_cpp.so
            librmw.so => /home/martin/gitRepos/ros2_master/install/lib/librmw.so
            librcl_yaml_param_parser.so => /home/martin/gitRepos/ros2_master/install/lib/librcl_yaml_param_parser.so
                libyaml.so => /home/martin/gitRepos/ros2_master/install/lib/libyaml.so
        librcl.so => /home/martin/gitRepos/ros2_master/install/lib/librcl.so
        librmw_implementation.so => /home/martin/gitRepos/ros2_master/install/lib/librmw_implementation.so
        libbuiltin_interfaces__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/libbuiltin_interfaces__rosidl_typesupport_cpp.so
        librosgraph_msgs__rosidl_typesupport_cpp.so => /home/martin/gitRepos/ros2_master/install/lib/librosgraph_msgs__rosidl_typesupport_cpp.so
        librosconsole.so => /opt/ros/melodic/lib/librosconsole.so
            librosconsole_log4cxx.so => /opt/ros/melodic/lib/librosconsole_log4cxx.so
            librosconsole_backend_interface.so => /opt/ros/melodic/lib/librosconsole_backend_interface.so
            liblog4cxx.so.10 => /usr/lib/x86_64-linux-gnu/liblog4cxx.so.10
                libapr-1.so.0 => /usr/lib/x86_64-linux-gnu/libapr-1.so.0
                    libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1
                libaprutil-1.so.0 => /usr/lib/x86_64-linux-gnu/libaprutil-1.so.0
                    libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1
                    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1
            libboost_system.so.1.65.1 => /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1
            libboost_regex.so.1.65.1 => /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1
                libicui18n.so.60 => /usr/lib/x86_64-linux-gnu/libicui18n.so.60
                libicuuc.so.60 => /usr/lib/x86_64-linux-gnu/libicuuc.so.60
                    libicudata.so.60 => /usr/lib/x86_64-linux-gnu/libicudata.so.60
    libconsole_bridge.so.0.4 => /home/martin/gitRepos/ros2_master/install/lib/libconsole_bridge.so.0.4
    libclass_loader.so => /home/martin/gitRepos/ros2_master/install/lib/libclass_loader.so
    librcutils.so => /home/martin/gitRepos/ros2_master/install/lib/librcutils.so
    libroscpp.so => /opt/ros/melodic/lib/libroscpp.so
        libxmlrpcpp.so => /opt/ros/melodic/lib/libxmlrpcpp.so
        libboost_thread.so.1.65.1 => /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
        libboost_chrono.so.1.65.1 => /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.65.1
        libboost_filesystem.so.1.65.1 => /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1
    libroscpp_serialization.so => /opt/ros/melodic/lib/libroscpp_serialization.so
    librostime.so => /opt/ros/melodic/lib/librostime.so
    libcpp_common.so => /opt/ros/melodic/lib/libcpp_common.so
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6

So: No nodelets and everything works fine. Why do I think that those are the problem?

System 2: It doesn't link (with test) or doesn't run (without tests)

System specs:

  • Debian 4.9.110-3+deb9u1
  • ROS 1 binaries ros-melodic-ros-base
  • ROS 2 source build with current master build isolated

CMake problems:

CMakeLists outputs the same problems for package rosbag2_bag_v2_plugins as above. The paths are just a little more telling because the build is isolated:

  Cannot generate a safe runtime search path for target
  rosbag2_bag_v2_plugins because there is a cycle in the constraint graph:

    dir 0 is [/var/lib/jenkins-slave/workspace/ros2_rosbag2_feature_play_old_bagfiles_linux/install/ros1_rosbag_storage_vendor/lib]
    dir 1 is [/usr/local/src/ros2_ws/install/rclcpp/lib]
    dir 2 is [/usr/local/src/ros2_ws/install/rcl/lib]
    dir 3 is [/usr/local/src/ros2_ws/install/rmw_implementation/lib]
    dir 4 is [/usr/local/src/ros2_ws/install/rmw/lib]
    dir 5 is [/usr/local/src/ros2_ws/install/rcl_yaml_param_parser/lib]
    dir 6 is [/var/lib/jenkins-slave/workspace/ros2_rosbag2_feature_play_old_bagfiles_linux/install/rosbag2/lib]
    dir 7 is [/var/lib/jenkins-slave/workspace/ros2_rosbag2_feature_play_old_bagfiles_linux/install/rosbag2_storage/lib]
    dir 8 is [/usr/local/src/ros2_ws/install/yaml_cpp_vendor/opt/yaml_cpp_vendor/lib]
    dir 9 is [/usr/local/src/ros2_ws/install/ros1_bridge/lib]
    dir 10 is [/usr/local/src/ros2_ws/install/ament_index_cpp/lib]
    dir 11 is [/usr/local/src/ros2_ws/install/poco_vendor/lib]
    dir 12 is [/usr/local/src/ros2_ws/install/console_bridge_vendor/lib]
    dir 13 is [/usr/local/src/ros2_ws/install/class_loader/lib]
      dir 15 must precede it due to runtime library [libclass_loader.so]
    dir 14 is [/usr/local/src/ros2_ws/install/rcutils/lib]
    dir 15 is [/opt/ros/melodic/lib]
      dir 13 must precede it due to runtime library [libclass_loader.so]
    dir 16 is [/usr/local/src/ros2_ws/install/visualization_msgs/lib]
    dir 17 is [/usr/local/src/ros2_ws/install/test_msgs/lib]
  ...

However, this time the tests don't link:

/opt/ros/melodic/lib/libnodeletlib.so: undefined reference to `class_loader::MultiLibraryClassLoader::getAllAvailableClassLoaders()'
/opt/ros/melodic/lib/libnodeletlib.so: undefined reference to `class_loader::impl::AbstractMetaObjectBase::isOwnedBy(class_loader::ClassLoader const*)'
/opt/ros/melodic/lib/libnodeletlib.so: undefined reference to `class_loader::MultiLibraryClassLoader::getRegisteredLibraries[abi:cxx11]()'
/opt/ros/melodic/lib/libnodeletlib.so: undefined reference to `class_loader::ClassLoader::isLibraryLoaded()'

Analysis:

The error speaks for itself: nodeletlib can't be linked against class_loader. The path above indicates that the ros2 class loader will be used to link against and obviously, this has to fail.

If we don't build the tests, everything gets build, because the final linking is only done at startup time. That's when the problem resurfaces with a very nice crash.

So, what's the difference? The CMake output of the build is similar to the first system - we search and find the module nodeletlib. However, this time, the library rosbag2_bag_v2_plugins.so is linked completely differently - because the bridge is linked completely differently. Here is the start of the CMake output and lddtree output from ros1_bridge - again, I highlighted the nodelet outputs by inserting blank lines.

-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found rmw: 0.6.0 (/usr/local/src/ros2_ws/install/rmw/share/rmw/cmake)
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.5.3", minimum required is "3") 
-- Using PYTHON_EXECUTABLE: /usr/bin/python3
-- Override CMake install command with custom implementation using symlinks instead of copying resources
-- Found rosidl_adapter: 0.6.0 (/usr/local/src/ros2_ws/install/rosidl_adapter/share/rosidl_adapter/cmake)
-- Found rclcpp: 0.6.0 (/usr/local/src/ros2_ws/install/rclcpp/share/rclcpp/cmake)
-- Found rmw_implementation_cmake: 0.6.0 (/usr/local/src/ros2_ws/install/rmw_implementation_cmake/share/rmw_implementation_cmake/cmake)
-- Found std_msgs: 0.6.0 (/usr/local/src/ros2_ws/install/std_msgs/share/std_msgs/cmake)
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29") 
-- Checking for module 'roscpp'
--   Found roscpp, version 1.14.3
-- Checking for module 'std_msgs'
--   Found std_msgs, version 0.5.11
-- Checking for module 'actionlib'
--   Found actionlib, version 1.11.13
-- Checking for module 'actionlib_msgs'
--   Found actionlib_msgs, version 1.12.6
-- Checking for module 'bond'
--   Found bond, version 1.8.3
-- Checking for module 'diagnostic_msgs'
--   Found diagnostic_msgs, version 1.12.6
-- Checking for module 'dynamic_reconfigure'
--   Found dynamic_reconfigure, version 1.6.0
-- Checking for module 'geometry_msgs'
--   Found geometry_msgs, version 1.12.6
-- Checking for module 'nav_msgs'
--   Found nav_msgs, version 1.12.6
-- Checking for module 'rosgraph_msgs'
--   Found rosgraph_msgs, version 1.11.2
-- Checking for module 'sensor_msgs'
--   Found sensor_msgs, version 1.12.6
-- Checking for module 'shape_msgs'
--   Found shape_msgs, version 1.12.6
-- Checking for module 'stereo_msgs'
--   Found stereo_msgs, version 1.12.6
-- Checking for module 'trajectory_msgs'
--   Found trajectory_msgs, version 1.12.6
-- Checking for module 'visualization_msgs'
--   Found visualization_msgs, version 1.12.6

-- Checking for module 'nodelet'
--   Found nodelet, version 1.9.16

libros1_bridge.so => /usr/local/src/ros2_ws/install/ros1_bridge/lib/libros1_bridge.so (interpreter => none)
    libactionlib.so => /opt/ros/melodic/lib/libactionlib.so
    libdynamic_reconfigure_config_init_mutex.so => /opt/ros/melodic/lib/libdynamic_reconfigure_config_init_mutex.so

    libnodeletlib.so => /opt/ros/melodic/lib/libnodeletlib.so

    libbondcpp.so => /opt/ros/melodic/lib/libbondcpp.so
        libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1
    libclass_loader.so => /opt/ros/melodic/lib/libclass_loader.so
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
    libroslib.so => /opt/ros/melodic/lib/libroslib.so
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
    librospack.so => /opt/ros/melodic/lib/librospack.so
    libPocoFoundation.so.46 => /usr/lib/libPocoFoundation.so.46
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1
    libpython2.7.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
        libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1
    libboost_program_options.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.62.0
    libtinyxml2.so.4 => /usr/lib/x86_64-linux-gnu/libtinyxml2.so.4
    libtopic_tools.so => /opt/ros/melodic/lib/libtopic_tools.so
    liblogging_demo__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/logging_demo/lib/liblogging_demo__rosidl_typesupport_cpp.so
    liblogging_demo__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/logging_demo/lib/liblogging_demo__rosidl_typesupport_c.so
    liblogging_demo__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/logging_demo/lib/liblogging_demo__rosidl_typesupport_introspection_cpp.so
    liblogging_demo__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/logging_demo/lib/liblogging_demo__rosidl_generator_c.so
    liblogging_demo__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/logging_demo/lib/liblogging_demo__rosidl_typesupport_introspection_c.so
    liblogging_demo__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/logging_demo/lib/liblogging_demo__rosidl_typesupport_fastrtps_c.so
        librosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/rosidl_typesupport_fastrtps_cpp/lib/librosidl_typesupport_fastrtps_cpp.so
        librosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/rosidl_typesupport_fastrtps_c/lib/librosidl_typesupport_fastrtps_c.so
        libfastrtps.so.1 => /usr/local/src/ros2_ws/install/fastrtps/lib/libfastrtps.so.1
        libfastcdr.so.1 => /usr/local/src/ros2_ws/install/fastcdr/lib/libfastcdr.so.1
    liblogging_demo__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/logging_demo/lib/liblogging_demo__rosidl_typesupport_fastrtps_cpp.so
    libcomposition__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/composition/lib/libcomposition__rosidl_typesupport_cpp.so
    libcomposition__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/composition/lib/libcomposition__rosidl_typesupport_c.so
    libcomposition__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/composition/lib/libcomposition__rosidl_typesupport_introspection_cpp.so
    libcomposition__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/composition/lib/libcomposition__rosidl_generator_c.so
    libcomposition__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/composition/lib/libcomposition__rosidl_typesupport_introspection_c.so
    libcomposition__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/composition/lib/libcomposition__rosidl_typesupport_fastrtps_c.so
    libcomposition__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/composition/lib/libcomposition__rosidl_typesupport_fastrtps_cpp.so
    libstereo_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/stereo_msgs/lib/libstereo_msgs__rosidl_typesupport_c.so
    libstereo_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/stereo_msgs/lib/libstereo_msgs__rosidl_typesupport_cpp.so
    libstereo_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/stereo_msgs/lib/libstereo_msgs__rosidl_typesupport_fastrtps_c.so
    libstereo_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/stereo_msgs/lib/libstereo_msgs__rosidl_generator_c.so
    libstereo_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/stereo_msgs/lib/libstereo_msgs__rosidl_typesupport_fastrtps_cpp.so
    libstereo_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/stereo_msgs/lib/libstereo_msgs__rosidl_typesupport_introspection_c.so
    libstereo_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/stereo_msgs/lib/libstereo_msgs__rosidl_typesupport_introspection_cpp.so
    libmap_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/map_msgs/lib/libmap_msgs__rosidl_typesupport_c.so
    libmap_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/map_msgs/lib/libmap_msgs__rosidl_typesupport_cpp.so
    libmap_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/map_msgs/lib/libmap_msgs__rosidl_typesupport_fastrtps_c.so
    libmap_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/map_msgs/lib/libmap_msgs__rosidl_generator_c.so
    libmap_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/map_msgs/lib/libmap_msgs__rosidl_typesupport_fastrtps_cpp.so
    libmap_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/map_msgs/lib/libmap_msgs__rosidl_typesupport_introspection_c.so
    libmap_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/map_msgs/lib/libmap_msgs__rosidl_typesupport_introspection_cpp.so
    libvisualization_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/visualization_msgs/lib/libvisualization_msgs__rosidl_typesupport_cpp.so
    libvisualization_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/visualization_msgs/lib/libvisualization_msgs__rosidl_typesupport_c.so
    libvisualization_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/visualization_msgs/lib/libvisualization_msgs__rosidl_typesupport_introspection_cpp.so
    libvisualization_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/visualization_msgs/lib/libvisualization_msgs__rosidl_generator_c.so
    libvisualization_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/visualization_msgs/lib/libvisualization_msgs__rosidl_typesupport_introspection_c.so
    libvisualization_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/visualization_msgs/lib/libvisualization_msgs__rosidl_typesupport_fastrtps_c.so
    libvisualization_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/visualization_msgs/lib/libvisualization_msgs__rosidl_typesupport_fastrtps_cpp.so
    libtrajectory_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/trajectory_msgs/lib/libtrajectory_msgs__rosidl_typesupport_cpp.so
    libtrajectory_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/trajectory_msgs/lib/libtrajectory_msgs__rosidl_typesupport_c.so
    libtrajectory_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/trajectory_msgs/lib/libtrajectory_msgs__rosidl_typesupport_introspection_cpp.so
    libtrajectory_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/trajectory_msgs/lib/libtrajectory_msgs__rosidl_generator_c.so
    libtrajectory_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/trajectory_msgs/lib/libtrajectory_msgs__rosidl_typesupport_introspection_c.so
    libtrajectory_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/trajectory_msgs/lib/libtrajectory_msgs__rosidl_typesupport_fastrtps_c.so
    libtrajectory_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/trajectory_msgs/lib/libtrajectory_msgs__rosidl_typesupport_fastrtps_cpp.so
    libtf2_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/tf2_msgs/lib/libtf2_msgs__rosidl_typesupport_c.so
    libtf2_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/tf2_msgs/lib/libtf2_msgs__rosidl_typesupport_cpp.so
    libtf2_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/tf2_msgs/lib/libtf2_msgs__rosidl_typesupport_fastrtps_c.so
    libtf2_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/tf2_msgs/lib/libtf2_msgs__rosidl_generator_c.so
    libtf2_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/tf2_msgs/lib/libtf2_msgs__rosidl_typesupport_fastrtps_cpp.so
    libtf2_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/tf2_msgs/lib/libtf2_msgs__rosidl_typesupport_introspection_c.so
    libtf2_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/tf2_msgs/lib/libtf2_msgs__rosidl_typesupport_introspection_cpp.so
    libshape_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/shape_msgs/lib/libshape_msgs__rosidl_typesupport_cpp.so
    libshape_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/shape_msgs/lib/libshape_msgs__rosidl_typesupport_c.so
    libshape_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/shape_msgs/lib/libshape_msgs__rosidl_typesupport_introspection_cpp.so
    libshape_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/shape_msgs/lib/libshape_msgs__rosidl_generator_c.so
    libshape_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/shape_msgs/lib/libshape_msgs__rosidl_typesupport_introspection_c.so
    libshape_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/shape_msgs/lib/libshape_msgs__rosidl_typesupport_fastrtps_c.so
    libshape_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/shape_msgs/lib/libshape_msgs__rosidl_typesupport_fastrtps_cpp.so
    libsensor_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/sensor_msgs/lib/libsensor_msgs__rosidl_typesupport_cpp.so
    libsensor_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/sensor_msgs/lib/libsensor_msgs__rosidl_typesupport_c.so
    libsensor_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/sensor_msgs/lib/libsensor_msgs__rosidl_typesupport_introspection_cpp.so
    libsensor_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/sensor_msgs/lib/libsensor_msgs__rosidl_generator_c.so
    libsensor_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/sensor_msgs/lib/libsensor_msgs__rosidl_typesupport_introspection_c.so
    libsensor_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/sensor_msgs/lib/libsensor_msgs__rosidl_typesupport_fastrtps_c.so
    libsensor_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/sensor_msgs/lib/libsensor_msgs__rosidl_typesupport_fastrtps_cpp.so
    libnav_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/nav_msgs/lib/libnav_msgs__rosidl_typesupport_cpp.so
    libnav_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/nav_msgs/lib/libnav_msgs__rosidl_typesupport_c.so
    libnav_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/nav_msgs/lib/libnav_msgs__rosidl_typesupport_introspection_cpp.so
    libnav_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/nav_msgs/lib/libnav_msgs__rosidl_generator_c.so
    libnav_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/nav_msgs/lib/libnav_msgs__rosidl_typesupport_introspection_c.so
    libnav_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/nav_msgs/lib/libnav_msgs__rosidl_typesupport_fastrtps_c.so
    libnav_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/nav_msgs/lib/libnav_msgs__rosidl_typesupport_fastrtps_cpp.so
    libdiagnostic_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/diagnostic_msgs/lib/libdiagnostic_msgs__rosidl_typesupport_c.so
    libdiagnostic_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/diagnostic_msgs/lib/libdiagnostic_msgs__rosidl_typesupport_cpp.so
    libdiagnostic_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/diagnostic_msgs/lib/libdiagnostic_msgs__rosidl_typesupport_fastrtps_c.so
    libdiagnostic_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/diagnostic_msgs/lib/libdiagnostic_msgs__rosidl_generator_c.so
    libdiagnostic_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/diagnostic_msgs/lib/libdiagnostic_msgs__rosidl_typesupport_fastrtps_cpp.so
    libdiagnostic_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/diagnostic_msgs/lib/libdiagnostic_msgs__rosidl_typesupport_introspection_c.so
    libdiagnostic_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/diagnostic_msgs/lib/libdiagnostic_msgs__rosidl_typesupport_introspection_cpp.so
    libtest_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/test_msgs/lib/libtest_msgs__rosidl_typesupport_cpp.so
    libtest_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/test_msgs/lib/libtest_msgs__rosidl_typesupport_c.so
    libtest_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/test_msgs/lib/libtest_msgs__rosidl_typesupport_introspection_cpp.so
    libtest_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/test_msgs/lib/libtest_msgs__rosidl_generator_c.so
    libtest_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/test_msgs/lib/libtest_msgs__rosidl_typesupport_introspection_c.so
    libtest_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/test_msgs/lib/libtest_msgs__rosidl_typesupport_fastrtps_c.so
    libtest_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/test_msgs/lib/libtest_msgs__rosidl_typesupport_fastrtps_cpp.so
    libtest_msgs__rosidl_typesupport_cpp__generate_action_interfaces.so => /usr/local/src/ros2_ws/install/test_msgs/lib/libtest_msgs__rosidl_typesupport_cpp__generate_action_interfaces.so
    libtest_msgs__rosidl_typesupport_c__generate_action_interfaces.so => /usr/local/src/ros2_ws/install/test_msgs/lib/libtest_msgs__rosidl_typesupport_c__generate_action_interfaces.so
    libgeometry_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/geometry_msgs/lib/libgeometry_msgs__rosidl_typesupport_c.so
    libgeometry_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/geometry_msgs/lib/libgeometry_msgs__rosidl_typesupport_cpp.so
    libgeometry_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/geometry_msgs/lib/libgeometry_msgs__rosidl_typesupport_fastrtps_c.so
    libgeometry_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/geometry_msgs/lib/libgeometry_msgs__rosidl_generator_c.so
    libgeometry_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/geometry_msgs/lib/libgeometry_msgs__rosidl_typesupport_fastrtps_cpp.so
    libgeometry_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/geometry_msgs/lib/libgeometry_msgs__rosidl_typesupport_introspection_c.so
    libgeometry_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/geometry_msgs/lib/libgeometry_msgs__rosidl_typesupport_introspection_cpp.so
    libexample_interfaces__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/example_interfaces/lib/libexample_interfaces__rosidl_typesupport_cpp.so
    libexample_interfaces__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/example_interfaces/lib/libexample_interfaces__rosidl_typesupport_c.so
    libexample_interfaces__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/example_interfaces/lib/libexample_interfaces__rosidl_typesupport_introspection_cpp.so
    libexample_interfaces__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/example_interfaces/lib/libexample_interfaces__rosidl_generator_c.so
    libexample_interfaces__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/example_interfaces/lib/libexample_interfaces__rosidl_typesupport_introspection_c.so
    libexample_interfaces__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/example_interfaces/lib/libexample_interfaces__rosidl_typesupport_fastrtps_c.so
    libexample_interfaces__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/example_interfaces/lib/libexample_interfaces__rosidl_typesupport_fastrtps_cpp.so
    libexample_interfaces__rosidl_typesupport_cpp__generate_action_interfaces.so => /usr/local/src/ros2_ws/install/example_interfaces/lib/libexample_interfaces__rosidl_typesupport_cpp__generate_action_interfaces.so
    libexample_interfaces__rosidl_typesupport_c__generate_action_interfaces.so => /usr/local/src/ros2_ws/install/example_interfaces/lib/libexample_interfaces__rosidl_typesupport_c__generate_action_interfaces.so
    libactionlib_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/actionlib_msgs/lib/libactionlib_msgs__rosidl_typesupport_cpp.so
    libactionlib_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/actionlib_msgs/lib/libactionlib_msgs__rosidl_typesupport_c.so
    libactionlib_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/actionlib_msgs/lib/libactionlib_msgs__rosidl_typesupport_introspection_cpp.so
    libactionlib_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/actionlib_msgs/lib/libactionlib_msgs__rosidl_generator_c.so
    libactionlib_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/actionlib_msgs/lib/libactionlib_msgs__rosidl_typesupport_introspection_c.so
    libactionlib_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/actionlib_msgs/lib/libactionlib_msgs__rosidl_typesupport_fastrtps_c.so
    libactionlib_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/actionlib_msgs/lib/libactionlib_msgs__rosidl_typesupport_fastrtps_cpp.so
    libstd_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/std_msgs/lib/libstd_msgs__rosidl_typesupport_cpp.so
    libstd_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/std_msgs/lib/libstd_msgs__rosidl_typesupport_c.so
    libstd_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/std_msgs/lib/libstd_msgs__rosidl_typesupport_introspection_cpp.so
    libstd_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/std_msgs/lib/libstd_msgs__rosidl_generator_c.so
    libstd_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/std_msgs/lib/libstd_msgs__rosidl_typesupport_introspection_c.so
    libstd_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/std_msgs/lib/libstd_msgs__rosidl_typesupport_fastrtps_c.so
    libstd_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/std_msgs/lib/libstd_msgs__rosidl_typesupport_fastrtps_cpp.so
    libpendulum_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/pendulum_msgs/lib/libpendulum_msgs__rosidl_typesupport_cpp.so
    libpendulum_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/pendulum_msgs/lib/libpendulum_msgs__rosidl_typesupport_c.so
    libpendulum_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/pendulum_msgs/lib/libpendulum_msgs__rosidl_typesupport_introspection_cpp.so
    libpendulum_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/pendulum_msgs/lib/libpendulum_msgs__rosidl_generator_c.so
    libpendulum_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/pendulum_msgs/lib/libpendulum_msgs__rosidl_typesupport_introspection_c.so
    libpendulum_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/pendulum_msgs/lib/libpendulum_msgs__rosidl_typesupport_fastrtps_c.so
    libpendulum_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/pendulum_msgs/lib/libpendulum_msgs__rosidl_typesupport_fastrtps_cpp.so
    libaction_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/action_msgs/lib/libaction_msgs__rosidl_typesupport_cpp.so
    libaction_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/action_msgs/lib/libaction_msgs__rosidl_typesupport_c.so
    libaction_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/action_msgs/lib/libaction_msgs__rosidl_typesupport_introspection_cpp.so
    libaction_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/action_msgs/lib/libaction_msgs__rosidl_generator_c.so
    libaction_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/action_msgs/lib/libaction_msgs__rosidl_typesupport_introspection_c.so
    libaction_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/action_msgs/lib/libaction_msgs__rosidl_typesupport_fastrtps_c.so
    libaction_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/action_msgs/lib/libaction_msgs__rosidl_typesupport_fastrtps_cpp.so
    libunique_identifier_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/unique_identifier_msgs/lib/libunique_identifier_msgs__rosidl_typesupport_c.so
    libunique_identifier_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/unique_identifier_msgs/lib/libunique_identifier_msgs__rosidl_typesupport_cpp.so
    libunique_identifier_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/unique_identifier_msgs/lib/libunique_identifier_msgs__rosidl_typesupport_fastrtps_c.so
    libunique_identifier_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/unique_identifier_msgs/lib/libunique_identifier_msgs__rosidl_generator_c.so
    libunique_identifier_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/unique_identifier_msgs/lib/libunique_identifier_msgs__rosidl_typesupport_fastrtps_cpp.so
    libunique_identifier_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/unique_identifier_msgs/lib/libunique_identifier_msgs__rosidl_typesupport_introspection_c.so
    libunique_identifier_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/unique_identifier_msgs/lib/libunique_identifier_msgs__rosidl_typesupport_introspection_cpp.so
    libstd_srvs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/std_srvs/lib/libstd_srvs__rosidl_typesupport_c.so
    libstd_srvs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/std_srvs/lib/libstd_srvs__rosidl_typesupport_cpp.so
    libstd_srvs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/std_srvs/lib/libstd_srvs__rosidl_typesupport_fastrtps_c.so
    libstd_srvs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/std_srvs/lib/libstd_srvs__rosidl_generator_c.so
    libstd_srvs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/std_srvs/lib/libstd_srvs__rosidl_typesupport_fastrtps_cpp.so
    libstd_srvs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/std_srvs/lib/libstd_srvs__rosidl_typesupport_introspection_c.so
    libstd_srvs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/std_srvs/lib/libstd_srvs__rosidl_typesupport_introspection_cpp.so
    liblifecycle_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/lifecycle_msgs/lib/liblifecycle_msgs__rosidl_typesupport_c.so
    liblifecycle_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/lifecycle_msgs/lib/liblifecycle_msgs__rosidl_typesupport_cpp.so
    liblifecycle_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/lifecycle_msgs/lib/liblifecycle_msgs__rosidl_typesupport_fastrtps_c.so
    liblifecycle_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/lifecycle_msgs/lib/liblifecycle_msgs__rosidl_generator_c.so
    liblifecycle_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/lifecycle_msgs/lib/liblifecycle_msgs__rosidl_typesupport_fastrtps_cpp.so
    liblifecycle_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/lifecycle_msgs/lib/liblifecycle_msgs__rosidl_typesupport_introspection_c.so
    liblifecycle_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/lifecycle_msgs/lib/liblifecycle_msgs__rosidl_typesupport_introspection_cpp.so
    librclcpp.so => /usr/local/src/ros2_ws/install/rclcpp/lib/librclcpp.so
    librcl.so => /usr/local/src/ros2_ws/install/rcl/lib/librcl.so
    librcl_interfaces__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/rcl_interfaces/lib/librcl_interfaces__rosidl_typesupport_c.so
    librcl_interfaces__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/rcl_interfaces/lib/librcl_interfaces__rosidl_typesupport_cpp.so
    librcl_interfaces__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/rcl_interfaces/lib/librcl_interfaces__rosidl_typesupport_fastrtps_c.so
    librcl_interfaces__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/rcl_interfaces/lib/librcl_interfaces__rosidl_generator_c.so
    librcl_interfaces__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/rcl_interfaces/lib/librcl_interfaces__rosidl_typesupport_fastrtps_cpp.so
    librcl_interfaces__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/rcl_interfaces/lib/librcl_interfaces__rosidl_typesupport_introspection_c.so
    librcl_interfaces__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/rcl_interfaces/lib/librcl_interfaces__rosidl_typesupport_introspection_cpp.so
    librmw_implementation.so => /usr/local/src/ros2_ws/install/rmw_implementation/lib/librmw_implementation.so
        libPocoFoundationd.so.50 => /usr/local/src/ros2_ws/install/poco_vendor/lib/libPocoFoundationd.so.50
    librmw.so => /usr/local/src/ros2_ws/install/rmw/lib/librmw.so
    librcutils.so => /usr/local/src/ros2_ws/install/rcutils/lib/librcutils.so
    libbuiltin_interfaces__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/builtin_interfaces/lib/libbuiltin_interfaces__rosidl_typesupport_c.so
    libbuiltin_interfaces__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/builtin_interfaces/lib/libbuiltin_interfaces__rosidl_typesupport_cpp.so
    libbuiltin_interfaces__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/builtin_interfaces/lib/libbuiltin_interfaces__rosidl_typesupport_fastrtps_c.so
    libbuiltin_interfaces__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/builtin_interfaces/lib/libbuiltin_interfaces__rosidl_generator_c.so
    libbuiltin_interfaces__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/builtin_interfaces/lib/libbuiltin_interfaces__rosidl_typesupport_fastrtps_cpp.so
    libbuiltin_interfaces__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/builtin_interfaces/lib/libbuiltin_interfaces__rosidl_typesupport_introspection_c.so
    libbuiltin_interfaces__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/builtin_interfaces/lib/libbuiltin_interfaces__rosidl_typesupport_introspection_cpp.so
    librosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/rosidl_typesupport_introspection_cpp/lib/librosidl_typesupport_introspection_cpp.so
    librosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/rosidl_typesupport_introspection_c/lib/librosidl_typesupport_introspection_c.so
    librosgraph_msgs__rosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/rosgraph_msgs/lib/librosgraph_msgs__rosidl_typesupport_cpp.so
    librosgraph_msgs__rosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/rosgraph_msgs/lib/librosgraph_msgs__rosidl_typesupport_c.so
    librosgraph_msgs__rosidl_typesupport_introspection_cpp.so => /usr/local/src/ros2_ws/install/rosgraph_msgs/lib/librosgraph_msgs__rosidl_typesupport_introspection_cpp.so
    librosgraph_msgs__rosidl_generator_c.so => /usr/local/src/ros2_ws/install/rosgraph_msgs/lib/librosgraph_msgs__rosidl_generator_c.so
    librosgraph_msgs__rosidl_typesupport_introspection_c.so => /usr/local/src/ros2_ws/install/rosgraph_msgs/lib/librosgraph_msgs__rosidl_typesupport_introspection_c.so
    librosgraph_msgs__rosidl_typesupport_fastrtps_c.so => /usr/local/src/ros2_ws/install/rosgraph_msgs/lib/librosgraph_msgs__rosidl_typesupport_fastrtps_c.so
    librosgraph_msgs__rosidl_typesupport_fastrtps_cpp.so => /usr/local/src/ros2_ws/install/rosgraph_msgs/lib/librosgraph_msgs__rosidl_typesupport_fastrtps_cpp.so
    librosidl_typesupport_cpp.so => /usr/local/src/ros2_ws/install/rosidl_typesupport_cpp/lib/librosidl_typesupport_cpp.so
    librosidl_typesupport_c.so => /usr/local/src/ros2_ws/install/rosidl_typesupport_c/lib/librosidl_typesupport_c.so
    librosidl_generator_c.so => /usr/local/src/ros2_ws/install/rosidl_generator_c/lib/librosidl_generator_c.so
    librcl_yaml_param_parser.so => /usr/local/src/ros2_ws/install/rcl_yaml_param_parser/lib/librcl_yaml_param_parser.so
        libyaml.so => /usr/local/src/ros2_ws/install/libyaml_vendor/lib/libyaml.so
    libroscpp.so => /opt/ros/melodic/lib/libroscpp.so
    librosconsole.so => /opt/ros/melodic/lib/librosconsole.so
    librosconsole_log4cxx.so => /opt/ros/melodic/lib/librosconsole_log4cxx.so
    librosconsole_backend_interface.so => /opt/ros/melodic/lib/librosconsole_backend_interface.so
    libxmlrpcpp.so => /opt/ros/melodic/lib/libxmlrpcpp.so
    libboost_filesystem.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.62.0
    libboost_signals.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_signals.so.1.62.0
    liblog4cxx.so.10 => /usr/lib/x86_64-linux-gnu/liblog4cxx.so.10
        libapr-1.so.0 => /usr/lib/x86_64-linux-gnu/libapr-1.so.0
            libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1
        libaprutil-1.so.0 => /usr/lib/x86_64-linux-gnu/libaprutil-1.so.0
            libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1
    libboost_regex.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.62.0
        libicudata.so.57 => /usr/lib/x86_64-linux-gnu/libicudata.so.57
        libicui18n.so.57 => /usr/lib/x86_64-linux-gnu/libicui18n.so.57
        libicuuc.so.57 => /usr/lib/x86_64-linux-gnu/libicuuc.so.57
    libroscpp_serialization.so => /opt/ros/melodic/lib/libroscpp_serialization.so
    librostime.so => /opt/ros/melodic/lib/librostime.so
    libcpp_common.so => /opt/ros/melodic/lib/libcpp_common.so
    libboost_system.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_system.so.1.62.0
    libboost_thread.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.62.0
    libboost_chrono.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.62.0
    libboost_date_time.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.62.0
    libboost_atomic.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_atomic.so.1.62.0
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
    libconsole_bridge.so.0.2 => /usr/lib/x86_64-linux-gnu/libconsole_bridge.so.0.2
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
    ld-linux-x86-64.so.2 => /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2

For some reasons, this bridge is linked against nodeletlib - and that's creating an issue further down the line. But why is it linked against nodeletlib?

System 3 Everything works

System specifications

  • OS X Mojave
  • ROS 1 build from source (only some parts)
  • ROS 2 build from source built merge-install

What happens?
It builds and runs just fine. The lines

-- Checking for module 'nodelet'
--   Found nodelet, version 1.9.16

in the CMake build output simply don't exist nor does the CMake warning. No linking against nodeletlib occurs.


find_ros1_package(roscpp)
if(NOT ros1_roscpp_FOUND)
message(WARNING "Failed to find ROS 1 roscpp, skipping...")

This comment has been minimized.

Copy link
@Karsten1987

Karsten1987 Dec 6, 2018

Contributor
Suggested change
message(WARNING "Failed to find ROS 1 roscpp, skipping...")
message(WARNING "Failed to find ROS 1 roscpp, skipping...")
message(WARNING "Make sure ros1_bridge is correctly built")
@dirk-thomas

This comment has been minimized.

Copy link
Member

commented Dec 10, 2018

Why does the ros1_bridge link against libnodeletlib.so on some systems?

Could it be that one of the message packages links again nodeletlib?

@Martin-Idel-SI

This comment has been minimized.

Copy link
Contributor Author

commented Dec 10, 2018

@dirk-thomas Thanks.

I looked at all of them and they were clear. However, nodelets apparently has services (if you source ros1 and call rossrv list, you get nodel/NodeletList and a few others), so that's the problem.

But that means I can't link against ros1_bridge if pluginlib is used...

@dirk-thomas

This comment has been minimized.

Copy link
Member

commented Dec 10, 2018

nodelets apparently has services (if you source ros1 and call rossrv list, you get nodel/NodeletList and a few others), so that's the problem.

Yeah, that sounds reasonable.

It should be straight forward to skip that specific library then since it shouldn't be necessary in order to use the services from that package.

@Karsten1987 Karsten1987 referenced this pull request Dec 10, 2018

Merged

exclude ros1 nodelets #152

@Karsten1987

This comment has been minimized.

Copy link
Contributor

commented Dec 10, 2018

I still ran into the cyclic dependencies, however all libs and tests were building and running correctly.

@Martin-Idel-SI @anhosi Could you see if this works for you as well with the ros1bridge patch?

@Martin-Idel-SI Martin-Idel-SI force-pushed the bsinno:feature/play_old_bagfiles branch from 0e2252e to a67e864 Dec 11, 2018

@Martin-Idel-SI

This comment has been minimized.

Copy link
Contributor Author

commented Dec 11, 2018

@Karsten1987
So I fixed a couple of things and hopefully it works well, now:

  • First, I implemented your fix for ros1_bridge also here: we use the same macro, so we need to also exclude nodelets. This fixed the cyclic dependency issues for me and also our Jenkins now likes to build it.
  • Second, we still had one system wher building failed (@anhosi ). It turns out CMake can mess up the path order completely so that it wants to use the old pluginlib. We found a way to stop that (there are hopfully somewhat illuminating comments, but you only really understand the problem when you look at the failure output and the gcc commands)
  • The only error output I'm still seeing is
--- stderr: rosbag2_bag_v2_plugins                                         
Mapping for package example_interfaces contains unknown field(s)
---

This is from the code generation and I get the same error message when building ros1_bridge. It seems to me to be quite unimportant. All systems work.

N.B: I tried to switch paths around and it turns out that this will always only work if you source the ROS 1 workspace before you source the ROS 2 workspace. When you switch paths, not even rosbag2_storage builds cleanly, because it gets built with the wrong pluginlib.

@Martin-Idel-SI Martin-Idel-SI changed the title [WIP] Play old bagfiles Play old bagfiles Dec 13, 2018

@Martin-Idel-SI Martin-Idel-SI force-pushed the bsinno:feature/play_old_bagfiles branch from 96bb875 to ecdba1d Dec 13, 2018

@Karsten1987 Karsten1987 force-pushed the bsinno:feature/play_old_bagfiles branch from ecdba1d to a9ae225 Dec 14, 2018

Martin-Idel-SI and others added some commits Dec 4, 2018

GH-133 Improve converter plugin
- move generation templates outside of plugin folders as both
  plugins need it
- use ros::serialization routines to deserialize the ros message
GH-133 Remove empty check in converter
- With the rosbag_v2_converter_plugin, we don't need to treat
  rosbag_v2 storage any different
GH-133 Delete superfluous include folder
- Only needed if we want to link against the library
GH-133 get_all_topics_and_types returns only valid ros2 types
- This is necessary as the information is used by rosbag2_transport
- ros2 bag info still shows all topics and types
- rosbag::View::getConnections() can return multiple connections corresponding to the same topic
GH-133 Improve end to end test
- use a bagfile with messages not known to ros2
Explicitly print message when on Windows
Co-Authored-By: Martin-Idel-SI <external.Martin.Idel@bosch-si.com>
GH-14 Refactor rosbag_storage vendor package
- Improve toplevel CMakeLists
- Put all patches into a resource subfolder
GH-156 Prohibit CMake from declaring paths as system paths
This switches the order of ros2 and ros1 directories
resulting in build failures
GH-156 Prohibit system include paths for rosbag plugins
This can lead to switching ros1 and ros2 include paths resulting
in missing symbols as the wrong pluginlib gets included

@Karsten1987 Karsten1987 force-pushed the bsinno:feature/play_old_bagfiles branch from a9ae225 to 2f959a9 Dec 14, 2018

Karsten1987 added some commits Dec 15, 2018

@Karsten1987 Karsten1987 merged commit 5e6c491 into ros2:master Dec 15, 2018

1 check failed

Cpr__rosbag2__ubuntu_bionic_amd64 Build finished.
Details

@Karsten1987 Karsten1987 removed the in review label Dec 15, 2018

@Martin-Idel-SI Martin-Idel-SI deleted the bsinno:feature/play_old_bagfiles branch Dec 17, 2018

sriramster pushed a commit to sriramster/rosbag2 that referenced this pull request Feb 28, 2019

Add correct timing behaviour for rosbag play (ros2#32)
* ros2GH-69 Read storage content in a separate thread

For now the publishing starts only after the reading is completly
done. This should change aufter ros2GH-68 is done and a thread-safe
queue can be used instead of std::queue.

* ros2GH-71 Add integration test for timing behavior

* ros2GH-68 Introduce vendor package for shared queue

- Download and install headers from moodycamel readerwriterqueue
- Download and install headers from moodycamel concurrentqueue
- Use readerwriterqueue in code to load and publish concurrently

* ros2GH-71 Retain time difference of messages when playing a bag file

- The main (play) thread sleeps until the time for publishing the
  message is reached.
- Using std::chrono time_point and duration for type-safe time
  arithmetic instead of rcutils time types.

* ros2GH-71 Improve stability of read test

- Subscribers need to maintain a longer history if the messages are
  not consumed fast enough.

* ros2GH-71 Fix Classloader instance lifetime

The Classloader instance needs to outlive all objects created by it.

* ros2GH-71 Extract playing code into a class of its own

Reason: record and play have almost no common code but do the exact
opposite with the storage and rclcpp.

* ros2GH-70 Do not link explicitly against std_msgs

- only required in tests
- this decreases the amount of packages needed for a clean build without tests

* ros2GH-70 Fix error message of storage

* ros2GH-70 Fix pluginlib/storage issue for recording

* ros2GH-71 Cleanup: variable naming

* ros2GH-70 Load storage continuously instead of as fast as possible

- Only load if queue contains less than 1000 messages
- Wait a millisecond before loading again once the queue is long enough

* ros2GH-70 Add options struct to allow specification of queue size

* ros2GH-72 Wait for messages to fill up

* ros2GH-74 Rename integration tests to play/record tests

* ros2GH-74 Use test_msgs in integration tests

- gets rid of string_msgs dependency

* ros2GH-70 Rename is_not_ready to is_pending, use bulk reading to queue

* ros2GH-70 Harmonize storage_loading_future variable

* ros2GH-88 Read messages in order of their timestamps

- Currently, we write sequentially in order of arrival time so
  reading in id order is fine
- This may change at a later time and should not change the reading
  behaviour, i.e. we need to read in order of timestamps

* Fix compiler error on Mac

* ros2GH-8 Fix: use correct ros message type in test

* ros2GH-8 Cleanup: minor code style fixes

* ros2GH-8 Refactor future usage in player

Make the future a class member of player to avoid having to hand it
into several functions which is difficult with a move-only type.

* ros2GH-8 Cleanup: remove verbose logging for every stored message

* ros2GH-8 Refactor rosbag2 interface

Add an explicit overload for record without a topic_names argument to
record all topics.

* fix: call vector.reserve instead of default initalization

* fix record demo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.