Giter VIP home page Giter VIP logo

bond_core's People

Stargazers

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

Watchers

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

bond_core's Issues

waitUntilFormed and waitUntilBroken quit with erroneus error code on timeout

If you try to wait for a bond to be formed for more than 10 seconds it returns true leading to believe a bond has been established.

How to reproduce

ros::init(argc, argv, "ProcessA", true);
ros::AsyncSpinner spinner(1);
spinner.start();
bond::Bond bond("example_bond_topic", "myBondId123456");
printf("A starting bond\n");
bond.start();
printf("A waiting for bond to be formed\n");
if (!bond.waitUntilFormed(ros::Duration(15.0))) {
    ROS_ERROR("ERROR!");
    return false;
}
else {
    ROS_INFO("a bond has been established right?");  
}

The return value should be fixed and the documentation improved to mention the ConnectTimeout limit for waiting

Bonds cannot guarantee a termination notification to the other side

At least for the rospy bonds. I haven't looked at the cpp bonds yet.

Relevant Code: the shutdown() method which publishes a message to the sister bond and then promptly unregisters the publisher.

Is there a way that can reliably guarantee that a terminating node can properly shutdown a bond without having to rely on the sister inferring it from a heartbeat that has gone missing?

Seems as though there are two difficulties with this:

  • publish(), followed immediately by unregister()...can this disrupt the sending?
  • If the bond is shutting down because it's node is shutting down (e.g. ctrl-c), then the call to shutdown() from __del__ may, or may not happen before the ros communications have shut down.

You could put the bond shutdown function in a rospy shutdown hook, but that is only guaranteed for services, not publishers. So the only way to do this properly is if sister bonds had a service that could accept a one-time request from the bond.

If this is actually not possible to guarantee with the current code, ideas? I wouldn't mind putting some time into a PR for this.

[ROS2] Bondcpp statemap::TransitionUndefinedException

Currently trying to get bondcpp working:

This is my main:

int main(int argc, char **argv)
{
	rclcpp::init(argc, argv);
	rclcpp::executors::SingleThreadedExecutor exec;

	auto robot_bond = std::make_shared<RobotBond>();
	auto pickplace = std::make_shared<PickPlaceDemo>(robot_bond);

	exec.add_node(robot_bond->get_node_base_interface());
	exec.add_node(pickplace);

        exec.spin();
	rclcpp::shutdown();

	return 0;
}

In the constructor of PickPlace demo I call robot_bond->startBond().

This is my Bond class

RobotBond::RobotBond() 
    : rclcpp_lifecycle::LifecycleNode("bond_node_client")
{
}

void RobotBond::startBond(){
    if (client_bond_ && !client_bond_->isBroken()) // skip starting if already bonded
        return;

    RCLCPP_INFO_STREAM(rclcpp::get_logger("tm_ros"),"[TM Bonding]: starting bonding node.");

    client_bond_ = std::unique_ptr<bond::Bond>(new bond::Bond("/tm_driver_bond", this->get_name(),
        this->shared_from_this(),
        std::bind(&RobotBond::onClientBoundBrokenCallback, this), 
        std::bind(&RobotBond::onClientBoundFormedCallback, this)
        )); 

    client_bond_->setHeartbeatPeriod(0.5);
    client_bond_->setHeartbeatTimeout(1);

    client_bond_->start();
    RCLCPP_INFO_STREAM(rclcpp::get_logger("tm_ros"),"[TM Bonding]: bonding node has started");
}

void RobotBond::onClientBoundFormedCallback(){
    RCLCPP_INFO_STREAM(rclcpp::get_logger("tm_ros"),"[TM Bonding]: bond to client established.");
}

void RobotBond::onClientBoundBrokenCallback(){
}

The exception I am getting:

terminate called after throwing an instance of 'statemap::TransitionUndefinedException'
  what():  no such transition in current state

The error is thrown by the smclib, I'm not really understanding why. I guess the BondSM is not correctly set when instantiating the class. Please advice on solving this problem.

Problem linking with uuid.

Originally posted at http://answers.ros.org/question/194158/bondcpp-fails-on-osx/?answer=194299#post-id-194299

I tried the solution from the tutorial. But doesn't work.
Result:

Built target roscpp_generate_messages_cpp
Linking CXX shared library /Users/tiberio/ros_catkin_ws/devel_isolated/bondcpp/lib/libbondcpp.dylib
ld: library not found for -luuid
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [/Users/tiberio/ros_catkin_ws/devel_isolated/bondcpp/lib/libbondcpp.dylib] Error 1
make[1]: *** [CMakeFiles/bondcpp.dir/all] Error 2
make: *** [all] Error 2
<== Failed to process package 'bondcpp':
  Command '/Users/tiberio/ros_catkin_ws/install_isolated/env.sh make -j8 -l8' returned non-zero exit status 2

Reproduce this error by running:
==> cd /Users/tiberio/ros_catkin_ws/build_isolated/bondcpp && /Users/tiberio/ros_catkin_ws/install_isolated/env.sh make -j8 -l8

Command failed, exiting.

I also did a run with VERBOSE=1, but the output is enormous, I'm not sure if I should post here. Anyway, it is in the original question link.

Apparently bondcpp or who ever is originally finding uuid is either not passing along the library directory or not converting the relative library (-L/usr/local/Cellar/uuid/1.6.2/lib -luuid) into an absolute library (maybe /usr/local/Cellar/uuid/1.6.2/lib/libuuid.dylib).

[ROS2] Failing heartbeat timeouts

Hi,

I'm working on adding bond to nav2 and running into a consistent issue I think is a result of the ROS2 port fundamentally not working (or I'm really missing something).

I'm able to connect bond servers together and test the connection. But after the 4 second default heartbeat timeout, the heartbeat timeout always triggers so it can't be relied on stably. I made some printouts on both sides of the bond connection to make sure they are indeed publishing active heartbeats at 4x the heartbeat timeout rate.

But every time the servers triggers a failed heartbeat connection.

I think bondcpp is broken or something really weird happening at least with default settings. I think it has to do with the ROS1 to ROS2 port trying to use new ROS2 tools and ended up messing up a bit.

Take particular attention at the heartbeat items in ROS2 & the ROS1 versions. I see the Heartbeat() method being triggered by the state machine every time we have a new message from the bond status callback (it calls SisterAlive() which in turns calls Heartbeat() in the state machine). In Heartbeat() for ROS1 it resets the timer without triggering the heartbeat timeout callback but in this one for ROS2, it sets a flag and resets the timer which calls it and triggers the timeout procedure to bring things down, which then promises that every timeout period, we always trigger heartbeat failures any time we receive bond statuses from the other server. It is supposed to, I believe, instead reset the timeout clock without triggering the callback as it did in ROS1 to reset the heartbeat as valid when we get a new active one.

