GithubHelp home page GithubHelp logo

miccol / ros-behavior-tree Goto Github PK

View Code? Open in Web Editor NEW
339.0 339.0 90.0 1.07 MB

Behavior Trees Library for ROS (Robot Operating System). In C++ and python

License: MIT License

CMake 4.63% C++ 92.57% Python 2.79%
behavior-tree behavior-trees ros

ros-behavior-tree's People

Contributors

isaran avatar miccol avatar

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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ros-behavior-tree's Issues

behavior_tree

Hi again...

It seems the folder behavior_tree is sitting there doing nothing really useful. Am I overlooking it or does it have a full purpose for the rest of the code? Your new README doesn't even mention it...

Thanks, sorry for any trouble.

Create a BT with external Nodes

Hello,

First of all thank you for your work, it is very good implemented and very useful. I am using your BT library for developing my thesis, and I made a functional behaviour tree with Actions and Conditions but everything inside the Behaviour Tree node. Could you please explain how to create a BT that also works with external ROS Action & Condition Nodes? Because it is not explained in the BTUserManual.

Thank you in advance,

Jorge

BT::ROSAction::WaitForTick takes up 100% cpu time

The thread is not put to sleep in the while loop. Consider something like the following.

do
{
      node_result = *(action_client_.getResult());  // checking the result
       std::this_thread::sleep_for(std::chrono::milliseconds(10));
 }
 while (node_result.status == BT::RUNNING && get_status() != BT::HALTED);

Example does not function as expected

I'm pretty sure there are some functionality errors in the code, particularly the sequence node. For example the tree example will never get past a starting action 1. The output from one run commented below explains what happens. Note the tree example runs as expected if you replace all sequence nodes with sequence with memory nodes.

// Start the example
rosrun behavior_tree_core tree
// Everything initializes
Action 1 WAIT FOR TICK
Action 2 WAIT FOR TICK
Action 3 WAIT FOR TICK
Start Drawing!
[ INFO] [1516430124.415782852]: Visualization: Start publishing the tree in topic: /bt_dotcode with rate: 50 Hz.

// Start ticking
Ticking the root node !
Action 2 is setting its status to 3
seq1NEEDS TO TICK Action 2
Action 2 is setting its status to 3

// Ticked action 2
Action 2 TICK RECEIVED
Action 2 is setting its status to 0
Action Action 2running! Thread id:139852564367104
Action 2 is setting its status to 0

// It is in state running so sequence nodes halts all nodes to the right
seq1 is HALTING children from 1
seq1 is HALTING children from 1
Action 1 is setting its status to 3
Action 1 is setting its status to 3
NO NEED TO HALT Action 1STATUS3
seq1 is setting its status to 3
seq1 is setting its status to 3
NO NEED TO HALT seq1STATUS3
seq1 is setting its status to 0
Action 2 is setting its status to 0
Action Action 2running! Thread id:139852564367104

// Second tick
Ticking the root node !
Action 2 is setting its status to 0

// Action 2 is still running so halt all future nodes
seq1 is HALTING children from 1
seq1 is HALTING children from 1
Action 1 is setting its status to 3
Action 1 is setting its status to 3
NO NEED TO HALT Action 1STATUS3
seq1 is setting its status to 3
seq1 is setting its status to 3
NO NEED TO HALT seq1STATUS3
seq1 is setting its status to 0
Action 2 is setting its status to 0
Action Action 2running! Thread id:139852564367104

// Tick 3
Ticking the root node !
Action 2 is setting its status to 0

// Still running halt others
seq1 is HALTING children from 1
seq1 is HALTING children from 1
Action 1 is setting its status to 3
Action 1 is setting its status to 3
NO NEED TO HALT Action 1STATUS3
seq1 is setting its status to 3
seq1 is setting its status to 3
NO NEED TO HALT seq1STATUS3
seq1 is setting its status to 0
Action 2 is setting its status to 0
Action 2 is setting its status to 0

// Action 2 returns success!
Action Action 2 Done!

// Action 2 is ready for more
Action 2 WAIT FOR TICK

// Tick 4
Ticking the root node !

// Action 2 is success set to idle and move on
Action 2 is setting its status to 1

// Tick condition 2 and wait
Condition 2 is setting its status to 3
Condition 2 returning Success1!

// Tick condition 1 and wait
Condition 1 is setting its status to 3
Condition 1 returning Success1!

// Tick Action 1
Action 1 is setting its status to 3
seq1NEEDS TO TICK Action 1
Action 1 is setting its status to 3

// Action 1 is now running
Action 1 TICK RECEIVED
Action 1 is setting its status to 0
Action Action 1running! Thread id:139852572759808
Action 1 is setting its status to 0

// Action 1 is running so halt future nodes
seq1 is HALTING children from 3
seq1 is setting its status to 3
seq1 is setting its status to 3
NO NEED TO HALT seq1STATUS3
seq1 is setting its status to 0
Action 1 is setting its status to 0
Action Action 1running! Thread id:139852572759808

// Tick 5 (This is where it breaks)
Ticking the root node !

// Action 2 is idle so we must tick it!!!!!
Action 2 is setting its status to 3
seq1NEEDS TO TICK Action 2
Action 2 is setting its status to 3

// Tick received by action 2
Action 2 TICK RECEIVED
Action 2 is setting its status to 0
Action Action 2running! Thread id:139852564367104
Action 2 is setting its status to 0

// Action 2 is running so halt all future nodes
seq1 is HALTING children from 1
seq1 is HALTING children from 1
Action 1 is setting its status to 0

// Action one is still running so we must halt it!!!!!!!!!!!!!!!!!!!!!!
// Action 1 will never complete it will always be halted
SENDING HALT TO CHILD Action 1
HALTED state set!
seq1 is setting its status to 3
seq1 is setting its status to 3
NO NEED TO HALT seq1STATUS3
seq1 is setting its status to 0

// Action one halted so it restarts
Action 1 is setting its status to 4
Action 1 is setting its status to 4
Action 1 WAIT FOR TICK
Action 2 is setting its status to 0
Action Action 2running! Thread id:139852564367104

