hsd-dev / action_bridge Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
I am currently trying to use a ROS 2 action client to call the follow_joint_trajectory action server hosted on the Melodic gazebo_ros_control, since it is unavailable in Dashing yet.
Currently your action bridge only seems to support one direction, which is bridging the ROS 1 client and the ROS2 server. It will be nice to have the reversed direction as well.
i was trying to give it a shot, but facing build problem here,
using docker image ubuntu16.04 / ROS melodic&crystal.
--- stderr: action_bridge
/root/ros2_intro_colcon/src/action_bridge/src/action_bridge_follow_joint_trajectory.cpp:28:10: fatal error: control_msgs/action/follow_joint_trajectory.hpp: No such file or directory
#include "control_msgs/action/follow_joint_trajectory.hpp"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/action_bridge_follow_joint_trajectory_node.dir/src/action_bridge_follow_joint_trajectory.cpp.o] Error 1
make[1]: *** [CMakeFiles/action_bridge_follow_joint_trajectory_node.dir/all] Error 2
make: *** [all] Error 2
---
Failed <<< action_bridge [ Exited with code 2 ]
confirmed control-msgs packages are installed on host for melodic and crystal.
~/ros2_intro_colcon# dpkg -l | grep control_msgs
ii ros-crystal-control-msgs 2.1.0-0bionic.20190402.205335 amd64 control_msgs contains base messages and actions useful for controlling robots.
ii ros-melodic-control-msgs 1.5.0-0bionic.20190319.071503 amd64 control_msgs contains base messages and actions useful for controlling robots.
For my reference: https://github.com/ipa-hsd/action_bridge/tree/dashing-devel
ros2 run --prefix=gdb action_bridge action_bridge_fibonacci_node
GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/hsd/dev/bridge_ws/install/action_bridge/lib/action_bridge/action_bridge_fibonacci_node...(no debugging symbols found)...done.
(gdb) run
Starting program: /home/hsd/dev/bridge_ws/install/action_bridge/lib/action_bridge/action_bridge_fibonacci_node
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffed9b3700 (LWP 537)]
[New Thread 0x7fffed1b2700 (LWP 538)]
[New Thread 0x7fffec9b1700 (LWP 539)]
[New Thread 0x7fffe7fff700 (LWP 540)]
[New Thread 0x7fffe5c7b700 (LWP 541)]
[New Thread 0x7fffe547a700 (LWP 542)]
[New Thread 0x7fffe4c79700 (LWP 543)]
[New Thread 0x7fffd7fff700 (LWP 544)]
[New Thread 0x7fffd77fe700 (LWP 545)]
[New Thread 0x7fffd6ffd700 (LWP 546)]
[New Thread 0x7fffd63de700 (LWP 547)]
[New Thread 0x7fffd55cb700 (LWP 548)]
[New Thread 0x7fffd4dca700 (LWP 549)]
[New Thread 0x7fffbffff700 (LWP 550)]
[New Thread 0x7fffbf7fe700 (LWP 551)]
[INFO] [action_bridge_fibonacci]: Sending goal
[New Thread 0x7fffbeffd700 (LWP 568)]
[New Thread 0x7fffbe7fc700 (LWP 569)]
goal accepted
[Thread 0x7fffbeffd700 (LWP 568) exited]
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Thread 1 "action_bridge_f" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6)
at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007ffff5698801 in __GI_abort () at abort.c:79
#2 0x00007ffff5ced957 in ?? ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff5cf3ab6 in ?? ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff5cf3af1 in std::terminate() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff5cf3d24 in __cxa_throw ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007ffff5cf429c in operator new(unsigned long) ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7 0x00007ffff5d85bc7 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
---Type <return> to continue, or q <return> to quit---
#8 0x00007ffff5d85f19 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#9 0x000055555557f45f in actionlib_msgs::GoalID_<std::allocator<void> >::operator=(actionlib_msgs::GoalID_<std::allocator<void> > const&) ()
#10 0x000055555557f489 in actionlib_msgs::GoalStatus_<std::allocator<void> >::operator=(actionlib_msgs::GoalStatus_<std::allocator<void> > const&) ()
#11 0x00005555555aa90e in actionlib::ActionServer<actionlib_tutorials::FibonacciAction_<std::allocator<void> > >::publishFeedback(actionlib_msgs::GoalStatus_<std::allocator<void> > const&, actionlib_tutorials::FibonacciFeedback_<std::allocator<void> > const&) ()
#12 0x0000555555583508 in actionlib::ServerGoalHandle<actionlib_tutorials::FibonacciAction_<std::allocator<void> > >::publishFeedback(actionlib_tutorials::FibonacciFeedback_<std::allocator<void> > const&) ()
#13 0x000055555557d5bd in ActionBridge<actionlib_tutorials::FibonacciAction_<std::allocator<void> >, example_interfaces::action::Fibonacci>::GoalHandler::handle()::{lambda(std::shared_ptr<rclcpp_action::ClientGoalHandle<example_interfaces::action::Fibonacci> >, auto:1)#2}::operator()<std::shared_ptr<example_interfaces::action::Fibonacci_Feedback_<std::allocator<void> > const> > ()
#14 0x0000555555591e9f in std::_Function_handler<void (std::shared_ptr<rclcpp_action::ClientGoalHandle<example_interfaces::action::Fibonacci> >, std::shared_ptr<example_interfaces::action::Fibonacci_Feedback_<std::allocator<void> > const>), ActionBridge<actionlib_tutorials::FibonacciAction_<std::allocator<void> >, example_interfaces::action::Fibonacci>::GoalHandler::handle()::{lambda(std::shared_ptr<rclcpp_action::ClientGoalHandle<example_interfaces::action::Fibonacci> >, auto:1)#2}>::_M_invoke(std::_Any_data const&, std::shared_ptr<rclcpp_action::ClientGoalHandle<example_interfaces::action::Fibonacci> >&&, std::shared_ptr<example_interfaces::action::Fibonacci_Feedback_<std::allocator<void> > const>&&) ()
#15 0x00005555555afb7d in std::function<void (std::shared_ptr<rclcpp_action::ClientGoalHandle<example_interfaces::action::Fibonacci> >, std::shared_ptr<example_interfaces::action::Fibonacci_Feedback_<std::allocator<void> > const>)>::operator()(std::shared_ptr<rclcpp_action::ClientGoalHandle<example_interfaces::action::Fibonacci> >, std::shared_ptr<example_interfaces::action::Fibonacci_Feedback_<std::allocator<void> > const>) const ()
#16 0x00005555555acac9 in rclcpp_action::ClientGoalHandle<example_interfaces::action::Fibonacci>::call_feedback_callback(std::shared_ptr<rclcpp_action::ClientGoalHandle<example_interfaces::action::Fibonacci> >, std::shared_ptr<example_interfaces::action::Fibonacci_Feedback_<std::allocator<void> > const>) ()
#17 0x00005555555a9e64 in rclcpp_action::Client<example_interfaces::action::Fibonacci>::handle_feedback_message(std::shared_ptr<void>) ()
#18 0x00007ffff696403f in rclcpp_action::ClientBase::execute() () from /opt/ros/dashing/lib/librclcpp_action.so
#19 0x00007ffff669cc7f in rclcpp::executor::Executor::execute_any_executable(rclcpp::executor::AnyExecutable&) ()
from /opt/ros/dashing/lib/librclcpp.so
#20 0x00007ffff66a2f2f in rclcpp::executors::SingleThreadedExecutor::spin() () from /opt/ros/dashing/lib/librclcpp.so
#21 0x00007ffff669fc32 in rclcpp::spin(std::shared_ptr<rclcpp::node_interfaces::NodeBaseInterface>) () from /opt/ros/dashing/lib/librclcpp.so
#22 0x00007ffff669feeb in rclcpp::spin(std::shared_ptr<rclcpp::Node>) () from /opt/ros/dashing/lib/librclcpp.so
#23 0x00005555555747ce in ActionBridge<actionlib_tutorials::FibonacciAction_<std::allocator<void> >, example_interfaces::action::Fibonacci>::main(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, char**) ()
#24 0x000055555556d093 in main ()
On the ROS1 action client side, I get:
$ rosrun actionlib_tutorials fibonacci_client
[ INFO] [1562932615.221419967]: Waiting for action server to start.
[ INFO] [1562932615.608441769]: Action server started, sending goal.
[ WARN] [1562932621.009234296]: Transitioning goal to LOST
[ INFO] [1562932621.009466688]: Action finished: LOST
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.