1
$\begingroup$

I am confused about how high level my behavior tree has to be. For example, if I want to create an autonomous robot that goes from point A to point, what would be a reasonable behavior tree?

For now, I think one of the first actions should be something like, loading parameter / configure nodes but I don't know if that's way lower level than the behavior tree is supposed to take care of.

$\endgroup$

1 Answer 1

1
$\begingroup$

A behaviour tree in robotics is in most cases used instead of an application program. It already assumes a running robot and a set of behaviours which are available at programming time.

I am not sure if ROS supports an application program based programming model, like industrial robots. If yes, the behaviour tree would represent the application program and would not include any steps, which are infrastructure relevant (like node config). But this is only through analogy with the current behaviour tree use-cases, not a technical limitation.

Other use-cases can be found for behaviour trees, so there is no rule on how granular a behaviour tree "has to be" or what it "has to do". For sure it could include configuration steps also, it might also make sense, the only limitation is that the entity interpreting/executing the behaviour tree instance has to support the defined behaviour. This is the only technical limitation.

$\endgroup$
2
  • $\begingroup$ I don't understand what you mean by application program based programming model. Could you explain, please? $\endgroup$
    – ignacio
    Mar 9, 2021 at 13:02
  • $\begingroup$ Industrial robot controllers use an application program which describes the task specific behavior of the robot. In most cases these programs use a proprietary programming language, Kuka uses KRL, ABB uses Rapid, Fanuc uses Karel. Programs written in these languages „run“ on the robot controller and are used to (re)program the robot. Alongside elements of a general purpose programming language (lile conditionals, loops, etc.) these include motion and IO related commands also. $\endgroup$
    – 50k4
    Mar 9, 2021 at 14:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.