Git Product home page Git Product logo

console_bridge_vendor's Introduction

About

The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it's all open source. Full project details on ROS.org

Getting Started

Looking to get started with ROS? Our installation guide is here. Once you've installed ROS start by learning some basic concepts and take a look at our beginner tutorials.

Join the ROS Community

Community Resources

Developer Resources

Project Resources

ROS is made possible through the generous support of open source contributors and the non-profit Open Source Robotics Foundation (OSRF). Tax deductible donations to the OSRF can be made here.

console_bridge_vendor's People

Contributors

ahcorde avatar audrow avatar blast545 avatar clalancette avatar cottsay avatar crola1702 avatar emersonknapp avatar jacobperron avatar mikaelarguedas avatar nuclearsandwich avatar paudrow avatar shonigmann avatar sloretz avatar yadunund avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

console_bridge_vendor's Issues

Progress toward Quality Level 1

This issue tracks the progression of the package console_bridge_vendor that have been deemed necessary for Quality Level 1. It follows the outline described in REP 2004.

  • Version Policy
  • Version >= 1.0.0
  • Change Control Process
  • API and ABI stability within a ROS distribution (libconsole-bridge-dev use limited to stable releases)
  • Vulnerability Disclosure Policy

Documentation

  • Per-feature documentation.
    • (This package does not define its own features)
  • Per-item documentation in public API.
    • (This package does not define its own API)
  • Declared set of licenses
  • Copyright statement in each source file
    • Checked with ament_copyright
  • Quality Declaration document

Testing:

  • System tests, which cover "features"
    • (Does not apply for vendored packages)
  • Tests covering public API
    • (Does not apply for vendored packages)
  • Code Coverage > 95%:
    • (Does not apply for vendored packages)
  • Performance tests.
    • (Does not apply for vendored packages)
  • Linters and Static Analysis:
      • Must have a code style and enforce it.

Dependencies:

  • Runtime "ROS" dependencies are level 1
    • None
  • non-ROS dependencies are equivalent level 1
    • libconsole-bridge-dev (QL 2)

Platform Support

  • Supports all tier 1 platforms as described in REP-2000

Linker conflicts and usage clarification [clang]

We're currently running into linker conflicts when compiling MoveIt 2 for Foxy with clang.

/usr/bin/ld: warning: libconsole_bridge.so.0.4, needed by /opt/ros/foxy/lib/x86_64-linux-gnu/liburdfdom_sensor.so.1.0, may conflict with libconsole_bridge.so.1.0

MoveIt is depending on console_bridge through geometric_shapes and srdfdom which recursively depends on urdfdom. The problem is that the urdfdom debian (and many other ROS packages) depends on libconsole_bridge.so.0.4 while console_bridge_vendor already provides libconsole_bridge.so.1.0 resulting in the linker conflict shown above. My understanding was that this is exactly the issue that the vendor package should solve. However, if using the vendor package or not doesn't seem to make any difference when compiling srdfdom and MoveIt 2 (see https://github.com/ros-planning/srdfdom/pull/61/files for srdfdom tested with and without vendor package). The linker conflict doesn't occur when compiling the conflicting packages (here urdfdom) from source. To me it seems like the only option would be to have urdfdom released using the latest console_bridge version and from then on keeping all downstream dependencies synced.

Is this by any chance just a bug in the vendor package or a misconfiguration in one of the related packages? Any help would be greatly appreciated.

@clalancette tagging you as you've been involved in this package and in the original discussion.

Error while colcon build, humble branch, Ubuntu 20.04

Hi, I am trying to build this package inside docker. I am using this docker file. The docker is using Ubuntu 20.04 as base OS. In that docker file, at line no 124, while executing colcon build command, it is giving following error. What can be the reason behind this?

CMake Warning (dev) at /usr/share/cmake-3.24/Modules/ExternalProject.cmake:3071 (message):
  The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
  not set.  The policy's OLD behavior will be used.  When using a URL
  download, the timestamps of extracted files should preferably be that of
  the time of extraction, otherwise code that depends on the extracted
  contents might not be rebuilt if the URL changes.  The OLD behavior
  preserves the timestamps from the archive instead, but this is usually not
  what you want.  Update your project to the NEW behavior or specify the
  DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this
  robustness issue.
Call Stack (most recent call first):
  /usr/share/cmake-3.24/Modules/ExternalProject.cmake:4167 (_ep_add_download_command)
  CMakeLists.txt:68 (externalproject_add)
  CMakeLists.txt:97 (build_console_bridge)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Error at /opt/ros/humble/install/share/performance_test_fixture/cmake/ament_cmake_export_targets-extras.cmake:18 (message):

  Failed to find exported target names in
  '/opt/ros/humble/install/share/performance_test_fixture/cmake/performance_test_fixtureExport.cmake'

Call Stack (most recent call first):
  /opt/ros/humble/install/share/performance_test_fixture/cmake/performance_test_fixtureConfig.cmake:41 (include)
  /opt/ros/humble/install/share/ament_lint_auto/cmake/ament_lint_auto_find_test_dependencies.cmake:36 (find_package)
  CMakeLists.txt:106 (ament_lint_auto_find_test_dependencies)

clang compiler warning

When compiling console_bridge with clang, I get the following warnings:

In file included from /vol/sandbox/ros2/src/srdfdom/src/model.cpp:38:
/opt/ros/dashing/include/console_bridge/console.h:67:90: warning: token pasting of ',' and __VA_ARGS__ is a GNU extension [-Wgnu-zero-variadic-macro-arguments]
  console_bridge::log(__FILE__, __LINE__, console_bridge::CONSOLE_BRIDGE_LOG_ERROR, fmt, ##__VA_ARGS__)

As far as I can see, these code lines should read (replacing ##__VA_ARGS__ with #__VA_ARGS__):

#define CONSOLE_BRIDGE_logError(fmt, ...)  \
  console_bridge::log(__FILE__, __LINE__, console_bridge::CONSOLE_BRIDGE_LOG_ERROR, fmt, #__VA_ARGS__)

#define CONSOLE_BRIDGE_logWarn(fmt, ...)   \
  console_bridge::log(__FILE__, __LINE__, console_bridge::CONSOLE_BRIDGE_LOG_WARN,  fmt, #__VA_ARGS__)

#define CONSOLE_BRIDGE_logInform(fmt, ...) \
  console_bridge::log(__FILE__, __LINE__, console_bridge::CONSOLE_BRIDGE_LOG_INFO,  fmt, #__VA_ARGS__)

#define CONSOLE_BRIDGE_logDebug(fmt, ...)  \
  console_bridge::log(__FILE__, __LINE__, console_bridge::CONSOLE_BRIDGE_LOG_DEBUG, fmt, #__VA_ARGS__)

As I'm not sure which is the actual source repository, I'm filing an issue here instead of a PR.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.