Adding code and doc of semantic reasoning tutorial.#59
Conversation
Signed-off-by: Matteo MORELLI <matteo.morelli@cea.fr>
MarcoLm993
left a comment
There was a problem hiding this comment.
I see some possible redundancy with the existing tutorials, but as long as the tutorial is there, I think this isn't a problem :)
There was a problem hiding this comment.
I see some slight redundancy with the existing BTs from the other tutorials: they are not exactly the same, I know, but I wonder if we could have reused more of the existing tutorial's content.
BTW, not a big issue, more of a nitpick
There was a problem hiding this comment.
Wasn't it possible to reuse the existing nodes, like the one here: https://github.com/convince-project/overview/blob/main/tutorials/simulation/behavior_trees/bt_executor/include/pyrobosim_btcpp/nodes/pick_object_node.hpp ?
There was a problem hiding this comment.
Existing nodes directly interact with pyrobosim. In my case I needed to add some custom effects to action executions like simulating an effort at the end-effector's tip during pick and place, artificially injecting bugs in navigation, etc. I didn't want to touch existing nodes to not jeopardize the correct execution of other tutorials (no time to test all of them).
In addition, this solution actually reuses the very same interfaces from the offline verification tutorial --the pick_object_node you point out above has indeed a different interface (it task a string, while the verified model takes an int)-- showing the design-time-to-run-time transition we advocate (first design and verify the system, then deploy the verified system and introduce monitors for run-time verification).
So actually, I rather question whether we should change existing nodes with those I provide here. My proposition is to go with this solution even if some redundancy is introduced, to have the full tutorial list ready now. We can possibly refine it for a next version.
There was a problem hiding this comment.
There was a problem hiding this comment.
Same answer 😃 -- shouldn't we rather change existing nodes (in a next version) to better show the design-time-to-run-time transition we advocate?
|
I realize that I forgot to include an |
Signed-off-by: Matteo MORELLI <matteo.morelli@cea.fr>
I'm adding code and doc of the semantic reasoning tutorial.
A couple of additional points.
First, I allowed myself to add a couple of changes in the
Dockerfile, in addition to those requested for the semantic reasoning tutorial itself, to fix two issues I had when building the docker image.--ignore-installedwas needed to get rid ofRUN pip3 install --break-system-packages --ignore-installed "setuptools<70"was needed to solveerror: option --editable not recognizedwhen building python packages. In fact, it seems thatsetuptoolswhich is shipped with the base image is too new (v.82.0.1). Downgrading it solves the issue.Second, I've added another version of simple BT executor (
tutorials/semantic_reasoning_demo/simulation_extras/bt_executor2/) based on (BT::TreeExecutionServer)[https://github.com/BehaviorTree/BehaviorTree.ROS2/blob/humble/behaviortree_ros2/tree_execution_server.md], where the BT actions use the same interfaces as the offline verified models. You may want to compare it with the one intutorials/simulation/behavior_trees/bt_executor/to keep both or merge them in a next version of the tutorial.