Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • May 08 20:37
    UnsealedWiener edited #281
  • May 08 20:23
    UnsealedWiener edited #281
  • May 08 20:21
    UnsealedWiener opened #281
  • May 02 18:18
    facontidavide closed #267
  • May 02 18:18

    facontidavide on master

    updated to latest flatbuffers Merge branch 'master' of https:… (compare)

  • May 02 18:03
    facontidavide closed #219
  • May 02 17:59

    facontidavide on master

    Update README.md (compare)

  • May 02 17:54
    facontidavide labeled #278
  • May 02 17:53
    facontidavide closed #273
  • May 02 17:52

    facontidavide on master

    add github workflow Merge branch 'git_actions' remove appveyor and 3 more (compare)

  • May 02 15:18

    facontidavide on master

    Fixes for compilation on window… (compare)

  • May 02 15:18
    facontidavide closed #248
  • May 02 15:16
    facontidavide closed #158
  • May 02 15:14

    facontidavide on master

    Remove native support for Conan… (compare)

  • May 02 15:14
    facontidavide closed #280
  • May 02 15:06

    facontidavide on git_actions

    add github workflow (compare)

  • Apr 30 14:30
    uilianries opened #280
  • Apr 28 11:36
    m666m closed #279
  • Apr 28 11:27
    m666m opened #279
  • Apr 25 14:26
    facontidavide edited #276
Litan Virgil
@vlitan
Hi all! I am currently working on an embedded project (using c++14) and I was wondering if I have any chance to use the BehaviourTree.CPP in my project.
I am looking for a solution that given a set of events, states, and functions of the system would allow me to change the behaviour of the system without changing the code (ex: loading the .xml file via serial comm on my board)
Davide Faconti
@facontidavide
Yes, I don't see why uou couldn'y use this library
Litan Virgil
@vlitan
I am not sure what dependencies are needed in order to use the library
Davide Faconti
@facontidavide
All the dependency are in the 3rdparty library and are compiled together with the main library
omarwalid96
@omarwalid96
Hi Davide, i know what i'm going to ask maybe a bit stupid but i've been trying to resolve this issue for two days and I can't get it to work,
I was able to use the behavior tree with groot to register nodes, but there is a function called createTreeFromXml that alwasy gives an error that it isn't inculded in the library which is wierd because when i track it down it's found in the bt_factory class
And also i was trying to implement ros with the behaviortree and groot, but i don't know to link groot with ros created action nodes, and also how to use a generated tree with a simulation
Nathan
@nathantsoi
hi all, thanks for the great library. i am looking for a ROS example. is there a suggested way to integrate with ROS? e.g. maybe call ros actions from: CoroActionNode
marcus1337
@marcus1337
I have compiled the BT library using visual studio
how would I in the most easy way possible port the API to another project, is there a specific include header-file?
also what is ZMQ
Davide Faconti
@facontidavide
ZeroMQ
Kevin DeMarco
@SyllogismRXS
I am interested in using BehaviorTree.CPP in ROS. I see how I could implement a node that uses the BehaviorTree library directly, but I was wondering if there is already an existing implementation that makes use of ROS' Action Server interface for separating the BehaviorTree processing from the actual Action implementations in their own ROS nodes.
marcus1337
@marcus1337

-- Could NOT find ZMQ (missing: ZMQ_LIBRARIES ZMQ_INCLUDE_DIRS)
CMake Warning at depend/BehaviorTree.CPP/CMakeLists.txt:43 (message):
ZeroMQ NOT found. Skipping the build of [PublisherZMQ] and [bt_recorder].

-- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)
CMake Warning at depend/BehaviorTree.CPP/CMakeLists.txt:92 (message):
GTest missing!

