Repository navigation
Question: Are the claims made on SMACC about BT valid for this implementation? #613
|
The SMACC Comparison makes claims about orthogonality and concurrency, but looking through this repos tutorials it seems those claims may not be valid for this repos implementation. |
Replies: 5 comments
|
Assuming my understand of orthogonality in the SM context is correct, we've been using orthogonality in Nav2's behavior trees using BT.CPP since day 1. We have many leaf clients that call independent task servers doing independent things on independent hardware (at times), which is the same thing that SMACC does and is described in their definitions document. I can't speak to concurrancy, but I see no reason a control flow node couldn't be made to do so, but I'm not sure if BT.CPP has such a BT node example -- but I don't think there's anything preventing it. That entire article is incredibly biased, inaccurate, and overtly aggressive. A poll I ran on LinkedIn (195 responses) show a distinctly different outlook. |
|
I am glad you asked. I agree with Steve's comment about the article being "biased, inaccurate, and overtly aggressive". This does not mean that BT are better than SMACC (or vice-versa). I am not taking any stance on this matter, because I haven't had the time, patience or need to learn SMACC. I expressed my opinion about that article here: https://discourse.ros.org/t/introducing-the-smacc-state-machine-library/14963/9?u=facontidavide The most important point, for me, is: we should understand which features are "implementation dependent" and which are an intrinsic property of Behavior TreesThis is a critical distinction, because an implementation can always be improved, and this is precisely what that article fails to acknowledge. |
|
hi @Levi-Armstrong, Thank you for bringing this up. Like Davide, I tried to start a discussion with the author of that article here with no success. |
|
Everyone, thank you for the immediate response and information which confirmed my suspicion. I will leave it up to the maintainer to close since you may prefer to leave it open. |



Assuming my understand of orthogonality in the SM context is correct, we've been using orthogonality in Nav2's behavior trees using BT.CPP since day 1. We have many leaf clients that call independent task servers doing independent things on independent hardware (at times), which is the same thing that SMACC does and is described in their definitions document. I can't speak to concurrancy, but I see no reason a control flow node couldn't be made to do so, but I'm not sure if BT.CPP has such a BT node example -- but I don't think there's anything preventing it.
That entire article is incredibly biased, inaccurate, and overtly aggressive.
A poll I ran on LinkedIn (195 responses) show a disti…