I think the timeout.cpp from ROS1 is not equivalent to the timer reset / cancel functions added. As a result, I think BondCpp in ROS2 is non-operable. I'd really appreciate if someone can sanity check me. As a result, I think at least heartbeats aren't properly working, but further I think none of bond for ROS2 is actually working (though I'm narrowly looking at Heartbeats right now) if all of the timer reset flags / timers aren't equatable.

bond::Bond constructs TimerBase in its destructor, making it difficult to destruct after rclcpp::shutdown

The Bond destructor constructs a TimerBase:

 0# rclcpp::TimerBase::TimerBase(std::shared_ptr<rclcpp::Clock>, std::chrono::duration<long, std::ratio<1l, 1000000000l> >, std::shared_ptr<rclcpp::Context>) in /home/mbryan/Projects/ros/ros2_rolling/install/rclcpp/lib/librclcpp.so
 1# bond::Bond::deadpublishingTimerReset() in /opt/ros/rolling/lib/libbondcpp.so
 2# SM_Alive::Die(BondSMContext&) in /opt/ros/rolling/lib/libbondcpp.so
 3# bond::Bond::breakBond() in /opt/ros/rolling/lib/libbondcpp.so
 4# bond::Bond::~Bond() in /opt/ros/rolling/lib/libbondcpp.so
 5# nav2_util::LifecycleNode::~LifecycleNode() in /home/mbryan/Projects/ros/navigation2/install/nav2_util/lib/libnav2_util_core.so
 6# behavior_server::BehaviorServer::~BehaviorServer() in /home/mbryan/Projects/ros/navigation2/install/nav2_behaviors/lib/libbehavior_server_core.so
 7# std::_Sp_counted_ptr_inplace<behavior_server::BehaviorServer, std::allocator<behavior_server::BehaviorServer>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() in /home/mbryan/Projects/ros/navigation2/install/nav2_behaviors/lib/nav2_behaviors/behavior_server
 8# std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() in /home/mbryan/Projects/ros/navigation2/install/nav2_behaviors/lib/nav2_behaviors/behavior_server
 9# 0x000055F5FE8BB964 in /home/mbryan/Projects/ros/navigation2/install/nav2_behaviors/lib/nav2_behaviors/behavior_server
10# 0x00007FA05CCD9D90 in /lib/x86_64-linux-gnu/libc.so.6
11# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
12# 0x000055F5FE8BBA35 in /home/mbryan/Projects/ros/navigation2/install/nav2_behaviors/lib/nav2_behaviors/behavior_server

Unfortunately this means that we hit exceptions if destruction happens after rclcpp::shutdown is called. Basically this exception translates to "why are you trying to make timer stuff after shutdown?"

[43.062857] (nav2_system_tests) StdoutLine: {'line': b'9: [behavior_server-10] [INFO] [1673598507.589703428] [behavior_server]: Destroying\n'}
[43.062996] (nav2_system_tests) StdoutLine: {'line': b"9: [behavior_server-10] terminate called after throwing an instance of 'rclcpp::exceptions::RCLError'\n"}
[43.063104] (nav2_system_tests) StdoutLine: {'line': b"9: [behavior_server-10]   what():  Couldn't initialize rcl timer handle: the given context is not valid, either rcl_init() was not called or rcl_shutdown() was called., at ./src/rcl/guard_condition.c:67\n"}

Construction for the purpose of doing some operation in a destruction path is not insane per se, but this particular one is requiring us to get careful with shutdown callbacks blah blah in the Nav2 code. It would be good to avoid it if possible.

I don't see deadpublishingTimerReset in today's code base, so I'm not sure what versions of libbond this may affect. Having said that: this is affecting today's Nav2 system tests. Not sure what version those CI rigs are running... The version in the stack above is from the Ubuntu 22.04 repository I believe.

Filed per request of Steve Macenski (who I can't tag for some reason).

Reconnect to an existing bond after it was broken (instance_id issue)

It seems that because of line 309 in bond.cpp, it is not possible to re-form a bond after a node on one end died and was revived. The use case story is as follows:

  • Nodes A and B form a bond
  • Node B dies, the bond is broken and a loop is activated in A with a waitUntilFormed call
  • Node B is revived by the user, however instead of re-forming the bond, A starts printing the More than two locations are trying to use a single bond... error

Is this intentional in the bond package? It means that, when the bond is broken, what A should do in the above use case is delete the old bond and create a new, identical ("fresh") one and use that with waitUntilFormed.

'BondSM' defined as a struct here but previously declared as a class

I get this error when compiling a piece of code which uses bondcpp with clang. Compile command is as follows:

catkin build -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_BUILD_TYPE=Release
Errors     << iarc7_safety:make /home/vasu/Documents/projects/SubT/workspaces/stix_release/ugv/logs/iarc7_safety/build.make.000.log
In file included from /home/vasu/Documents/projects/SubT/workspaces/stix_release/ugv/src/iarc7_safety/src/iarc7_safety/SafetyClient.cpp:13:
In file included from /home/vasu/Documents/projects/SubT/workspaces/stix_release/ugv/src/iarc7_safety/include/iarc7_safety/SafetyClient.hpp:13:
/opt/ros/melodic/include/bondcpp/bond.h:189:1: error: 'BondSM' defined as a struct here but previously declared as a class [-Werror,-Wmismatched-tags]
struct BondSM
^
/opt/ros/melodic/include/bondcpp/BondSM_sm.h:25:1: note: did you mean struct here?
class BondSM;
^~~~~
struct
1 error generated.
make[2]: *** [CMakeFiles/iarc7_safety.dir/src/iarc7_safety/SafetyClient.cpp.o] Error 1
make[1]: *** [CMakeFiles/iarc7_safety.dir/all] Error 2
make: *** [all] Error 2

Direct link to affected code:

wait_until_formed causes terminal to be unavailable for full requested duration even after node shutdown

The example below demonstrates the problem. Running this as a node and cancelling (ctrl+c) it before the duration of wait_until_formed is over results in the terminal hanging for the specified duration. In the case where the duration passes and the node waits on ros to shutdown before continuing, cancelling execution causes the terminal to be available immediately. If instead the cancellation is sent before the duration is up, subsequent code will execute and the node will be destroyed (i.e. not visible with rosnode list), but the terminal will still be occupied.

#!/usr/bin/env python

from bondpy import bondpy
import rospy

if __name__ == '__main__':
    rospy.init_node('timeout_test')
    bond = bondpy.Bond("bondtopic", "identifier")
    bond.start()
    bond.wait_until_formed(rospy.Duration(45))
    print("finished waiting")
    loop = rospy.Rate(1)
    while not rospy.is_shutdown():
        print("spinning")
        loop.sleep()
    print("breaking")
    bond.break_bond()
    bond.shutdown()
    print("past broken")

bonding between two nodes are not happening

Hi,
i got one issue line No . 13 " bond.waitUntilBroken(); " in this example for bond, its giving error ambiguity . and not forming Bond also. give me solution as soon as possible.

Toggle line numbers

1 #include <bondcpp/bond.h>
2
3 std::string id = generateUniqueId();
4 // Sends id to B using a service or action
5 bond::Bond bond("example_bond_topic", id);
6 bond.start();
7 if (!bond.waitUntilFormed(ros::Duration(1.0)))
8 {
9 ROS_ERROR("ERROR!");
10 return false;
11 }
12 // ... do things with B ...
# 13 bond.waitUntilBroken();
14 printf("B has broken the bond\n");

Process B:
Toggle line numbers

1 #include <bondcpp/bond.h>
2
3 // Receives id from A using a service or action
4 bond::Bond bond("example_bond_topic", id);
5 bond.start();
6 // ... do things ...
7 bond.breakBond();

bondpy SyntaxError: invalid syntax

when building from source

running build
running build_py
creating /home/ale/catkin_ws/build_isolated/bondpy/lib
creating /home/ale/catkin_ws/build_isolated/bondpy/lib/bondpy
copying python/bondpy/BondSM_sm.py -> /home/ale/catkin_ws/build_isolated/bondpy/lib/bondpy
copying python/bondpy/__init__.py -> /home/ale/catkin_ws/build_isolated/bondpy/lib/bondpy
copying python/bondpy/bondpy.py -> /home/ale/catkin_ws/build_isolated/bondpy/lib/bondpy
running install
running install_lib
creating /opt/ros/lunar/lib64/python3.5/site-packages/bondpy
copying /home/ale/catkin_ws/build_isolated/bondpy/lib/bondpy/BondSM_sm.py -> /opt/ros/lunar/lib64/python3.5/site-packages/bondpy
copying /home/ale/catkin_ws/build_isolated/bondpy/lib/bondpy/__init__.py -> /opt/ros/lunar/lib64/python3.5/site-packages/bondpy
copying /home/ale/catkin_ws/build_isolated/bondpy/lib/bondpy/bondpy.py -> /opt/ros/lunar/lib64/python3.5/site-packages/bondpy
byte-compiling /opt/ros/lunar/lib64/python3.5/site-packages/bondpy/BondSM_sm.py to BondSM_sm.cpython-35.pyc
byte-compiling /opt/ros/lunar/lib64/python3.5/site-packages/bondpy/__init__.py to __init__.cpython-35.pyc
byte-compiling /opt/ros/lunar/lib64/python3.5/site-packages/bondpy/bondpy.py to bondpy.cpython-35.pyc
running install_egg_info
Writing /opt/ros/lunar/lib64/python3.5/site-packages/bondpy-1.7.19-py3.5.egg-info
  File "/opt/ros/lunar/lib64/python3.5/site-packages/bondpy/BondSM_sm.py", line 38
    raise statemap.TransitionUndefinedException, msg
                                               ^
SyntaxError: invalid syntax

-- Installing: /opt/ros/lunar/lib/pkgconfig/bondpy.pc
-- Installing: /opt/ros/lunar/share/bondpy/cmake/bondpyConfig.cmake
-- Installing: /opt/ros/lunar/share/bondpy/cmake/bondpyConfig-version.cmake
-- Installing: /opt/ros/lunar/share/bondpy/package.xml
<== Finished processing package [153 of 241]: 'bondpy'

Bond::setCallbackQueue only sets the callback queue for Bond::bondStatusCB thread

Bond::setCallbackQueue is setting the callback queue for only the Bond::bondStatusCB thread while the heartbeat_timer_ still uses the node's global callbackqueue. This disparity seems odd. This means that we don't know in which thread the bond broken callback function will execute.

If the other process breaks the bond explicitly, bondStatusCB will trigger the bond broken callback in the callbackqueue set from Bond::setCallbackQueue()

On the other hand, if there is a heartbeat timeout, then the bond broken callback is executed in the global queue.

This indeterministic behaviour is impossible for a programmer that wishes his broken callback queue to execute consistently in a specified thread.

bond breaks on forward time jumps

bond is not robust to forward time jumps, if the time source is updated with a more recent time, every bond breaks (tearing down any process/nodelet relying on it).

Alternatives could be:

  1. use monotonic clock for bond timeout:
  • pros: no time jump
  • cons: will timeout if using simulated time for example. If you pause the simulation and restart it, every nodelet will die
  1. split the bond period into a bunch of smaller timeouts, and break only if all of them timeout:
  • pros: get rid of the single time jump problem
  • cons: if a time jumps occurs in the last wait of the bond period it will still crash
  1. use previous value to detect time jumps, if time jump detected reset the timeout:
  • pros: bond will never break on time jumps whatever ros time source is used
  • cons: arbitrary metric to decide at what threashold a time difference is considered a jump. Should be ok though because the bond period is much smaller than any time jumps done when updating the system clock

I'd lean toward option 3 because it respects the ros time source chosen by the user and should not break in the case of a paused simulated time or the update of the system time on a real system

bondcpp: UUID_INCLUDE_DIRS missing

In CMakeLists.txt of bondcpp, there's no mention of UUID_INCLUDE_DIRS. I've just found out it's a problem on a system without root privileges where I'm compiling ROS from sources and installing some dependencies in non-standard paths. If the libuuid-dev files aren't installed in a default system location, the build process fails to find uuid/uuid.h, even though the CMake module finds the correct include dir.

Looking in nodelet, UUID_INCLUDE_DIRS are exported there in catkin_package(INCLUDE ...) and not used as an include_directory(). I'm not sure that works, too, because uuid is used there only inside a cpp file and in no header file. The same situation is in bondcpp - I've only found the include inside .cpp files.

So my assumption is adding

include_directories(${UUID_INCLUDE_DIRS})

and not adding UUID_INCLUDE_DIRS to catkin_package(INCLUDE ...) should solve the issue. I tested it on my system and it works.

If all my assumptions are correct, uuid should only be marked as <build_depend> and <exec_depend> in package.xml.

I'll send a PR with this change so that CI can be run on it, but it'd also be nice if somebody tested it on his system. For the test, I think the following is needed:

  • move all files from dpkg -L libuuid-dev to a different directory
  • re-run CMake and make sure it fails to find uuid
  • re-run CMake with CMAKE_PREFIX_PATH set so that cmake finds the moved include dir
  • build the package

Colcon Build Branch ROS 2 Not working

ROS 2 Colcon Build not working.

It is getting stuck with broncpp givint out this error at the beginning: error: ‘from_nanoseconds’ is not a member of ‘rclcpp::Duration’

Please help :)

Fails to build with VS2019 -

While building the Nav2 package on a Win10x64 for Ros2 Humble I downloaded bond_core ROS2 branch and received the following error message from VS2019

CMake Error at C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Call Stack (most recent call first):
  C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.20/Modules/FindPkgConfig.cmake:70 (find_package_handle_standard_args)
  CMakeLists.txt:19 (find_package)

This seems similar to one of the comments in issue #69 by @SteveMacenski

Any help would be appreciated.

[Both ROS1 and ROS2] Bond Async Bringup Exception

Hi,

In my efforts to make navigation have some heartbeats I found a particular issue that plagues both ROS1 and ROS2 that would only show up when:

  • Have long running bringup processes ( greater than heartbeat timeout rate, 4 s by default)
  • Have remote servers that take some time to connect / discover (for ROS2) that can take more than the heartbeat timeout rate

The default state on bring up is WaitingForSister, which does not have a heartbeat timeout override (https://github.com/ros/bond_core/blob/kinetic-devel/bondcpp/src/BondSM_sm.cpp#L63-L147). Because of this, when the heartbeat timeout is triggered, it will call Default() and throw an exception (and probably crash). This is even though the Connection timeout hasn't yet been triggered because by default its set to 10 seconds, larger than the heartbeat timeout. That means in the case that it takes greater than the heartbeat timeout duration to connect, your liable to crash even though there's valid time left to connect via that timeout.

The 2 solutions without modifying bond are:

  • Increase your heartbeat timeout to always be larger than your connection timeout, which is a terrible idea. If you want to know that your servers are active but takes a while for everything to connect, you don't want to have to set your heart beat timeout any longer than necessary.
  • Guarantee that your server can always get up and running in less than heartbeat timeout period. Which given ROS2 and DDS discovery issues and use of remote servers, isn't necessary reliable to 100% of the time work when valid.

I think we need to fix bond in ROS1/ROS2 to deal with this bring up issue better. I think the waiting for sister state needs a valid heartbeat timeout override that won't throw an exception and won't do anything until after connection timeout or the first active status message is received.

build error

This is my first time trying to use this package. I ran into these errors when trying to build bond_core on kinetic-devel branch (not sure how to paste the error. Let me know and I can edit this to conform with github rules):

In file included from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:30:0:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:58:8: error: ‘SteadyTimer’ in namespace ‘ros’ does not name a type
   ros::SteadyTimer timer_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:59:8: error: ‘SteadyTime’ in namespace ‘ros’ does not name a type
   ros::SteadyTime deadline_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:63:33: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
   void timerCallback(const ros::SteadyTimerEvent &e);
                                 ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp: In destructor ‘bond::Timeout::~Timeout()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:50:3: error: ‘timer_’ was not declared in this scope
   timer_.stop();
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp: In member function ‘void bond::Timeout::reset()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:66:3: error: ‘timer_’ was not declared in this scope
   timer_.stop();
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:67:16: error: ‘class ros::NodeHandle’ has no member named ‘createSteadyTimer’
   timer_ = nh_.createSteadyTimer(duration_, &Timeout::timerCallback, this, true
                ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:68:3: error: ‘deadline_’ was not declared in this scope
   deadline_ = ros::SteadyTime::now() + duration_;
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:68:20: error: ‘ros::SteadyTime’ has not been declared
   deadline_ = ros::SteadyTime::now() + duration_;
                    ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp: In member function ‘void bond::Timeout::cancel()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:73:3: error: ‘timer_’ was not declared in this scope
   timer_.stop();
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp: In member function ‘ros::WallDuration bond::Timeout::left()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:78:43: error: ‘deadline_’ was not declared in this scope
   return std::max(ros::WallDuration(0.0), deadline_ - ros::SteadyTime::now());
                                           ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:78:60: error: ‘ros::SteadyTime’ has not been declared
   return std::max(ros::WallDuration(0.0), deadline_ - ros::SteadyTime::now());
                                                            ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp: At global scope:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:81:40: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
 void Timeout::timerCallback(const ros::SteadyTimerEvent &)
                                        ^
bond_core/bondcpp/CMakeFiles/bondcpp.dir/build.make:62: recipe for target 'bond_core/bondcpp/CMakeFiles/bondcpp.dir/src/timeout.cpp.o' failed
make[2]: *** [bond_core/bondcpp/CMakeFiles/bondcpp.dir/src/timeout.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/bond.h:41:0,
                 from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:32:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:58:8: error: ‘SteadyTimer’ in namespace ‘ros’ does not name a type
   ros::SteadyTimer timer_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:59:8: error: ‘SteadyTime’ in namespace ‘ros’ does not name a type
   ros::SteadyTime deadline_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:63:33: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
   void timerCallback(const ros::SteadyTimerEvent &e);
                                 ^
In file included from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/bond.h:41:0,
                 from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:58:8: error: ‘SteadyTimer’ in namespace ‘ros’ does not name a type
   ros::SteadyTimer timer_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:59:8: error: ‘SteadyTime’ in namespace ‘ros’ does not name a type
   ros::SteadyTime deadline_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:63:33: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
   void timerCallback(const ros::SteadyTimerEvent &e);
                                 ^
In file included from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:32:0:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/bond.h:170:8: error: ‘SteadyTimer’ in namespace ‘ros’ does not name a type
   ros::SteadyTimer publishingTimer_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/bond.h:178:32: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
   void doPublishing(const ros::SteadyTimerEvent &e);
                                ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: In destructor ‘bond::Bond::~Bond()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:110:3: error: ‘publishingTimer_’ was not declared in this scope
   publishingTimer_.stop();
   ^
In file included from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:0:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/bond.h:170:8: error: ‘SteadyTimer’ in namespace ‘ros’ does not name a type
   ros::SteadyTimer publishingTimer_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/bond.h:178:32: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
   void doPublishing(const ros::SteadyTimerEvent &e);
                                ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: In member function ‘void bond::Bond::start()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:181:3: error: ‘publishingTimer_’ was not declared in this scope
   publishingTimer_ = nh_.createSteadyTimer(
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:181:26: error: ‘class ros::NodeHandle’ has no member named ‘createSteadyTimer’
   publishingTimer_ = nh_.createSteadyTimer(
                          ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: In member function ‘bool bond::Bond::waitUntilFormed(ros::WallDuration)’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:205:3: error: ‘SteadyTime’ is not a member of ‘ros’
   ros::SteadyTime deadline(ros::SteadyTime::now() + timeout);
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:214:39: error: ‘deadline’ was not declared in this scope
       wait_time = std::min(wait_time, deadline - ros::SteadyTime::now());
                                       ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:214:55: error: ‘ros::SteadyTime’ has not been declared
       wait_time = std::min(wait_time, deadline - ros::SteadyTime::now());
                                                       ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: In member function ‘bool bond::Bond::waitUntilBroken(ros::WallDuration)’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:233:3: error: ‘SteadyTime’ is not a member of ‘ros’
   ros::SteadyTime deadline(ros::SteadyTime::now() + timeout);
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:242:39: error: ‘deadline’ was not declared in this scope
       wait_time = std::min(wait_time, deadline - ros::SteadyTime::now());
                                       ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:242:55: error: ‘ros::SteadyTime’ has not been declared
       wait_time = std::min(wait_time, deadline - ros::SteadyTime::now());
                                                       ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: At global scope:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:340:36: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
 void Bond::doPublishing(const ros::SteadyTimerEvent &)
                                    ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: In member function ‘void bond::Bond::doPublishing(const int&)’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:349:5: error: ‘publishingTimer_’ was not declared in this scope
     publishingTimer_.stop();
     ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: In member function ‘void BondSM::StartDying()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:416:6: error: ‘class bond::Bond’ has no member named ‘publishingTimer_’
   b->publishingTimer_.setPeriod(ros::WallDuration(bond::Constants::DEAD_PUBLISH_PERIOD));
      ^
bond_core/bondcpp/CMakeFiles/bondcpp.dir/build.make:110: recipe for target 'bond_core/bondcpp/CMakeFiles/bondcpp.dir/src/BondSM_sm.cpp.o' failed
make[2]: *** [bond_core/bondcpp/CMakeFiles/bondcpp.dir/src/BondSM_sm.cpp.o] Error 1
bond_core/bondcpp/CMakeFiles/bondcpp.dir/build.make:86: recipe for target 'bond_core/bondcpp/CMakeFiles/bondcpp.dir/src/bond.cpp.o' failed
make[2]: *** [bond_core/bondcpp/CMakeFiles/bondcpp.dir/src/bond.cpp.o] Error 1
CMakeFiles/Makefile2:1521: recipe for target 'bond_core/bondcpp/CMakeFiles/bondcpp.dir/all' failed
make[1]: *** [bond_core/bondcpp/CMakeFiles/bondcpp.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed
mobilerobot@intern187:~/hamster_ws$ catkin_make > ./err_log.txt
In file included from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:30:0:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:58:8: error: ‘SteadyTimer’ in namespace ‘ros’ does not name a type
   ros::SteadyTimer timer_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:59:8: error: ‘SteadyTime’ in namespace ‘ros’ does not name a type
   ros::SteadyTime deadline_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:63:33: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
   void timerCallback(const ros::SteadyTimerEvent &e);
                                 ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp: In destructor ‘bond::Timeout::~Timeout()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:50:3: error: ‘timer_’ was not declared in this scope
   timer_.stop();
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp: In member function ‘void bond::Timeout::reset()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:66:3: error: ‘timer_’ was not declared in this scope
   timer_.stop();
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:67:16: error: ‘class ros::NodeHandle’ has no member named ‘createSteadyTimer’
   timer_ = nh_.createSteadyTimer(duration_, &Timeout::timerCallback, this, true);
                ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:68:3: error: ‘deadline_’ was not declared in this scope
   deadline_ = ros::SteadyTime::now() + duration_;
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:68:20: error: ‘ros::SteadyTime’ has not been declared
   deadline_ = ros::SteadyTime::now() + duration_;
                    ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp: In member function ‘void bond::Timeout::cancel()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:73:3: error: ‘timer_’ was not declared in this scope
   timer_.stop();
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp: In member function ‘ros::WallDuration bond::Timeout::left()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:78:43: error: ‘deadline_’ was not declared in this scope
   return std::max(ros::WallDuration(0.0), deadline_ - ros::SteadyTime::now());
                                           ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:78:60: error: ‘ros::SteadyTime’ has not been declared
   return std::max(ros::WallDuration(0.0), deadline_ - ros::SteadyTime::now());
                                                            ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp: At global scope:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/timeout.cpp:81:40: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
 void Timeout::timerCallback(const ros::SteadyTimerEvent &)
                                        ^
In file included from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/bond.h:41:0,
                 from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:32:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:58:8: error: ‘SteadyTimer’ in namespace ‘ros’ does not name a type
   ros::SteadyTimer timer_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:59:8: error: ‘SteadyTime’ in namespace ‘ros’ does not name a type
   ros::SteadyTime deadline_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:63:33: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
   void timerCallback(const ros::SteadyTimerEvent &e);
                                 ^
In file included from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:32:0:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/bond.h:170:8: error: ‘SteadyTimer’ in namespace ‘ros’ does not name a type
   ros::SteadyTimer publishingTimer_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/bond.h:178:32: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
   void doPublishing(const ros::SteadyTimerEvent &e);
                                ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: In destructor ‘bond::Bond::~Bond()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:110:3: error: ‘publishingTimer_’ was not declared in this scope
   publishingTimer_.stop();
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: In member function ‘void bond::Bond::start()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:181:3: error: ‘publishingTimer_’ was not declared in this scope
   publishingTimer_ = nh_.createSteadyTimer(
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:181:26: error: ‘class ros::NodeHandle’ has no member named ‘createSteadyTimer’
   publishingTimer_ = nh_.createSteadyTimer(
                          ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: In member function ‘bool bond::Bond::waitUntilFormed(ros::WallDuration)’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:205:3: error: ‘SteadyTime’ is not a member of ‘ros’
   ros::SteadyTime deadline(ros::SteadyTime::now() + timeout);
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:214:39: error: ‘deadline’ was not declared in this scope
       wait_time = std::min(wait_time, deadline - ros::SteadyTime::now());
                                       ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:214:55: error: ‘ros::SteadyTime’ has not been declared
       wait_time = std::min(wait_time, deadline - ros::SteadyTime::now());
                                                       ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: In member function ‘bool bond::Bond::waitUntilBroken(ros::WallDuration)’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:233:3: error: ‘SteadyTime’ is not a member of ‘ros’
   ros::SteadyTime deadline(ros::SteadyTime::now() + timeout);
   ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:242:39: error: ‘deadline’ was not declared in this scope
       wait_time = std::min(wait_time, deadline - ros::SteadyTime::now());
                                       ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:242:55: error: ‘ros::SteadyTime’ has not been declared
       wait_time = std::min(wait_time, deadline - ros::SteadyTime::now());
                                                       ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: At global scope:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:340:36: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
 void Bond::doPublishing(const ros::SteadyTimerEvent &)
                                    ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: In member function ‘void bond::Bond::doPublishing(const int&)’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:349:5: error: ‘publishingTimer_’ was not declared in this scope
     publishingTimer_.stop();
     ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp: In member function ‘void BondSM::StartDying()’:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/bond.cpp:416:6: error: ‘class bond::Bond’ has no member named ‘publishingTimer_’
   b->publishingTimer_.setPeriod(ros::WallDuration(bond::Constants::DEAD_PUBLISH_PERIOD));
      ^
make[2]: *** [bond_core/bondcpp/CMakeFiles/bondcpp.dir/src/timeout.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/bond.h:41:0,
                 from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:58:8: error: ‘SteadyTimer’ in namespace ‘ros’ does not name a type
   ros::SteadyTimer timer_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:59:8: error: ‘SteadyTime’ in namespace ‘ros’ does not name a type
   ros::SteadyTime deadline_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/timeout.h:63:33: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
   void timerCallback(const ros::SteadyTimerEvent &e);
                                 ^
In file included from /home/mobilerobot/hamster_ws/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:0:
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/bond.h:170:8: error: ‘SteadyTimer’ in namespace ‘ros’ does not name a type
   ros::SteadyTimer publishingTimer_;
        ^
/home/mobilerobot/hamster_ws/src/bond_core/bondcpp/include/bondcpp/bond.h:178:32: error: ‘SteadyTimerEvent’ in namespace ‘ros’ does not name a type
   void doPublishing(const ros::SteadyTimerEvent &e);
                                ^
make[2]: *** [bond_core/bondcpp/CMakeFiles/bondcpp.dir/src/BondSM_sm.cpp.o] Error 1
make[2]: *** [bond_core/bondcpp/CMakeFiles/bondcpp.dir/src/bond.cpp.o] Error 1
make[1]: *** [bond_core/bondcpp/CMakeFiles/bondcpp.dir/all] Error 2
make: *** [all] Error 2
Invoking "make -j8 -l8" failed

Static linking to uuid which might be GPL?

IANAL and I'm not entirely sure if the following concern is valid.

bondcpp statically links to uuid, and bond.cpp includes a header uuid.h.

On Ubuntu rosdep key uuid references to uuid-dev. Content of /usr/share/doc/uuid-dev/copyright shows large part of the package is licensed GPL-2+. I haven't found uuid-dev's repo nor website, but package info on debian.org also lists the similar copyright file with GPL-2+.

Ins't bondcpp considered to be a derived work, and doesn't GPL force the derived work to be declared as GPL?

Fail to process all bond callbacks in bondpy

Thank you for your work on migrating bondpy to ROS2!

I am currently using bondpy to create a Python lifecycle node as part of my development with the nav2 lifecycle manager. While the bond is formed successfully using bondpy, I encountered an issue where the node quickly dies due to a heartbeat timeout. After investigation, I discovered that bondpy fails to respond to all bond_status messages published by the lifecycle manager at high speed.

To resolve this issue, I referred to the implementation of bondcpp and increased the message buffer size from 1 to 100 in bondpy as follows:

def start(self):
    with self.lock:
        self.connect_timer.reset()
        self.sub = self.node.create_subscription(Status, self.topic, self._on_bond_status, 100)

        self.thread = threading.Thread(target=self._publishing_thread)
        self.thread.daemon = True
        self.thread.start()
        self.__started = True

If this modification does not lead to any potential errors, I would appreciate it if it could be included in an update to bondpy.

"AwaitSisterDeath"?

Maybe we should think about renaming these functions to something less dark... Isn't it also more of a TimeOut instead of certain death?

bondcpp compiling problems on macOS Catalina and c-lang 11

Below you will see a lengthy error output. Do I do something wrong?
Thanks
Jens

==> Processing catkin package: 'bondcpp'
==> Creating build directory: 'build_isolated/bondcpp'
==> Building with env: '/Users/jensi/ros_catkin_ws3/install_isolated/env.sh'
==> cmake /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp -DCATKIN_DEVEL_PREFIX=/Users/jensi/ros_catkin_ws3/devel_isolated/bondcpp -DCMAKE_INSTALL_PREFIX=/Users/jensi/ros_catkin_ws3/install_isolated -DCMAKE_BUILD_TYPE=Release -DCMAKE_MACOSX_RPATH=ON -DCMAKE_CXX_STANDARD=14 -DCMAKE_INSTALL_RPATH=/Users/jensi/ros_catkin_ws/install_isolated/lib -G Unix Makefiles in '/Users/jensi/ros_catkin_ws3/build_isolated/bondcpp'
-- The C compiler identification is AppleClang 11.0.0.11000033
-- The CXX compiler identification is AppleClang 11.0.0.11000033
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/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: /Library/Developer/CommandLineTools/usr/bin/c++
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/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 Boost: /usr/local/lib/cmake/Boost-1.72.0/BoostConfig.cmake (found version "1.72.0")  
-- Using CATKIN_DEVEL_PREFIX: /Users/jensi/ros_catkin_ws3/devel_isolated/bondcpp
-- Using CMAKE_PREFIX_PATH: /Users/jensi/ros_catkin_ws3/install_isolated
-- This workspace overlays: /Users/jensi/ros_catkin_ws3/install_isolated
-- Found PythonInterp: /usr/local/bin/python3 (found suitable version "3.7.6", minimum required is "3") 
-- Using PYTHON_EXECUTABLE: /usr/local/bin/python3
-- Using default Python package layout
-- Found PY_em: /usr/local/lib/python3.7/site-packages/em.py  
-- Using empy: /usr/local/lib/python3.7/site-packages/em.py
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /Users/jensi/ros_catkin_ws3/build_isolated/bondcpp/test_results
-- Found gtest: gtests will be built
-- nosetests not found, Python tests can not be run (try installing package 'python3-nose')
-- catkin 0.7.20
-- BUILD_SHARED_LIBS is on
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/jensi/ros_catkin_ws3/build_isolated/bondcpp
==> make -j8 -l8 in '/Users/jensi/ros_catkin_ws3/build_isolated/bondcpp'
Scanning dependencies of target std_msgs_generate_messages_nodejs
Scanning dependencies of target roscpp_generate_messages_eus
Scanning dependencies of target rosgraph_msgs_generate_messages_py
Scanning dependencies of target roscpp_generate_messages_nodejs
Scanning dependencies of target rosgraph_msgs_generate_messages_cpp
Scanning dependencies of target rosgraph_msgs_generate_messages_nodejs
[  0%] Built target roscpp_generate_messages_eus
[  0%] Built target std_msgs_generate_messages_nodejs
[  0%] Built target roscpp_generate_messages_nodejs
[  0%] Built target rosgraph_msgs_generate_messages_cpp
[  0%] Built target rosgraph_msgs_generate_messages_py
[  0%] Built target rosgraph_msgs_generate_messages_nodejs
Scanning dependencies of target std_msgs_generate_messages_cpp
Scanning dependencies of target rosgraph_msgs_generate_messages_eus
Scanning dependencies of target rosgraph_msgs_generate_messages_lisp
Scanning dependencies of target std_msgs_generate_messages_py
Scanning dependencies of target std_msgs_generate_messages_eus
Scanning dependencies of target std_msgs_generate_messages_lisp
[  0%] Built target rosgraph_msgs_generate_messages_eus
[  0%] Built target std_msgs_generate_messages_cpp
[  0%] Built target rosgraph_msgs_generate_messages_lisp
[  0%] Built target std_msgs_generate_messages_py
[  0%] Built target std_msgs_generate_messages_lisp
[  0%] Built target std_msgs_generate_messages_eus
Scanning dependencies of target bond_generate_messages_py
Scanning dependencies of target bond_generate_messages_nodejs
Scanning dependencies of target bond_generate_messages_lisp
Scanning dependencies of target roscpp_generate_messages_py
Scanning dependencies of target roscpp_generate_messages_cpp
Scanning dependencies of target bond_generate_messages_eus
[  0%] Built target bond_generate_messages_lisp
[  0%] Built target bond_generate_messages_py
[  0%] Built target bond_generate_messages_nodejs
[  0%] Built target roscpp_generate_messages_py
[  0%] Built target roscpp_generate_messages_cpp
[  0%] Built target bond_generate_messages_eus
Scanning dependencies of target roscpp_generate_messages_lisp
Scanning dependencies of target bond_generate_messages_cpp
[  0%] Built target bond_generate_messages_cpp
[  0%] Built target roscpp_generate_messages_lisp
Scanning dependencies of target bondcpp
[ 25%] Building CXX object CMakeFiles/bondcpp.dir/src/timeout.cpp.o
[ 50%] Building CXX object CMakeFiles/bondcpp.dir/src/bond.cpp.o
[ 75%] Building CXX object CMakeFiles/bondcpp.dir/src/BondSM_sm.cpp.o
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/timeout.cpp:30:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/timeout.h:33:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/ros.h:38:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/time.h:53:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/platform.h:38:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:642:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:79:9: error: no member named
      'strcoll' in the global namespace; did you mean 'strtoll'?
using ::strcoll;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdlib.h:172:3: note: 'strtoll'
      declared here
         strtoll(const char *__str, char **__endptr, int __base);
         ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/timeout.cpp:30:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/timeout.h:33:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/ros.h:38:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/time.h:53:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/platform.h:38:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:642:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:80:9: error: no member named
      'strxfrm' in the global namespace
using ::strxfrm;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:81:9: error: no member named
      'memchr' in the global namespace
using ::memchr;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:83:9: error: no member named
      'strcspn' in the global namespace
using ::strcspn;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:84:9: error: no member named
      'strpbrk' in the global namespace
using ::strpbrk;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:85:9: error: no member named
      'strrchr' in the global namespace; did you mean 'strchr'?
using ::strrchr;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:86:18: note: 
      'strchr' declared here
extern char     *strchr(const char *s, int c);
                 ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/timeout.cpp:30:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/timeout.h:33:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/ros.h:38:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/time.h:53:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/platform.h:38:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:642:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:86:9: error: no member named
      'strspn' in the global namespace
using ::strspn;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:87:9: error: no member named
      'strstr' in the global namespace; did you mean 'strnstr'?
using ::strstr;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:85:18: note: 
      'strnstr' declared here
extern char     *strnstr(char *s, const char *find, size_t slen);
                 ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/timeout.cpp:30:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/timeout.h:33:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/ros.h:38:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/time.h:53:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/platform.h:38:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:642:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:89:9: error: no member named
      'strtok' in the global namespace
using ::strtok;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:92:9: error: no member named
      'strerror' in the global namespace
using ::strerror;
      ~~^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/timeout.cpp:30:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/timeout.h:33:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/ros.h:38:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/time.h:53:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/platform.h:38:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:643:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:979:5: error: no member named
      '__builtin___memcpy_chk' in namespace 'std'; did you mean simply '__builtin___memcpy_chk'?
    std::memcpy(&__r, __p, sizeof(__r));
    ^~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:107:9: note: 
      '__builtin___memcpy_chk' declared here
        return __builtin___memcpy_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/bond.cpp:32:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:658:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:204:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:79:9: error: no member named
      'strcoll' in the global namespace; did you mean 'strtoll'?
using ::strcoll;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdlib.h:172:3: note: 'strtoll'
      declared here
         strtoll(const char *__str, char **__endptr, int __base);
         ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:658:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:204:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:79:9: error: no member named
      'strcoll' in the global namespace; did you mean 'strtoll'?
using ::strcoll;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdlib.h:172:3: note: 'strtoll'
      declared here
         strtoll(const char *__str, char **__endptr, int __base);
         ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/bond.cpp:32:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:658:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:204:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:80:9: error: no member named
      'strxfrm' in the global namespace
using ::strxfrm;
      ~~^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:658:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:204:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:80:9: error: no member named
      'strxfrm' in the global namespace
using ::strxfrm;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:81:9: error: no member named
      'memchr' in the global namespace
using ::memchr;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:81:9: error: no member named
      'memchr' in the global namespace
using ::memchr;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:83:9: error: no member named
      'strcspn' in the global namespace
using ::strcspn;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:83:9: error: no member named
      'strcspn' in the global namespace
using ::strcspn;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:84:9: error: no member named
      'strpbrk' in the global namespace
using ::strpbrk;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:84:9: error: no member named
      'strpbrk' in the global namespace
using ::strpbrk;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:85:9: error: no member named
      'strrchr' in the global namespace; did you mean 'strchr'?
using ::strrchr;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:86:18: note: 
      'strchr' declared here
extern char     *strchr(const char *s, int c);
                 ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:85:9: error: no member named
      'strrchr' in the global namespace; did you mean 'strchr'?
using ::strrchr;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:86:18: note: 
      'strchr' declared here
extern char     *strchr(const char *s, int c);
                 ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/bond.cpp:32:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:658:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:204:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:86:9: error: no member named
      'strspn' in the global namespace
using ::strspn;
      ~~^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:658:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:204:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:86:9: error: no member named
      'strspn' in the global namespace
using ::strspn;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:87:9: error: no member named
      'strstr' in the global namespace; did you mean 'strnstr'?
using ::strstr;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:85:18: note: 
      'strnstr' declared here
extern char     *strnstr(char *s, const char *find, size_t slen);
                 ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:87:9: error: no member named
      'strstr' in the global namespace; did you mean 'strnstr'?
using ::strstr;
      ~~^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:85:18: note: 
      'strnstr' declared here
extern char     *strnstr(char *s, const char *find, size_t slen);
                 ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/bond.cpp:32:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:658:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:204:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:89:9: error: no member named
      'strtok' in the global namespace
using ::strtok;
      ~~^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:658:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:204:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:89:9: error: no member named
      'strtok' in the global namespace
using ::strtok;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:92:9: error: no member named
      'strerror' in the global namespace
using ::strerror;
      ~~^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstring:92:9: error: no member named
      'strerror' in the global namespace
using ::strerror;
      ~~^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:658:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:979:5: error: no member named
      '__builtin___memcpy_chk' in namespace 'std'; did you mean simply '__builtin___memcpy_chk'?
    std::memcpy(&__r, __p, sizeof(__r));
    ^~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:107:9: note: 
      '__builtin___memcpy_chk' declared here
        return __builtin___memcpy_chk(dest, src, len, XNU_BOS(dest, 0));
         In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/bond.cpp:32:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:658:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/utility:979:5: error: no member named
      '__builtin___memcpy_chk' in namespace 'std'; did you mean simply '__builtin___memcpy_chk'?
    std::memcpy(&__r, __p, sizeof(__r));
    ^~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:107:9: note: 
      '__builtin___memcpy_chk' declared here
        return __builtin___memcpy_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
      ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/timeout.cpp:30:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/timeout.h:33:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/ros.h:38:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/time.h:53:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/platform.h:38:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:644:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1634:17: error: no member named
      '__builtin___memcpy_chk' in namespace 'std::__1'; did you mean simply '__builtin___memcpy_chk'?
                _VSTD::memcpy(__begin2, __begin1, _Np * sizeof(_Tp));
                ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:107:9: note: 
      '__builtin___memcpy_chk' declared here
        return __builtin___memcpy_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/timeout.cpp:30:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/timeout.h:33:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/ros.h:38:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/time.h:53:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/platform.h:38:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:644:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1667:17: error: no member named
      '__builtin___memcpy_chk' in namespace 'std::__1'; did you mean simply '__builtin___memcpy_chk'?
                _VSTD::memcpy(const_cast<_RawDestTp*>(__begin2), __begin1, _Np * sizeof(_DestTp));
                ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:107:9: note: 
      '__builtin___memcpy_chk' declared here
        return __builtin___memcpy_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/timeout.cpp:30:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/timeout.h:33:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/ros.h:38:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/time.h:53:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/platform.h:38:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:644:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1700:17: error: no member named
      '__builtin___memcpy_chk' in namespace 'std::__1'; did you mean simply '__builtin___memcpy_chk'?
                _VSTD::memcpy(__end2, __begin1, _Np * sizeof(_Tp));
                ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:107:9: note: 
      '__builtin___memcpy_chk' declared here
        return __builtin___memcpy_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1634:17: error: no member named
      '__builtin___memcpy_chk' in namespace 'std::__1'; did you mean simply '__builtin___memcpy_chk'?
                _VSTD::memcpy(__begin2, __begin1, _Np * sizeof(_Tp));
                ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:107:9: note: 
      '__builtin___memcpy_chk' declared here
        return __builtin___memcpy_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/bond.cpp:32:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1634:17: error: no member named
      '__builtin___memcpy_chk' in namespace 'std::__1'; did you mean simply '__builtin___memcpy_chk'?
                _VSTD::memcpy(__begin2, __begin1, _Np * sizeof(_Tp));
                ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:107:9: note: 
      '__builtin___memcpy_chk' declared here
        return __builtin___memcpy_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1667:17: error: no member named
      '__builtin___memcpy_chk' in namespace 'std::__1'; did you mean simply '__builtin___memcpy_chk'?
                _VSTD::memcpy(const_cast<_RawDestTp*>(__begin2), __begin1, _Np * sizeof(_DestTp));
                ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:107:9: note: 
      '__builtin___memcpy_chk' declared here
        return __builtin___memcpy_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/bond.cpp:32:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1667:17: error: no member named
      '__builtin___memcpy_chk' in namespace 'std::__1'; did you mean simply '__builtin___memcpy_chk'?
                _VSTD::memcpy(const_cast<_RawDestTp*>(__begin2), __begin1, _Np * sizeof(_DestTp));
                ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:107:9: note: 
      '__builtin___memcpy_chk' declared here
        return __builtin___memcpy_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1700:17: error: no member named
      '__builtin___memcpy_chk' in namespace 'std::__1'; did you mean simply '__builtin___memcpy_chk'?
                _VSTD::memcpy(__end2, __begin1, _Np * sizeof(_Tp));
                ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:107:9: note: 
      '__builtin___memcpy_chk' declared here
        return __builtin___memcpy_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/bond.cpp:32:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:35:
In file included from /usr/local/include/boost/scoped_ptr.hpp:13:
In file included from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:22:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:1700:17: error: no member named
      '__builtin___memcpy_chk' in namespace 'std::__1'; did you mean simply '__builtin___memcpy_chk'?
                _VSTD::memcpy(__end2, __begin1, _Np * sizeof(_Tp));
                ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:107:9: note: 
      '__builtin___memcpy_chk' declared here
        return __builtin___memcpy_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/timeout.cpp:30:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/timeout.h:33:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/ros.h:38:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/time.h:53:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/platform.h:38:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:1652:9: error: no member named
      '__builtin___memmove_chk' in namespace 'std::__1'; did you mean simply '__builtin___memmove_chk'?
        _VSTD::memmove(__result, __first, __n * sizeof(_Up));
        ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:112:9: note: 
      '__builtin___memmove_chk' declared here
        return __builtin___memmove_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/timeout.cpp:30:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/timeout.h:33:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/ros.h:38:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/time.h:53:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/platform.h:38:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:1690:9: error: no member named
      '__builtin___memmove_chk' in namespace 'std::__1'; did you mean simply '__builtin___memmove_chk'?
        _VSTD::memmove(__result, __first, __n * sizeof(_Up));
        ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:112:9: note: 
      '__builtin___memmove_chk' declared here
        return __builtin___memmove_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/timeout.cpp:30:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/timeout.h:33:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/ros.h:38:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/time.h:53:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/platform.h:38:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:1791:9: error: no member named
      '__builtin___memmove_chk' in namespace 'std::__1'; did you mean simply '__builtin___memmove_chk'?
        _VSTD::memmove(__result, __first, __n * sizeof(_Up));
        ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:112:9: note: 
      '__builtin___memmove_chk' declared here
        return __builtin___memmove_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/timeout.cpp:30:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/timeout.h:33:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/ros.h:38:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/time.h:53:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/platform.h:38:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:1829:9: error: no member named
      '__builtin___memmove_chk' in namespace 'std::__1'; did you mean simply '__builtin___memmove_chk'?
        _VSTD::memmove(__result, __first, __n * sizeof(_Up));
        ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:112:9: note: 
      '__builtin___memmove_chk' declared here
        return __builtin___memmove_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/bond.cpp:32:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:36:
In file included from /usr/local/include/boost/thread/mutex.hpp:16:
In file included from /usr/local/include/boost/thread/pthread/mutex.hpp:14:
In file included from /usr/local/include/boost/thread/exceptions.hpp:20:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:1652:9: error: no member named
      '__builtin___memmove_chk' in namespace 'std::__1'; did you mean simply '__builtin___memmove_chk'?
        _VSTD::memmove(__result, __first, __n * sizeof(_Up));
        ^~~~~~~
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/BondSM_sm.cpp/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config::8873:
:In file included from 15/Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:: 36:
noteIn file included from : /usr/local/include/boost/thread/mutex.hpp:16expanded:
 In file included from from/usr/local/include/boost/thread/pthread/mutex.hpp
:      14macro:
 In file included from '_VSTD'/usr/local/include/boost/thread/exceptions.hpp:
20:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:1652:9: error: #define _VSTD std::_LIBCPP_ABI_NAMESPACE
no              ^ 
member named
      '__builtin___memmove_chk' in namespace 'std::__1';/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h :did112 :you9 :mean  simply note'__builtin___memmove_chk'?: 

      '__builtin___memmove_chk' declared here
        _VSTD::memmove(__result, __first, __n * sizeof(_Up));
        return __builtin___memmove_chk(dest, src, len, XNU_BOS(dest, 0));
        ^~~~~~~
               ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:112:9: note: 
      '__builtin___memmove_chk' declared here
        return __builtin___memmove_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/bond.cpp:32:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:36:
In file included from /usr/local/include/boost/thread/mutex.hpp:16:
In file included from /usr/local/include/boost/thread/pthread/mutex.hpp:14:
In file included from /usr/local/include/boost/thread/exceptions.hpp:20:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:1690:9: error: no member named
      '__builtin___memmove_chk' in namespace 'std::__1'; did you mean simply '__builtin___memmove_chk'?
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:36:
In file included from /usr/local/include/boost/thread/mutex.hpp:16:
In file included from /usr/local/include/boost/thread/pthread/mutex.hpp:14        _VSTD::memmove(__result, __first, __n * sizeof(_Up));:

In file included from /usr/local/include/boost/thread/exceptions.hpp        ^~~~~~~:
20:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config176::
873In file included from :/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string15::57 :
note/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm: :1690expanded: 9from:
       macro error'_VSTD': 
no member named
      '__builtin___memmove_chk' in namespace #define _VSTD std::_LIBCPP_ABI_NAMESPACE'std::__1';
 did              ^ 
you mean simply '__builtin___memmove_chk'?
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:112:9: note: 
      '__builtin___memmove_chk' declared here
        _VSTD::memmove(__result, __first, __n * sizeof(_Up));
        ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:        return __builtin___memmove_chk(dest, src, len, XNU_BOS(dest, 0));873
:15               ^:
 note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:112:9: note: 
      '__builtin___memmove_chk' declared here
        return __builtin___memmove_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:36:
In file included from /usr/local/include/boost/thread/mutex.hpp:16:
In file included from /usr/local/include/boost/thread/pthread/mutex.hpp:14:
In file included from /usr/local/include/boost/thread/exceptions.hpp:20:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:1791:9: error: no member named
      '__builtin___memmove_chk' in namespace 'std::__1'; did you mean simply '__builtin___memmove_chk'?
        _VSTD::memmove(__result, __first, __n * sizeof(_Up));
        ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:112:9: note: 
      '__builtin___memmove_chk' declared here
        return __builtin___memmove_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/bond.cpp:32:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:36:
In file included from /usr/local/include/boost/thread/mutex.hpp:16:
In file included from /usr/local/include/boost/thread/pthread/mutex.hpp:14:
In file included from /usr/local/include/boost/thread/exceptions.hpp:20:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:1791:9: error: no member named
      '__builtin___memmove_chk' in namespace 'std::__1'; did you mean simply '__builtin___memmove_chk'?
        _VSTD::memmove(__result, __first, __n * sizeof(_Up));
        ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:112:9: note: 
      '__builtin___memmove_chk' declared here
        return __builtin___memmove_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:36:
In file included from /usr/local/include/boost/thread/mutex.hpp:16:
In file included from /usr/local/include/boost/thread/pthread/mutex.hpp:14:
In file included from /usr/local/include/boost/thread/exceptions.hpp:20:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:1829:9: error: no member named
      '__builtin___memmove_chk' in namespace 'std::__1'; did you mean simply '__builtin___memmove_chk'?
        _VSTD::memmove(__result, __first, __n * sizeof(_Up));
        ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:112:9: note: 
      '__builtin___memmove_chk' declared here
        return __builtin___memmove_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/bond.cpp:32:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:36:
In file included from /usr/local/include/boost/thread/mutex.hpp:16:
In file included from /usr/local/include/boost/thread/pthread/mutex.hpp:14:
In file included from /usr/local/include/boost/thread/exceptions.hpp:20:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:505:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__string:57:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:1829:9: error: no member named
      '__builtin___memmove_chk' in namespace 'std::__1'; did you mean simply '__builtin___memmove_chk'?
        _VSTD::memmove(__result, __first, __n * sizeof(_Up));
        ^~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__config:873:15: note: expanded from
      macro '_VSTD'
#define _VSTD std::_LIBCPP_ABI_NAMESPACE
              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Headers/string.h:112:9: note: 
      '__builtin___memmove_chk' declared here
        return __builtin___memmove_chk(dest, src, len, XNU_BOS(dest, 0));
               ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/timeout.cpp:30:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/timeout.h:33:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/ros.h:38:
In file included from /Users/jensi/ros_catkin_ws3/install_isolated/include/ros/time.h:54:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/iostream:38:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/ios:216:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__locale:18:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/mutex:191:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__mutex_base:17:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__threading_support:375:44: error: use of
      undeclared identifier 'errno'
   while (nanosleep(&__ts, &__ts) == -1 && errno == EINTR);
                                           ^
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/BondSM_sm.cpp:8:
In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h:36:
In file included from /usr/local/include/boost/thread/mutex.hpp:16:
In file included from /usr/local/include/boost/thread/pthread/mutex.hpp:14:
In file included from In file included from /Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/src/bond.cpp/usr/local/include/boost/thread/exceptions.hpp::2232:
:
In file included from In file included from /usr/local/include/boost/system/system_error.hpp/Users/jensi/ros_catkin_ws3/src/bond_core/bondcpp/include/bondcpp/bond.h::1136:
:
In file included from In file included from /usr/local/include/boost/system/error_code.hpp/usr/local/include/boost/thread/mutex.hpp::1716:
:
In file included from In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/ostream/usr/local/include/boost/thread/pthread/mutex.hpp::13814:
:
In file included from In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/ios:/usr/local/include/boost/thread/exceptions.hpp:21622:
:
In file included from In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__locale/usr/local/include/boost/system/system_error.hpp::1811:
:
In file included from In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/mutex/usr/local/include/boost/system/error_code.hpp::19117:
:
In file included from In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__mutex_base/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/ostream::17138:
:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/ios:/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__threading_support216::
375In file included from :/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__locale44::18 :
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/mutexerror:: 191:
In file included from /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__mutex_baseuse: 17of:

      undeclared/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__threading_support :identifier375 :'errno'44:
 error: use of
      undeclared identifier 'errno'
   while (nanosleep(&__ts, &__ts) == -1 && errno == EINTR);
                                           ^
   while (nanosleep(&__ts, &__ts) == -1 && errno == EINTR);
                                           ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
fatal error: too many errors emitted, stopping now [-ferror-limit=]
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [CMakeFiles/bondcpp.dir/src/timeout.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
20 errors generated.
20 errors generated.
make[2]: *** [CMakeFiles/bondcpp.dir/src/bond.cpp.o] Error 1
make[2]: *** [CMakeFiles/bondcpp.dir/src/BondSM_sm.cpp.o] Error 1
make[1]: *** [CMakeFiles/bondcpp.dir/all] Error 2
make: *** [all] Error 2
<== Failed to process package 'bondcpp': 
  Command '['/Users/jensi/ros_catkin_ws3/install_isolated/env.sh', 'make', '-j8', '-l8']' returned non-zero exit status 2.

[Feature] Use DDS Liveliness Qos instead of periodic messages

Currently, bond relies on sending ReliabilityPolicy::Reliable messages periodically, with managed timers, timeouts, etc. In ROS2 over DDS, these sorts of features are actually built into the RMW in a more efficient way, by using Liveliness QoS, and liveliness event callbacks.

That way, if you just want a heartbeat, it is possible even to simply renew your lease duration periodically, and not even actually publish a message at all, if no data needs to be transmitted.

Motivation

bond uses quite a lot of DDS bandwidth for the task of keeping multiple nodes alive together.

Implementation concerns

Since advanced QoS is not used by most ROS2 users, the common middlewares (FastDDS, CycloneDDS) are inconsistent in their implementation of liveliness qos events at the rclcpp level, from my experience.

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.