getting this when compiling groot with cmake
I have downloaded ZMQ separately
bah, will probably find other software as my purpose is only to visualize trees, not edit them
Kevin DeMarco
@SyllogismRXS
So, no one else is using this to trigger actions over the ROS Action Server yet? I don't want to write something that exists already...
Davide Faconti
@facontidavide
Well Navigation2 (ROS2) does use Behaviortree.CPP and you can easily use this library to interact with ROS Actions. There is an example here: https://github.com/BehaviorTree/BehaviorTree.ROS/tree/master/src/actions
I need to write a better on, though
About ZMQ @marcus1337 ... sudo apt install libzmqpp-dev
This is precisely what you need, but feel free to use other libraries ;)
Ashish Raste
@ashishraste
Hi everyone. Thanks for this great library!
As a developer using ROS I installed behaviortree-cpp-v3 through apt sources and found the CMake package name being behaviortree_cpp_v3instead of BehaviorTreeV3, which was suggested in the README 'How to Compile' section. Had to use the former name for a ROS package to correctly find the library. Is it a typo in the README instruction i.e. find_package(behaviortree_cpp_v3) instead of find_package(BehaviorTreeV3)? Happy to raise a PR patch if so :)
Ashish Raste
@ashishraste
^ Realised the README instructions were for a non-catkin package. All good, cheers.
Jeffrey Elrod
@jfelrod1960
Have anyone develop a Java version of this library?
Davide Faconti
@facontidavide
@jfelrod1960 No plan to move to another language
ps-icode
@ps-icode
/catkin_ws/src/Groot/bt_editor/bt_editor_base.cpp:195:34: error: ‘SubtreeNode’ is not a member of ‘BT’
factory.registerNodeType<BT::SubtreeNode>("Root");
I was trying to use Groot GUI but ran into this above error while 'make'
ps-icode
@ps-icode
I noticed Travis build got failed with the same error. Has this been resolved?
Jeffrey Elrod
@jfelrod1960
@facontidavide I'm thinking about developing it for a Java project I'm working on.
Jeffrey Elrod
@jfelrod1960
Which compiler do most of you use to compile BT.CPP in a windows environment? I'm a Java developer and I haven't written C++ code since the early 2000. Thanks!
marcus1337
@marcus1337
when I tested BT.CPP I used Visual Studio
Jeffrey Elrod
@jfelrod1960
@marcus1337 I was trying not to purchase anything like Visual Studio. I code in Java. So I was looking into gcc. Any experience with that?
Kevin DeMarco
@SyllogismRXS
I am writing a ROS node that uses BehaviorTree.CPP to use actionlib to trigger remote behaviors (ROS nodes). This works for the most part. Now, I am trying to dynamically change the behavior tree during run-time. To accomplish this, I created a ROS service that loads a new behavior tree based on the file path. However, when I call "tree.haltTree()" and then "tree = factory.createTreeFromFile(behavior_treexml);" with a currently running behavior, I get a runtime failure. To make sure I wasn't running into a threading issue, I locked the tree with std::mutex, but then it just hangs forever. I think the internal threading in the "class Tree" is causing problems for me. Is there a recommended way to load a new behavior tree during run-time?
Vinny Ruia
@vinnnyr
Hi @SyllogismRXS , did you get this working? I have no help to offer, but thought I would learn from you
Davide Faconti
@facontidavide
"Now, I am trying to dynamically change the behavior tree during run-time."
What you described is something that I was planning to support "officially". Please follow this BehaviorTree/BehaviorTree.CPP#202
Kevin DeMarco
@SyllogismRXS
I was able to reload the behavior tree using your current C++ API.
However, there are some strange effects I haven't been able to completely track down. For one, I can't wrap the BT::Tree with std::mutex, otherwise, it completely locks up the execution. I haven't looked at the internal threading of BehaviorTree-Cpp
Kevin DeMarco
@SyllogismRXS
Also, I get different behavior if I build BehaviorTree-CPP locally and install it with "sudo make install" vs. if I build BehaviorTree-CPP as a debian binary package in a pbuilder chroot and install it with "sudo dpkg -i". This insinuates that the CMake project is detecting different packages in the different environments and changing the result of the build. I made sure both environments had the boost coroutines package installed and the other optional packages. It's all working now if I use my debian package built from pbuilder, so I can move on for now (to meet a deadline), but if I have time later this summer, I can try to replicate this bug.
FYI: My tree re-reload logic is pretty straightforward, it looks like this...

BT::BehaviorTreeFactory factory;
BT::Tree tree_;
std::atomic_bool treeloaded;

void load_tree(const std::string& behavior_tree_xml) {
if (treeloaded) {
tree.haltTree();
}
tree
= factory.createTreeFromFile(behavior_tree_xml);
treeloaded.store(true);
}

treeloaded is initialized in the constructor of the wrapper class.
Davide Faconti
@facontidavide
I think the best way to discuss this in on Github issues (issue #202)
yoshipat
@yoshipat
Hi All, I am fairly new to the Behavior Tree and ros concepts. I just want to know that how can I attach any kind of ros message to a simple action node. I would appreciate any help with this.
Shawn Ricardo
@Shawn-Ricardo
hi everyone, i haven't been able to find the answer on the docs so can someone confirm that BehaviorTree is a statically allocated implementation unless a tree is loaded from an XML?
Kevin DeMarco
@SyllogismRXS
@yoshipat If you inherit from the BT::SyncActionNode class as shown in the tutorial( https://www.behaviortree.dev/tutorial_01_first_tree/), you can create a ROS node handle in the class and use it to setup a ROS action server client. You probably want to start with a ROS cmake project and use cmake's find_package to bring in the behaviortree dependency.
Harshal Deshpande
@hardesh
Hi all! Don't know if this is the best place to ask this question, but is there any direct way of creating utility node. I wasn't able to find any example
Koyal Bhartia
@koyalbhartia
I wish to use Behavior Tress with ROS Noetic.. any way I can view a good implementation to help me get started? https://github.com/BehaviorTree/BehaviorTree.CPP this seems good, but doesn't have ROS integration.
1 reply