// Tick 6 We now start the whole process over again
Ticking the root node !
Action 2 is setting its status to 0
seq1 is HALTING children from 1
seq1 is HALTING children from 1
Action 1 is setting its status to 4
Action 1 is setting its status to 4
NO NEED TO HALT Action 1STATUS4
seq1 is setting its status to 3
seq1 is setting its status to 3
NO NEED TO HALT seq1STATUS3
seq1 is setting its status to 0
Action 2 is setting its status to 0
Action Action 2running! Thread id:139852564367104
Ticking the root node !
Action 2 is setting its status to 0
seq1 is HALTING children from 1
seq1 is HALTING children from 1
Action 1 is setting its status to 4
Action 1 is setting its status to 4
NO NEED TO HALT Action 1STATUS4
seq1 is setting its status to 3
seq1 is setting its status to 3
NO NEED TO HALT seq1STATUS3
seq1 is setting its status to 0`

full example with external ROS nodes?

Thank you for writing this library; it looks very useful for my project. I have the examples running well.
However, I was having difficulty understanding how to create and use external ROS nodes.

Details edited out, as they were answered when I found the example nodes.

Improve tree positioning in visualization

Hi again @miccol

I noticed a problem in the visualization of the tree in which some nodes are visualized on top of each other making harder to observe the tree. If this is the case and is not a problem of my set-up only, I intend to implement in my free time the Reingold-Tilford algorithm for tree nodes positioning for the behavior trees as described in the following papers.

1. Buchheim, C., & Michael, J. (2002). Improving Walker ’ s Algorithm to Run in Linear Time, 344–353.
2. Ii, J. Q. W., & Hall, S. (1989). A Node-Positioning Algorithm for General Trees, 20(December 1988), 685–705.

Let me know if this problem exist (and is not only me) and if you are interested to start work on that.

Iason

Package does not compile with catkin_tools (catkin build)

I've been working with this package for a while now and its been great so far. It compiles with catkin_make with the following warnings (which I'm not sure are important?):

CMake Warning (dev) at CMakeLists.txt:73 (add_dependencies):
  Policy CMP0046 is not set: Error on non-existent dependency in
  add_dependencies.  Run "cmake --help-policy CMP0046" for policy details.
  Use the cmake_policy command to set the policy and suppress this warning.

  The dependency target "frasier_behavior_generate_messages_cpp" of target
  "spr_conditions" does not exist.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:62 (add_dependencies):
  Policy CMP0046 is not set: Error on non-existent dependency in
  add_dependencies.  Run "cmake --help-policy CMP0046" for policy details.
  Use the cmake_policy command to set the policy and suppress this warning.

  The dependency target "frasier_behavior_generate_messages_cpp" of target
  "spr_bt" does not exist.
This warning is for project developers.  Use -Wno-dev to suppress it.

My issue though is that my team uses catkin_tools to build our packages and I'd like to have the same build environment they have. Apparently the linker cannot find the behavior_tree_core library.

/usr/bin/ld: cannot find -lbehavior_tree_core
collect2: error: ld returned 1 exit status

I tried making behavior_tree_core into a library by changing the CMakeLists.txt but it didn't work:

catkin_package(
  CATKIN_DEPENDS actionlib_msgs
  LIBRARIES behavior_tree_core <-- Added this line
  INCLUDE_DIRS include
)

This is how I link the libraries in my other package:

add_executable(spr_bt src/spr_bt.cpp)
target_link_libraries(spr_bt
        ${catkin_LIBRARIES}
        behavior_tree_core
        )
add_dependencies(spr_bt
        ${catkin_EXPORTED_TARGETS}
        ${PROJECT_NAME}_generate_messages_cpp
        behavior_tree_core_generate_messages_cpp
        )

And my find_package:

find_package(catkin REQUIRED COMPONENTS
  actionlib_msgs
  actionlib
  behavior_tree_core
  behavior_tree_leaves
  genmsg
  message_generation
  roscpp
  rospy
  roslib
  geometry_msgs
)

Any suggestions on how to get this working with catkin_tools?

Using the Parallel Node

Hi!

First of all, thanks for the ROS-Behavior-Tree library, I find it very useful for my project.

However, I have a question about the use of the ParallelNode.

I made an action node that should run parallel to a sequence. Below I copied a part of my tree_test2.cpp script:

try{
 int TickPeriod_milliseconds = 1000; 
 BT::ParallelNode* parallel1 = new BT::ParallelNode("parallel1");
 BT::SequenceNodeWithMemory* sequence1 = new BT::SequenceNodeWithMemory("seq1");
 BT::ActionNodeF7_1* F7_1 = new BT::ActionNodeF7_1("F7_1");
 // The rest of the tree should be defined here but this is not important for this question

 parallel->AddChild(sequence1);
 parallel->AddChild(F7_1); 
 // Rest of linking of the tree

 Execute(parallel1, TickPeriod_milliseconds);
} 

When I run the catkin build in my catkin_ws I get the following error:

Errors     << behavior_tree_core:make /home/rosa/catkin_ws/logs/behavior_tree_core/build.make.359.log                                        
/home/rosa/catkin_ws/src/ROS-Behavior-Tree/behavior_tree_core/src/tree_test2.cpp: In function ‘int main(int, char**)’:
/home/rosa/catkin_ws/src/ROS-Behavior-Tree/behavior_tree_core/src/tree_test2.cpp:24:69: error: no matching function for call to ‘BT::ParallelNode::ParallelNode(const char [8])’
         BT::ParallelNode* parallel1 = new BT::ParallelNode("paralel");
                                                                     ^
In file included from /home/rosa/catkin_ws/src/ROS-Behavior-Tree/behavior_tree_core/include/behavior_tree.h:19:0,
                 from /home/rosa/catkin_ws/src/ROS-Behavior-Tree/behavior_tree_core/src/tree_test2.cpp:14:
/home/rosa/catkin_ws/src/ROS-Behavior-Tree/behavior_tree_core/include/parallel_node.h:26:14: note: candidate: BT::ParallelNode::ParallelNode(std::__cxx11::string, int)
     explicit ParallelNode(std::string name, int threshold_M);

I'm not sure why this isn't working. Can you maybe help me with this?
Note: I did try running the ActionNodes with sequenceNodes and this worked.

Thank you in advance,

Rosa

compile error

when i run
catkin_make
it comes out:
[ 88%] Linking CXX executable /home/ubuntu/bt/devel/lib/behavior_tree_core/gtest_ros
[ 89%] Linking CXX executable /home/ubuntu/bt/devel/lib/behavior_tree_core/tree
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutSwapBuffers' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutMainLoop'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutDisplayFunc' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutSpecialFunc'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutPostRedisplay' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutCreateWindow'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutInit' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutKeyboardUpFunc'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutBitmapCharacter' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutKeyboardFunc'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutInitWindowSize' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutBitmap8By13'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutInitDisplayMode' /home/ubuntu/bt/devel/libcollect2: error: ld returned 1 exit status /libbehavior_tree_core.so: undefined reference to glutSwapBuffers'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutMainLoop' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutDisplayFunc'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutSpecialFunc' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutPostRedisplay'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutCreateWindow' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutInit'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutKeyboardUpFunc' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutBitmapCharacter'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutKeyboardFunc' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutInitWindowSize'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutBitmap8By13' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutInitDisplayMode'
ROS-Behavior-Tree/behavior_tree_core/CMakeFiles/gtest_ros.dir/build.make:138: recipe for target '/home/ubuntu/bt /devel/lib/behavior_tree_core/gtest_ros' failed
make[2]: *** [/home/ubuntu/bt/devel/lib/behavior_tree_core/gtest_ros] Error 1
CMakeFiles/Makefile2:1754: recipe for target 'ROS-Behavior-Tree/behavior_tree_core/CMakeFiles/gtest_ros.dir/all' failed
make[1]: *** [ROS-Behavior-Tree/behavior_tree_core/CMakeFiles/gtest_ros.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
collect2: error: ld returned 1 exit status
ROS-Behavior-Tree/behavior_tree_core/CMakeFiles/tree.dir/build.make:137: recipe for target '/home/ubuntu/bt/deve l/lib/behavior_tree_core/tree' failed
make[2]: *** [/home/ubuntu/bt/devel/lib/behavior_tree_core/tree] Error 1
CMakeFiles/Makefile2:1700: recipe for target 'ROS-Behavior-Tree/behavior_tree_core/CMakeFiles/tree.dir/all' fail ed
make[1]: *** [ROS-Behavior-Tree/behavior_tree_core/CMakeFiles/tree.dir/all] Error 2
[ 90%] Linking CXX executable /home/ubuntu/bt/devel/lib/behavior_tree_core/gtest_tree
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutSwapBuffers' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutMainLoop'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutDisplayFunc' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutSpecialFunc'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutPostRedisplay' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutCreateWindow'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutInit' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutKeyboardUpFunc'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutBitmapCharacter' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutKeyboardFunc'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutInitWindowSize' /home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to glutBitmap8By13'
/home/ubuntu/bt/devel/lib/libbehavior_tree_core.so: undefined reference to `glutInitDisplayMode'
collect2: error: ld returned 1 exit status
ROS-Behavior-Tree/behavior_tree_core/CMakeFiles/gtest_tree.dir/build.make:138: recipe for target '/home/ubuntu/b t/devel/lib/behavior_tree_core/gtest_tree' failed
make[2]: *** [/home/ubuntu/bt/devel/lib/behavior_tree_core/gtest_tree] Error 1
CMakeFiles/Makefile2:1727: recipe for target 'ROS-Behavior-Tree/behavior_tree_core/CMakeFiles/gtest_tree.dir/all ' failed
make[1]: *** [ROS-Behavior-Tree/behavior_tree_core/CMakeFiles/gtest_tree.dir/all] Error 2
[ 92%] Linking CXX executable /home/ubuntu/bt/devel/lib/behavior_tree_leaves/action_client
[ 92%] Built target action_client
Makefile:145: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed
home/ubuntu/bt

