Comments (3)
can't address this without a reproducible example
from behaviortree.ros2.
I am facing the same issue. In my case the example is with Nav2, if I have one node which sends a initial position to Nav2, and then the next node sends a goal position to travel to (using the NavigateToPose action), the goal is rejected because Nav2 is still busy processing my publishing of an initial position. Giving you code to reproduce this accurately might be tricky, but I would also like to know the rationale for throwing a runtime_error at all rather than NodeFailure, since the former crashes the entire BT, and the latter allows the developer to choose how to handle the situation.
from behaviortree.ros2.
We are facing the same issue with a custom action. In our case, the action server is responsible to dock and undock the robot to it's docking station. If the docking station is not visible by our camera then the action server will reject the action.
The desired behavior would be to catch the action rejection in the BT and handle it accordingly. Therefore, the bt_action_node must not throw because the whole bt crashes.
I filed a very simple PR to address this issue, please have a look and give me your feedback on this :)
#39
from behaviortree.ros2.
Related Issues (20)
- Unit Testing
- A blocking version of RosServiceNode
- How to connect to groot2 HOT 1
- High CPU Usage with ROS Action BT Nodes HOT 3
- Tree calling other trees design question HOT 2
- How to combine `StatefulActionNode` and `RosServiceNode`? HOT 1
- Constant timeout in RosServiceNode
- onFeedback for bt_action_node is not receiving feedback HOT 5
- Having a Service node and Action node within the same ReactiveSequence HOT 4
- ERROR loading library [libdummy_sleep_action_bt_node.so]: can't find symbol [BT_RegisterNodesFromPlugin] HOT 1
- Late subscribtions to topics using a dynamic 'topic_name' (blackboardpointer) output 'nullptr' until next message is published. HOT 3
- Cancellation of unkown goal not detectable HOT 4
- rclcpp::Node as a shared pointer may cause circular dependency HOT 4
- BT Not Running / Failed When Running Inside Docker Container HOT 1
- Overrided registerNodesIntoFactory doesn't work HOT 1
- Why doesn't TreeExecutionServer directly expose rclcpp::Node::SharedPtr? HOT 4
- Tips to implement "long running or infinite time actions"
- Defining default_port_value for ROS2 plugins HOT 1
- Behavior Tree Goal on launch on TreeExecutionServer HOT 1
- sample_bt_executor.yaml contains missing plugin path HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from behaviortree.ros2.