Compliance of C++ style with ROS linter

Hi @miccol

Thank you for providing this library for BTs. I just started to look into BTs and your library seems very useful, so I intend to use it. Since your packages is ROS compliant, are you interested in following the C++ style guidelines of ROS? I run the roslint in ROS Indigo and there is a number of errors. If you are interested I can fix them by myself and open a PR.

Below I provide the output of the roslint with the errors. If you want to reproduce them by yourself you can run the following command:

rosrun roslint cpplint `find .` 2>&1 | grep -v 'Skipping\|Ignoring\|git'

The output of roslint:

Done processing ./behavior_tree_leaves/example_nodes/python/condition_example.py
Done processing ./behavior_tree_leaves/example_nodes/python/action_example.py
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:2:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:7:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:7:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:7:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:13:  Do not leave a blank line after "protected:"  [whitespace/blank_line] [3]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:19:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:19:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:20:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:20:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:24:  Do not leave a blank line after "public:"  [whitespace/blank_line] [3]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:26:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:30:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:30:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:33:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:38:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:39:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:44:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:50:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:65:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:65:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:67:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:68:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:74:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:78:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:79:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:80:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:88:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:88:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:88:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:88:  Missing space before ( in switch(  [whitespace/parens] [5]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:105:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp:26:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_leaves/example_nodes/cpp/ActionExample.cpp
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:2:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:2:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:8:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:14:  Do not leave a blank line after "protected:"  [whitespace/blank_line] [3]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:26:  Do not leave a blank line after "public:"  [whitespace/blank_line] [3]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:27:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:31:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:31:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:35:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:40:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:40:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:44:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:44:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:44:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:46:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:46:  } should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:46:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:46:  Missing space before else  [whitespace/braces] [5]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:53:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:54:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:55:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:63:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:63:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:63:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:63:  Missing space before ( in switch(  [whitespace/parens] [5]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:74:  Closing brace should be aligned with beginning of class BTAction  [whitespace/indent] [3]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:79:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp:27:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_leaves/example_nodes/cpp/ConditionExample.cpp
Done processing ./behavior_tree_leaves/package.xml
Done processing ./behavior_tree_leaves/CMakeLists.txt
Done processing ./behavior_tree_leaves/launch/test_behavior_tree.launch
./behavior_tree_leaves/src/ConditionClient.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_leaves/src/ConditionClient.cpp:7:  Extra space before ( in function call  [whitespace/parens] [4]
./behavior_tree_leaves/src/ConditionClient.cpp:17:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/src/ConditionClient.cpp:17:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/src/ConditionClient.cpp:20:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/src/ConditionClient.cpp:23:  Missing spaces around =  [whitespace/operators] [4]
./behavior_tree_leaves/src/ConditionClient.cpp:28:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ConditionClient.cpp:28:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_leaves/src/ConditionClient.cpp:28:  Missing spaces around !=  [whitespace/operators] [3]
./behavior_tree_leaves/src/ConditionClient.cpp:28:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_leaves/src/ConditionClient.cpp:29:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_leaves/src/ConditionClient.cpp:31:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ConditionClient.cpp:33:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ConditionClient.cpp:33:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/src/ConditionClient.cpp:33:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_leaves/src/ConditionClient.cpp:34:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ConditionClient.cpp:34:  Line ends in whitespace.  Consider deleting these extra spaces.  [whitespace/end_of_line] [4]
./behavior_tree_leaves/src/ConditionClient.cpp:35:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/src/ConditionClient.cpp:35:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_leaves/src/ConditionClient.cpp:35:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_leaves/src/ConditionClient.cpp:37:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ConditionClient.cpp:38:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ConditionClient.cpp:38:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/src/ConditionClient.cpp:39:  Missing spaces around =  [whitespace/operators] [4]
./behavior_tree_leaves/src/ConditionClient.cpp:42:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_leaves/src/ConditionClient.cpp:43:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/src/ConditionClient.cpp:43:  } should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/src/ConditionClient.cpp:43:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_leaves/src/ConditionClient.cpp:43:  Missing space before else  [whitespace/braces] [5]
./behavior_tree_leaves/src/ConditionClient.cpp:50:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_leaves/src/ConditionClient.cpp:52:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ConditionClient.cpp:55:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ConditionClient.cpp:56:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ConditionClient.cpp:57:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ConditionClient.cpp:61:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/src/ConditionClient.cpp:62:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ConditionClient.cpp:65:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
Done processing ./behavior_tree_leaves/src/ConditionClient.cpp
./behavior_tree_leaves/src/ActionClient.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_leaves/src/ActionClient.cpp:7:  Extra space before ( in function call  [whitespace/parens] [4]
./behavior_tree_leaves/src/ActionClient.cpp:17:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/src/ActionClient.cpp:17:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/src/ActionClient.cpp:20:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/src/ActionClient.cpp:23:  Missing spaces around =  [whitespace/operators] [4]
./behavior_tree_leaves/src/ActionClient.cpp:28:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:28:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_leaves/src/ActionClient.cpp:28:  Missing spaces around !=  [whitespace/operators] [3]
./behavior_tree_leaves/src/ActionClient.cpp:28:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_leaves/src/ActionClient.cpp:29:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_leaves/src/ActionClient.cpp:30:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:31:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:33:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:33:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/src/ActionClient.cpp:33:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_leaves/src/ActionClient.cpp:34:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:34:  Line ends in whitespace.  Consider deleting these extra spaces.  [whitespace/end_of_line] [4]
./behavior_tree_leaves/src/ActionClient.cpp:35:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/src/ActionClient.cpp:35:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_leaves/src/ActionClient.cpp:35:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_leaves/src/ActionClient.cpp:37:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:38:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:38:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/src/ActionClient.cpp:39:  Missing spaces around =  [whitespace/operators] [4]
./behavior_tree_leaves/src/ActionClient.cpp:40:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:40:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/src/ActionClient.cpp:42:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_leaves/src/ActionClient.cpp:43:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/src/ActionClient.cpp:43:  } should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/src/ActionClient.cpp:43:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_leaves/src/ActionClient.cpp:43:  Missing space before else  [whitespace/braces] [5]
./behavior_tree_leaves/src/ActionClient.cpp:47:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_leaves/src/ActionClient.cpp:49:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:50:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:50:  Line ends in whitespace.  Consider deleting these extra spaces.  [whitespace/end_of_line] [4]
./behavior_tree_leaves/src/ActionClient.cpp:52:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:53:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:53:  Missing spaces around =  [whitespace/operators] [4]
./behavior_tree_leaves/src/ActionClient.cpp:54:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:55:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:56:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:57:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:61:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/src/ActionClient.cpp:62:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_leaves/src/ActionClient.cpp:65:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
Done processing ./behavior_tree_leaves/src/ActionClient.cpp
Done processing ./behavior_tree_leaves/templates/python/condition_template.py
Done processing ./behavior_tree_leaves/templates/python/action_template.py
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:2:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:7:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:7:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:7:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:13:  Do not leave a blank line after "protected:"  [whitespace/blank_line] [3]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:19:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:19:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:20:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:20:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:24:  Do not leave a blank line after "public:"  [whitespace/blank_line] [3]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:26:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:30:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:30:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:33:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:38:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:39:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:44:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:49:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:75:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:76:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:77:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:79:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:81:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:85:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:86:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:87:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:95:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:95:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:95:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:95:  Missing space before ( in switch(  [whitespace/parens] [5]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:112:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp:26:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_leaves/templates/cpp/ActionTemplate.cpp
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:2:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:2:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:8:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:14:  Do not leave a blank line after "protected:"  [whitespace/blank_line] [3]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:26:  Do not leave a blank line after "public:"  [whitespace/blank_line] [3]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:27:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:31:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:31:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:35:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:40:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:40:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:44:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:44:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:44:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:46:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:46:  } should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:46:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:46:  Missing space before else  [whitespace/braces] [5]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:53:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:54:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:55:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:63:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:63:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:63:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:63:  Missing space before ( in switch(  [whitespace/parens] [5]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:74:  Closing brace should be aligned with beginning of class BTAction  [whitespace/indent] [3]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:79:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp:27:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_leaves/templates/cpp/ConditionTemplate.cpp
Done processing ./behavior_tree_leaves/contributors.txt
Done processing ./LICENSE
Done processing ./README.md
Done processing ./BTUserManual.pdf
Done processing ./behavior_tree/package.xml
Done processing ./behavior_tree/CMakeLists.txt
Done processing ./contributors.txt
Done processing ./behavior_tree_core/package.xml
Done processing ./behavior_tree_core/CMakeLists.txt
Done processing ./behavior_tree_core/action/BT.action
Done processing ./behavior_tree_core/include/Icon
./behavior_tree_core/include/LeafNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/LeafNode.h:21:  #endif line should be "#endif  // LEAFNODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/LeafNode.h:10:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/LeafNode.h:14:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/LeafNode.h:19:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/LeafNode.h:14:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/LeafNode.h
Done processing ./behavior_tree_core/include/Actions/ROSAction.h~
Done processing ./behavior_tree_core/include/Actions/.DS_Store
./behavior_tree_core/include/Actions/ROSAction.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/Actions/ROSAction.h:1:  #ifndef header guard has wrong style, please use: ACTIONS_ROSACTION_H  [build/header_guard] [5]
./behavior_tree_core/include/Actions/ROSAction.h:31:  #endif line should be "#endif  // ACTIONS_ROSACTION_H"  [build/header_guard] [5]
./behavior_tree_core/include/Actions/ROSAction.h:11:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/Actions/ROSAction.h:15:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/Actions/ROSAction.h:24:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/Actions/ROSAction.h:24:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/include/Actions/ROSAction.h:26:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/Actions/ROSAction.h:29:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/Actions/ROSAction.h:15:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/Actions/ROSAction.h
./behavior_tree_core/include/Actions/ActionTestNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/Actions/ActionTestNode.h:1:  #ifndef header guard has wrong style, please use: ACTIONS_ACTIONTESTNODE_H  [build/header_guard] [5]
./behavior_tree_core/include/Actions/ActionTestNode.h:26:  #endif line should be "#endif  // ACTIONS_ACTIONTESTNODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/Actions/ActionTestNode.h:8:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/Actions/ActionTestNode.h:11:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/Actions/ActionTestNode.h:13:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/Actions/ActionTestNode.h:22:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/include/Actions/ActionTestNode.h:24:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/Actions/ActionTestNode.h:13:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/Actions/ActionTestNode.h
./behavior_tree_core/include/SequenceStarNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/SequenceStarNode.h:20:  #endif line should be "#endif  // SEQUENCESTARNODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/SequenceStarNode.h:8:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/SequenceStarNode.h:12:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/SequenceStarNode.h:14:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/SequenceStarNode.h:18:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/SequenceStarNode.h:12:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/SequenceStarNode.h
./behavior_tree_core/include/ParallelNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/ParallelNode.h:40:  #endif line should be "#endif  // PARALLELNODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/ParallelNode.h:10:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/ParallelNode.h:28:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/ParallelNode.h:38:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/ParallelNode.h:28:  Add #include <string> for string  [build/include_what_you_use] [4]
./behavior_tree_core/include/ParallelNode.h:22:  Add #include <vector> for vector<>  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/ParallelNode.h
./behavior_tree_core/include/TreeNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/TreeNode.h:118:  #endif line should be "#endif  // TREENODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/TreeNode.h:22:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/include/TreeNode.h:52:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/TreeNode.h:76:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/include/TreeNode.h:81:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/TreeNode.h:114:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/include/TreeNode.h:116:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
Done processing ./behavior_tree_core/include/TreeNode.h
./behavior_tree_core/include/ConditionNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/ConditionNode.h:28:  #endif line should be "#endif  // CONDITIONNODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/ConditionNode.h:8:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/ConditionNode.h:12:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/ConditionNode.h:24:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/ConditionNode.h:26:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/ConditionNode.h:12:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/ConditionNode.h
./behavior_tree_core/include/SequenceNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/SequenceNode.h:20:  #endif line should be "#endif  // SEQUENCENODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/SequenceNode.h:8:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/SequenceNode.h:12:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/SequenceNode.h:14:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/SequenceNode.h:18:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/SequenceNode.h:12:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/SequenceNode.h
./behavior_tree_core/include/SelectorStarNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/SelectorStarNode.h:20:  #endif line should be "#endif  // SELECTORSTARNODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/SelectorStarNode.h:8:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/SelectorStarNode.h:12:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/SelectorStarNode.h:18:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/SelectorStarNode.h:12:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/SelectorStarNode.h
./behavior_tree_core/include/DecoratorNegationNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/DecoratorNegationNode.h:21:  #endif line should be "#endif  // DECORATORNEGATIONNODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/DecoratorNegationNode.h:8:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/DecoratorNegationNode.h:12:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/DecoratorNegationNode.h:14:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/DecoratorNegationNode.h:19:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/DecoratorNegationNode.h:12:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/DecoratorNegationNode.h
./behavior_tree_core/include/NodeSemaphore.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/NodeSemaphore.h:19:  #endif line should be "#endif  // NODESEMAPHORE_H"  [build/header_guard] [5]
./behavior_tree_core/include/NodeSemaphore.h:13:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/NodeSemaphore.h:15:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/NodeSemaphore.h:16:  Tab found; better to use spaces  [whitespace/tab] [1]
Done processing ./behavior_tree_core/include/NodeSemaphore.h
./behavior_tree_core/include/SelectorNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/SelectorNode.h:20:  #endif line should be "#endif  // SELECTORNODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/SelectorNode.h:8:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/SelectorNode.h:12:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/SelectorNode.h:14:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/SelectorNode.h:18:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/SelectorNode.h:12:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/SelectorNode.h
./behavior_tree_core/include/Draw.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/Draw.h:1:  #ifndef header guard has wrong style, please use: DRAW_H  [build/header_guard] [5]
./behavior_tree_core/include/Draw.h:35:  #endif line should be "#endif  // DRAW_H"  [build/header_guard] [5]
./behavior_tree_core/include/Draw.h:5:  "GL/glut.h" already included at ./behavior_tree_core/include/Draw.h:4  [build/include] [4]
./behavior_tree_core/include/Draw.h:10:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/include/Draw.h:11:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/include/Draw.h:12:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/include/Draw.h:19:  Extra space before ( in function call  [whitespace/parens] [4]
./behavior_tree_core/include/Draw.h:21:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/include/Draw.h:25:  Lines should be <= 120 characters long  [whitespace/line_length] [2]
./behavior_tree_core/include/Draw.h:33:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/include/Draw.h:35:  At least two spaces is best between code and comments  [whitespace/comments] [2]
Done processing ./behavior_tree_core/include/Draw.h
./behavior_tree_core/include/Conditions/ConditionTestNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/Conditions/ConditionTestNode.h:1:  #ifndef header guard has wrong style, please use: CONDITIONS_CONDITIONTESTNODE_H  [build/header_guard] [5]
./behavior_tree_core/include/Conditions/ConditionTestNode.h:23:  #endif line should be "#endif  // CONDITIONS_CONDITIONTESTNODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/Conditions/ConditionTestNode.h:8:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/Conditions/ConditionTestNode.h:12:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/Conditions/ConditionTestNode.h:21:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/Conditions/ConditionTestNode.h:12:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/Conditions/ConditionTestNode.h
Done processing ./behavior_tree_core/include/Conditions/.DS_Store
./behavior_tree_core/include/Conditions/ROSCondition.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/Conditions/ROSCondition.h:1:  #ifndef header guard has wrong style, please use: CONDITIONS_ROSCONDITION_H  [build/header_guard] [5]
./behavior_tree_core/include/Conditions/ROSCondition.h:24:  #endif line should be "#endif  // CONDITIONS_ROSCONDITION_H"  [build/header_guard] [5]
./behavior_tree_core/include/Conditions/ROSCondition.h:10:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/Conditions/ROSCondition.h:14:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/Conditions/ROSCondition.h:19:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/Conditions/ROSCondition.h:22:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/Conditions/ROSCondition.h:14:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/Conditions/ROSCondition.h
Done processing ./behavior_tree_core/include/Conditions/ROSCondition.h~
./behavior_tree_core/include/DecoratorRetryNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/DecoratorRetryNode.h:23:  #endif line should be "#endif  // DECORATORRETRYNODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/DecoratorRetryNode.h:8:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/DecoratorRetryNode.h:14:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/DecoratorRetryNode.h:18:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/DecoratorRetryNode.h:19:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/DecoratorRetryNode.h:21:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/DecoratorRetryNode.h:12:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/DecoratorRetryNode.h
./behavior_tree_core/include/Exceptions.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/Exceptions.h:20:  #endif line should be "#endif  // EXCEPTIONS_H"  [build/header_guard] [5]
./behavior_tree_core/include/Exceptions.h:10:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/Exceptions.h:15:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/Exceptions.h:18:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
Done processing ./behavior_tree_core/include/Exceptions.h
./behavior_tree_core/include/BehaviorTree.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/BehaviorTree.h:36:  #endif line should be "#endif  // BEHAVIORTREE_H"  [build/header_guard] [5]
./behavior_tree_core/include/BehaviorTree.h:33:  Missing space after ,  [whitespace/comma] [3]
Done processing ./behavior_tree_core/include/BehaviorTree.h
./behavior_tree_core/include/ActionNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/ActionNode.h:29:  #endif line should be "#endif  // ACTIONNODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/ActionNode.h:9:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/ActionNode.h:13:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/ActionNode.h:25:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/ActionNode.h:27:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/ActionNode.h:13:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/ActionNode.h
./behavior_tree_core/include/ControlNode.h:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/include/ControlNode.h:44:  #endif line should be "#endif  // CONTROLNODE_H"  [build/header_guard] [5]
./behavior_tree_core/include/ControlNode.h:10:  Do not indent within a namespace  [runtime/indentation_namespace] [4]
./behavior_tree_core/include/ControlNode.h:23:  Single-parameter constructors should be marked explicit.  [runtime/explicit] [5]
./behavior_tree_core/include/ControlNode.h:31:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/include/ControlNode.h:42:  Namespace should be terminated with "// namespace BT"  [readability/namespace] [5]
./behavior_tree_core/include/ControlNode.h:23:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/include/ControlNode.h
./behavior_tree_core/src/tree.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/tree.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/tree.cpp:17:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/tree.cpp:22:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/tree.cpp:22:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/tree.cpp:23:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
Done processing ./behavior_tree_core/src/tree.cpp
Done processing ./behavior_tree_core/src/Actions/.DS_Store
./behavior_tree_core/src/Actions/ROSAction.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/Actions/ROSAction.cpp:5:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/Actions/ROSAction.cpp:7:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Actions/ROSAction.cpp:14:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Actions/ROSAction.cpp:21:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Actions/ROSAction.cpp:23:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Actions/ROSAction.cpp:24:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/src/Actions/ROSAction.cpp:25:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/src/Actions/ROSAction.cpp:30:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Actions/ROSAction.cpp:30:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Actions/ROSAction.cpp:34:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Actions/ROSAction.cpp:35:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/Actions/ROSAction.cpp:40:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/Actions/ROSAction.cpp:51:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Actions/ROSAction.cpp:55:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Actions/ROSAction.cpp:55:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Actions/ROSAction.cpp:56:  } should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/Actions/ROSAction.cpp:56:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/Actions/ROSAction.cpp:61:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/Actions/ROSAction.cpp:84:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/Actions/ROSAction.cpp:99:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/Actions/ROSAction.cpp:99:  } should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/Actions/ROSAction.cpp:99:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Actions/ROSAction.cpp:99:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Actions/ROSAction.cpp:99:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_core/src/Actions/ROSAction.cpp:99:  Missing space before else  [whitespace/braces] [5]
./behavior_tree_core/src/Actions/ROSAction.cpp:100:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Actions/ROSAction.cpp:119:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/Actions/ROSAction.cpp:132:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Actions/ROSAction.cpp:9:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/Actions/ROSAction.cpp
./behavior_tree_core/src/Actions/ActionTestNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:16:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:19:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:21:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:25:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:26:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:27:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:38:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:38:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:38:  Use operator && instead of and  [readability/alt_tokens] [2]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:44:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:73:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:75:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:95:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:102:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:102:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_core/src/Actions/ActionTestNode.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/Actions/ActionTestNode.cpp
./behavior_tree_core/src/ActionNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/ActionNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/ActionNode.cpp:14:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/ActionNode.cpp:15:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/ActionNode.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/ActionNode.cpp
./behavior_tree_core/src/DecoratorRetryNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/DecoratorRetryNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/DecoratorRetryNode.cpp:27:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/DecoratorRetryNode.cpp:32:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/DecoratorRetryNode.cpp:46:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/DecoratorRetryNode.cpp:90:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/DecoratorRetryNode.cpp:101:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/DecoratorRetryNode.cpp:105:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/DecoratorRetryNode.cpp:108:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/DecoratorRetryNode.cpp:121:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/DecoratorRetryNode.cpp:125:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/DecoratorRetryNode.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/DecoratorRetryNode.cpp
./behavior_tree_core/src/Draw.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/Draw.cpp:4:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/Draw.cpp:9:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:25:  Missing spaces around =  [whitespace/operators] [4]
./behavior_tree_core/src/Draw.cpp:29:  Extra space before ( in function call  [whitespace/parens] [4]
./behavior_tree_core/src/Draw.cpp:35:  Extra space before ( in function call  [whitespace/parens] [4]
./behavior_tree_core/src/Draw.cpp:43:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:56:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Draw.cpp:65:  Extra space before )  [whitespace/parens] [2]
./behavior_tree_core/src/Draw.cpp:82:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:87:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:92:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:98:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:100:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:125:  Lines should be <= 120 characters long  [whitespace/line_length] [2]
./behavior_tree_core/src/Draw.cpp:140:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:145:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/Draw.cpp:155:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:156:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:165:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Draw.cpp:167:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Draw.cpp:168:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Draw.cpp:169:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Draw.cpp:171:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:172:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Draw.cpp:174:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Draw.cpp:192:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:199:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:203:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:209:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Draw.cpp:210:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:214:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Draw.cpp:214:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:215:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Draw.cpp:217:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:227:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Draw.cpp:227:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:237:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Draw.cpp:241:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:243:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:243:  Extra space before )  [whitespace/parens] [2]
./behavior_tree_core/src/Draw.cpp:247:  Lines should be <= 120 characters long  [whitespace/line_length] [2]
./behavior_tree_core/src/Draw.cpp:252:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Draw.cpp:252:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:253:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Draw.cpp:256:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:263:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:265:  Lines should be <= 120 characters long  [whitespace/line_length] [2]
./behavior_tree_core/src/Draw.cpp:265:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:267:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:268:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:271:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Draw.cpp:281:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Draw.cpp:282:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:283:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Draw.cpp:287:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Draw.cpp:287:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:288:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Draw.cpp:290:  Lines should be <= 120 characters long  [whitespace/line_length] [2]
./behavior_tree_core/src/Draw.cpp:291:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:294:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Draw.cpp:294:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:305:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:305:  Extra space before )  [whitespace/parens] [2]
./behavior_tree_core/src/Draw.cpp:308:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:312:  Lines should be <= 120 characters long  [whitespace/line_length] [2]
./behavior_tree_core/src/Draw.cpp:314:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:315:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:324:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Draw.cpp:324:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:327:  Extra space after ( in function call  [whitespace/parens] [4]
./behavior_tree_core/src/Draw.cpp:331:  Extra space before )  [whitespace/parens] [2]
./behavior_tree_core/src/Draw.cpp:332:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:333:  Extra space before )  [whitespace/parens] [2]
./behavior_tree_core/src/Draw.cpp:334:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Draw.cpp:337:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:341:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/Draw.cpp:342:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Draw.cpp:345:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/Draw.cpp:385:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:385:  Extra space after ( in function call  [whitespace/parens] [4]
./behavior_tree_core/src/Draw.cpp:385:  Extra space before )  [whitespace/parens] [2]
./behavior_tree_core/src/Draw.cpp:387:  } should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/Draw.cpp:387:  Missing space before else  [whitespace/braces] [5]
./behavior_tree_core/src/Draw.cpp:389:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:389:  Extra space after ( in function call  [whitespace/parens] [4]
./behavior_tree_core/src/Draw.cpp:389:  Extra space before )  [whitespace/parens] [2]
./behavior_tree_core/src/Draw.cpp:390:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:394:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:394:  Extra space after ( in function call  [whitespace/parens] [4]
./behavior_tree_core/src/Draw.cpp:394:  Extra space before )  [whitespace/parens] [2]
./behavior_tree_core/src/Draw.cpp:395:  Missing spaces around =  [whitespace/operators] [4]
./behavior_tree_core/src/Draw.cpp:399:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:410:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Draw.cpp:411:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Draw.cpp:411:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Draw.cpp:412:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Draw.cpp:414:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Draw.cpp:417:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Draw.cpp:417:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/Draw.cpp:417:  } should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/Draw.cpp:417:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_core/src/Draw.cpp:417:  Missing space before else  [whitespace/braces] [5]
./behavior_tree_core/src/Draw.cpp:419:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Draw.cpp:425:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:427:  Using C-style cast.  Use const_cast<char*>(...) instead  [readability/casting] [4]
./behavior_tree_core/src/Draw.cpp:438:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Draw.cpp:441:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:447:  Extra space after ( in function call  [whitespace/parens] [4]
./behavior_tree_core/src/Draw.cpp:451:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Draw.cpp:452:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Draw.cpp:452:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:456:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Draw.cpp:457:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/Draw.cpp:217:  Add #include <string> for string  [build/include_what_you_use] [4]
./behavior_tree_core/src/Draw.cpp:295:  Add #include <vector> for vector<>  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/Draw.cpp
./behavior_tree_core/src/SelectorStarNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/SelectorStarNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/SelectorStarNode.cpp:25:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/SelectorStarNode.cpp:25:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/SelectorStarNode.cpp:27:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/SelectorStarNode.cpp:32:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/SelectorStarNode.cpp:45:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/SelectorStarNode.cpp:89:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/SelectorStarNode.cpp:91:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/SelectorStarNode.cpp:100:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/SelectorStarNode.cpp:149:  Lines should be <= 120 characters long  [whitespace/line_length] [2]
./behavior_tree_core/src/SelectorStarNode.cpp:149:  } should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/SelectorStarNode.cpp:149:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/SelectorStarNode.cpp:149:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/SelectorStarNode.cpp:149:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/SelectorStarNode.cpp:151:  Extra space for operator  ++;  [whitespace/operators] [4]
./behavior_tree_core/src/SelectorStarNode.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/SelectorStarNode.cpp
./behavior_tree_core/src/SequenceNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/SequenceNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/SequenceNode.cpp:26:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/SequenceNode.cpp:31:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/SequenceNode.cpp:44:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/SequenceNode.cpp:88:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/SequenceNode.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/SequenceNode.cpp
./behavior_tree_core/src/TreeNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/TreeNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/TreeNode.cpp:22:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/TreeNode.cpp:40:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/TreeNode.cpp:41:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/TreeNode.cpp:87:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/TreeNode.cpp:94:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/TreeNode.cpp:102:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/TreeNode.cpp:109:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/TreeNode.cpp:117:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/TreeNode.cpp:119:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/TreeNode.cpp:115:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/TreeNode.cpp
Done processing ./behavior_tree_core/src/Conditions/.DS_Store
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:17:  Line ends in whitespace.  Consider deleting these extra spaces.  [whitespace/end_of_line] [4]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:18:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:20:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:20:  Line ends in whitespace.  Consider deleting these extra spaces.  [whitespace/end_of_line] [4]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:20:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:24:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:37:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:37:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:41:  } should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:42:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:42:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:45:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:45:  Missing spaces around =  [whitespace/operators] [4]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:46:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:47:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:47:  Line ends in whitespace.  Consider deleting these extra spaces.  [whitespace/end_of_line] [4]
./behavior_tree_core/src/Conditions/ConditionTestNode.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/Conditions/ConditionTestNode.cpp
./behavior_tree_core/src/Conditions/ROSCondition.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:6:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:21:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:22:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:25:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:25:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:26:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:29:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:31:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:31:  Line ends in whitespace.  Consider deleting these extra spaces.  [whitespace/end_of_line] [4]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:31:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:39:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:54:  Lines should be <= 120 characters long  [whitespace/line_length] [2]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:61:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:65:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:65:  } should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:65:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:65:  Missing space before else  [whitespace/braces] [5]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:70:  Tab found; better to use spaces  [whitespace/tab] [1]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:70:  Line ends in whitespace.  Consider deleting these extra spaces.  [whitespace/end_of_line] [4]
./behavior_tree_core/src/Conditions/ROSCondition.cpp:9:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/Conditions/ROSCondition.cpp
./behavior_tree_core/src/ControlNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/ControlNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/ControlNode.cpp:15:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/ControlNode.cpp:59:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/ControlNode.cpp:61:  Missing space before ( in for(  [whitespace/parens] [5]
./behavior_tree_core/src/ControlNode.cpp:67:  when starting a new scope, { should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/ControlNode.cpp:67:  Missing space before {  [whitespace/braces] [5]
./behavior_tree_core/src/ControlNode.cpp:68:  Missing spaces around =  [whitespace/operators] [4]
./behavior_tree_core/src/ControlNode.cpp:68:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/ControlNode.cpp:68:  Missing space before ( in for(  [whitespace/parens] [5]
./behavior_tree_core/src/ControlNode.cpp:109:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/ControlNode.cpp:110:  Weird number of spaces at line-start.  Are you using a 2-space indent?  [whitespace/indent] [3]
./behavior_tree_core/src/ControlNode.cpp:124:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/ControlNode.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
./behavior_tree_core/src/ControlNode.cpp:51:  Add #include <vector> for vector<>  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/ControlNode.cpp
./behavior_tree_core/src/SequenceStarNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/SequenceStarNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/SequenceStarNode.cpp:25:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/SequenceStarNode.cpp:25:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/SequenceStarNode.cpp:27:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/SequenceStarNode.cpp:33:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/SequenceStarNode.cpp:47:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/SequenceStarNode.cpp:91:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/SequenceStarNode.cpp:93:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/SequenceStarNode.cpp:101:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/SequenceStarNode.cpp:109:  Lines should be <= 120 characters long  [whitespace/line_length] [2]
./behavior_tree_core/src/SequenceStarNode.cpp:109:  } should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/SequenceStarNode.cpp:109:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/SequenceStarNode.cpp:109:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/SequenceStarNode.cpp:115:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/SequenceStarNode.cpp:122:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/SequenceStarNode.cpp:131:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/SequenceStarNode.cpp:183:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/SequenceStarNode.cpp:185:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/SequenceStarNode.cpp:187:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/SequenceStarNode.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/SequenceStarNode.cpp
./behavior_tree_core/src/DecoratorNegationNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/DecoratorNegationNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/DecoratorNegationNode.cpp:15:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/DecoratorNegationNode.cpp:26:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/DecoratorNegationNode.cpp:31:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/DecoratorNegationNode.cpp:88:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/DecoratorNegationNode.cpp:98:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/DecoratorNegationNode.cpp:107:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/DecoratorNegationNode.cpp:108:  } should be on a line by itself  [whitespace/braces] [4]
./behavior_tree_core/src/DecoratorNegationNode.cpp:117:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
./behavior_tree_core/src/DecoratorNegationNode.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/DecoratorNegationNode.cpp
./behavior_tree_core/src/NodeSemaphore.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
Done processing ./behavior_tree_core/src/NodeSemaphore.cpp
./behavior_tree_core/src/test.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/test.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/test.cpp:20:  At least two spaces is best between code and comments  [whitespace/comments] [2]
./behavior_tree_core/src/test.cpp:20:  Should have a space between // and comment  [whitespace/comments] [4]
Done processing ./behavior_tree_core/src/test.cpp
./behavior_tree_core/src/ParallelNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/ParallelNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/ParallelNode.cpp:46:  Lines should be <= 120 characters long  [whitespace/line_length] [2]
./behavior_tree_core/src/ParallelNode.cpp:50:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/ParallelNode.cpp:55:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/ParallelNode.cpp:60:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/ParallelNode.cpp:69:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/ParallelNode.cpp:81:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/ParallelNode.cpp:81:  Missing space before ( in for(  [whitespace/parens] [5]
./behavior_tree_core/src/ParallelNode.cpp:153:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/ParallelNode.cpp:184:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/ParallelNode.cpp:184:  Missing space before ( in for(  [whitespace/parens] [5]
./behavior_tree_core/src/ParallelNode.cpp:228:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/ParallelNode.cpp:228:  Missing space before ( in for(  [whitespace/parens] [5]
./behavior_tree_core/src/ParallelNode.cpp:296:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/ParallelNode.cpp:296:  Missing space before ( in for(  [whitespace/parens] [5]
./behavior_tree_core/src/ParallelNode.cpp:363:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/ParallelNode.cpp:407:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/ParallelNode.cpp:407:  Missing space before ( in for(  [whitespace/parens] [5]
./behavior_tree_core/src/ParallelNode.cpp:448:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/ParallelNode.cpp:448:  Missing space before ( in for(  [whitespace/parens] [5]
./behavior_tree_core/src/ParallelNode.cpp:44:  Add #include <limits> for numeric_limits<>  [build/include_what_you_use] [4]
./behavior_tree_core/src/ParallelNode.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/ParallelNode.cpp
./behavior_tree_core/src/LeafNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/LeafNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/LeafNode.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/LeafNode.cpp
./behavior_tree_core/src/SelectorNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/SelectorNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/SelectorNode.cpp:26:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/SelectorNode.cpp:31:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/SelectorNode.cpp:44:  Missing spaces around <  [whitespace/operators] [3]
./behavior_tree_core/src/SelectorNode.cpp:88:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/SelectorNode.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/SelectorNode.cpp
./behavior_tree_core/src/Exceptions.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/Exceptions.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/Exceptions.cpp:7:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/Exceptions.cpp
./behavior_tree_core/src/ConditionNode.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/ConditionNode.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/ConditionNode.cpp:16:  Redundant blank line at the start of a code block should be deleted.  [whitespace/blank_line] [2]
./behavior_tree_core/src/ConditionNode.cpp:17:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/ConditionNode.cpp:5:  Add #include <string> for string  [build/include_what_you_use] [4]
Done processing ./behavior_tree_core/src/ConditionNode.cpp
./behavior_tree_core/src/BehaviorTree.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
./behavior_tree_core/src/BehaviorTree.cpp:3:  Do not use namespace using-directives.  Use using-declarations instead.  [build/namespaces] [5]
./behavior_tree_core/src/BehaviorTree.cpp:6:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/BehaviorTree.cpp:10:  Missing space after ,  [whitespace/comma] [3]
./behavior_tree_core/src/BehaviorTree.cpp:14:  Missing space before ( in while(  [whitespace/parens] [5]
./behavior_tree_core/src/BehaviorTree.cpp:23:  Missing space before ( in if(  [whitespace/parens] [5]
./behavior_tree_core/src/BehaviorTree.cpp:25:  Should have a space between // and comment  [whitespace/comments] [4]
./behavior_tree_core/src/BehaviorTree.cpp:30:  Redundant blank line at the end of a code block should be deleted.  [whitespace/blank_line] [3]
Done processing ./behavior_tree_core/src/BehaviorTree.cpp
Done processing ./behavior_tree_core/contributors.txt
Total errors found: 715

Problem of passing parameters to leaf node and repeated mount of leaf nodes

Hi,

Dear developers, When I used this open source project, I found these problems:

  1. The software design does not support passing parameters to leaf node.

  2. A leaf node is not allowed to mount repeatedly to the same control node.

Do you think these two problems need optimization?

Best Regards,
Yao Xiaofan

add status names to output.

The console output status values are hard to read, adding names helps a lot.
For example, by adding this function to tree_node.cpp, the console output is more easily read:

std::string BT::TreeNode::get_status_name(int status)
{
    std::string status_names[7] = {
        "RUNNING", "SUCCESS", "FAILURE", "IDLE", "HALTED", "EXIT", "ERROR"};
    if (status >=0 && status <= 5) return status_names[status];
    else return status_names[6];
}

and changing
DEBUG_STDOUT(get_name() << " is setting its status to " << status_);
to:
DEBUG_STDOUT(get_name() << " is setting its status to " << get_status_name(status_));

The console output changes from:

Ticking the root node !
[ INFO] [1526758718.385208363]: I am running the request
[INFO] [1526758718.388387]: Checking condition food_present
[INFO] [1526758718.390266]: Condition /condition_food_present: Succeeded
action_increase_velocity is setting its status to 3
move_forwardNEEDS TO TICK action_increase_velocity
action_increase_velocity is setting its status to 3
[ INFO] [1526758718.391528609]: I am running the request to action_increase_velocity
[INFO] [1526758718.393253]: Starting increase velocity action
[INFO] [1526758718.394143]: Action /action_increase_velocity: Succeeded
action_increase_velocity is setting its status to 0
action_increase_velocity is setting its status to 0
move_forward is HALTING children from 2
move_forward is setting its status to 0
action_increase_velocity is setting its status to 0
[ INFO] [1526758718.412077679]: The Server Has Replied

to:

Ticking the root node !
[ INFO] [1526758291.875182852]: I am running the request
[INFO] [1526758291.878787]: Checking condition food_present
[INFO] [1526758291.879574]: Condition /condition_food_present: Succeeded
action_increase_velocity is setting its status to IDLE
move_forwardNEEDS TO TICK action_increase_velocity
action_increase_velocity is setting its status to IDLE
[ INFO] [1526758291.881327821]: I am running the request to action_increase_velocity
move_forward is HALTING children from 2
move_forward is setting its status to RUNNING
action_increase_velocity is setting its status to RUNNING
[INFO] [1526758291.891681]: Starting increase velocity action
[INFO] [1526758291.892356]: Action /action_increase_velocity: Succeeded
action_increase_velocity is setting its status to RUNNING
action_increase_velocity is setting its status to RUNNING
[ INFO] [1526758291.912112440]: The Server Has Replied
Ticking the root node !
[ INFO] [1526758292.891682618]: I am running the request
[INFO] [1526758292.901677]: Checking condition food_present
[INFO] [1526758292.904064]: Condition /condition_food_present: Succeeded
action_increase_velocity is setting its status to SUCCESS
move_forward is setting its status to SUCCESS

Pros and Cons for ROS-Behavior-Tree

Is ROS-Behavior-Tree actively maintained?
Is ROS-Behavior-Tree considered mature and usable for production code?
I notice that @miccol is contributing to BehaviorTree.CPP as well. Is this a better choice or what is the Pros and Cons for one implementation versus the other?

Basically I am looking for a replacement for a ROS SMACH-based sequencing engine, which suffers from being slow and vulnerable to threading issues. Maybe the answers to my above questions would be nice to have in the README

Are the people behind ROS-Behavior-Tree actively following ROS answers so questions can be asked there instead of in an issue like this?

Looking for ROS2 port

Hi, I would like to use the Behavior-Tree for ROS2 and I was wondering if this library has been ported to ROS2 or if there is any plan for porting it to ROS2?

Thank you,

Mohammad

Just to understand a little better.

Hi again.

So, I have been trying to understand this code. Can you please tell me what is the src.zip in the src directory? I mean, why there is a .zip there? And else.. can you tell me where is the BTAction.h located? I see the following inclusion in a bunch of source files but I am not able to locate the corresponding file:

#include <behavior_tree_leaves/BTAction.h>

Can you help me on this?
Regards. Thanks a lot.

Problems about Segmentation fault

Hi @miccol ,I was new in ROS and BT.
When i installed ,i checked the installation by the example:
$ roslaunch behavior_tree_leaves test_behavior_tree.launch
The result was:
[ INFO] [1510192545.521117587]: Waiting For the Acutator named action to start
[ INFO] [1510192545.897654005]: The Acutator action has started
[ INFO] [1510192546.030964858]: Waiting For the Acutator named condition to start
[ INFO] [1510192546.239948285]: Actuator condition Started
Start Drawing!
Segmentation fault (core dumped)
So i read the code and thought the problem may occured due to DotBt. Then i Commented-Out:
// BT::DotBt dotbt(root);
//std::thread t(&BT::DotBt::publish, dotbt);
And recompile. The result was:
[ INFO] [1510193675.814797855]: Waiting For the Acutator named action to start
[ INFO] [1510193676.030049476]: The Acutator action has started
[ INFO] [1510193676.132046947]: Waiting For the Acutator named condition to start
[ INFO] [1510193676.336096227]: Actuator condition Started
Start Drawing!
Ticking the root node !
[ INFO] [1510193676.336497677]: I am running the request
action is setting its status to 3
seq1NEEDS TO TICK action
action is setting its status to 3
[ INFO] [1510193676.338210673]: I am running the request to action
action is setting its status to 0
action is setting its status to 0
action is setting its status to 0
action is setting its status to 0
action is setting its status to 0
Segmentation fault (core dumped)
I read your code for few days. It maybe the problem of Library, but i don't know how to sovle it.

Prebuilt binary packages

Hi
Do you have any plans to release this as a pre built catkin package on ros buildfarm for indigo and above? (So it's possible to install as binary opposed to building from source)
Thanks in advance.

Enquiry about new action

Hello, I would like to build a new self-defined action class. But if I copy the action_example.cpp and rename the class, I still need to rewrite the ros_action.cpp and ros_action.h to use the external_ros_nodes_test.cpp. Is there any other way to create a new action? Thanks!

NameError: global name 'behavior_tree_leaves' is not defined

With the following command rosrun behavior_tree_leaves condition_example.py I get the following error:

Traceback (most recent call last):
  File "/home/user/catkin_ws/src/behavior_tree/behavior_tree_leaves/example_nodes/python/condition_example.py", line 50, in <module>
    BTAction(rospy.get_name())
  File "/home/user/catkin_ws/src/behavior_tree/behavior_tree_leaves/example_nodes/python/condition_example.py", line 20, in __init__
    self._as = actionlib.SimpleActionServer(self._action_name, behavior_tree_leaves.msg.BTAction, execute_cb=self.execute_cb, auto_start = False)
NameError: global name 'behavior_tree_leaves' is not defined

The issue, I believe, is in line #20 where behavior_tree_leaves.msg.BTAction is listed as an argument to the SimpleActionServer constructor. Should this be behavior_tree_core.msg.BTAction as in the action example? When I applied this change the node did indeed run.

Btw, I did notice a similar issue with the C++ implementation (which seems to be resolved).

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.