From 8952524ccfb1f4fd0108aed16c4b6208413fbdf4 Mon Sep 17 00:00:00 2001 From: zaynab ahmad Date: Wed, 19 Nov 2025 06:38:11 +0200 Subject: [PATCH 1/7] adding reactivity --- .vscode/c_cpp_properties.json | 18 ++++ .vscode/launch.json | 24 +++++ .vscode/settings.json | 60 ++++++++++++ grab2_behavior_tree/CMakeLists.txt | 51 +++++----- .../behavior_trees/collect_cubes_reactive.xml | 63 ++++++++++++ .../behavior_trees/test_tree.xml | 6 ++ .../check_gripper_has_object.hpp | 36 +++++++ grab2_behavior_tree/package.xml | 1 + .../plugins/action/compute_top_down_grasp.cpp | 4 +- .../plugins/check_gripper_has_object.cpp | 98 +++++++++++++++++++ grab2_behavior_tree/src/main.cpp | 8 +- grab2_planner/CMakeLists.txt | 2 +- grab2_planner/package.xml | 2 +- topic_based_ros2_control | 1 + 14 files changed, 345 insertions(+), 29 deletions(-) create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 grab2_behavior_tree/behavior_trees/collect_cubes_reactive.xml create mode 100644 grab2_behavior_tree/behavior_trees/test_tree.xml create mode 100644 grab2_behavior_tree/include/grab2_behavior_tree/check_gripper_has_object.hpp create mode 100644 grab2_behavior_tree/plugins/check_gripper_has_object.cpp create mode 160000 topic_based_ros2_control diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..c2098a2 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,18 @@ +{ + "configurations": [ + { + "name": "linux-gcc-x64", + "includePath": [ + "${workspaceFolder}/**" + ], + "compilerPath": "/usr/bin/gcc", + "cStandard": "${default}", + "cppStandard": "${default}", + "intelliSenseMode": "linux-gcc-x64", + "compilerArgs": [ + "" + ] + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..a2eea67 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,24 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "C/C++ Runner: Debug Session", + "type": "cppdbg", + "request": "launch", + "args": [], + "stopAtEntry": false, + "externalConsole": false, + "cwd": "/home/zaynap/Projects/grab/grab2/grab2_behavior_tree/src", + "program": "/home/zaynap/Projects/grab/grab2/grab2_behavior_tree/src/build/Debug/outDebug", + "MIMode": "gdb", + "miDebuggerPath": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9abfe92 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,60 @@ +{ + "C_Cpp_Runner.cCompilerPath": "gcc", + "C_Cpp_Runner.cppCompilerPath": "g++", + "C_Cpp_Runner.debuggerPath": "gdb", + "C_Cpp_Runner.cStandard": "", + "C_Cpp_Runner.cppStandard": "", + "C_Cpp_Runner.msvcBatchPath": "", + "C_Cpp_Runner.useMsvc": false, + "C_Cpp_Runner.warnings": [ + "-Wall", + "-Wextra", + "-Wpedantic", + "-Wshadow", + "-Wformat=2", + "-Wcast-align", + "-Wconversion", + "-Wsign-conversion", + "-Wnull-dereference" + ], + "C_Cpp_Runner.msvcWarnings": [ + "/W4", + "/permissive-", + "/w14242", + "/w14287", + "/w14296", + "/w14311", + "/w14826", + "/w44062", + "/w44242", + "/w14905", + "/w14906", + "/w14263", + "/w44265", + "/w14928" + ], + "C_Cpp_Runner.enableWarnings": true, + "C_Cpp_Runner.warningsAsError": false, + "C_Cpp_Runner.compilerArgs": [], + "C_Cpp_Runner.linkerArgs": [], + "C_Cpp_Runner.includePaths": [], + "C_Cpp_Runner.includeSearch": [ + "*", + "**/*" + ], + "C_Cpp_Runner.excludeSearch": [ + "**/build", + "**/build/**", + "**/.*", + "**/.*/**", + "**/.vscode", + "**/.vscode/**" + ], + "C_Cpp_Runner.useAddressSanitizer": false, + "C_Cpp_Runner.useUndefinedSanitizer": false, + "C_Cpp_Runner.useLeakSanitizer": false, + "C_Cpp_Runner.showCompilationTime": false, + "C_Cpp_Runner.useLinkTimeOptimization": false, + "C_Cpp_Runner.msvcSecureNoWarnings": false, + "ros.distro": "humble" +} \ No newline at end of file diff --git a/grab2_behavior_tree/CMakeLists.txt b/grab2_behavior_tree/CMakeLists.txt index 122c35c..e52276a 100644 --- a/grab2_behavior_tree/CMakeLists.txt +++ b/grab2_behavior_tree/CMakeLists.txt @@ -22,28 +22,31 @@ find_package(trajectory_msgs REQUIRED) find_package(grab2_msgs REQUIRED) find_package(behaviortree_cpp REQUIRED) find_package(behaviortree_ros2 REQUIRED) +find_package(sensor_msgs REQUIRED) set(CMAKE_CXX_STANDARD 17) # Libraries -add_library(grab2_detect_object_bt_node SHARED plugins/action/detect_object.cpp) -add_library(grab2_get_trajectory_from_yaml_bt_node SHARED plugins/action/get_trajectory_from_yaml.cpp) -add_library(grab2_get_grasp_hardcoded_bt_node SHARED plugins/action/get_grasp_hardcoded.cpp) -add_library(grab2_compute_top_down_grasp_bt_node SHARED plugins/action/compute_top_down_grasp.cpp) -add_library(grab2_compute_plan_to_target_ik_bt_node SHARED plugins/action/compute_plan_to_target_ik.cpp) -add_library(grab2_move_bt_node SHARED plugins/action/move.cpp) -add_library(grab2_grip_bt_node SHARED plugins/action/grip.cpp) -add_library(grab2_reach_object_bt_node SHARED plugins/action/reach_object.cpp) +add_library(grab2_get_trajectory_hardcoded SHARED plugins/get_trajectory_hardcoded.cpp) +add_library(grab2_get_grasp_hardcoded SHARED plugins/get_grasp_hardcoded.cpp) +add_library(grab2_detect_object SHARED plugins/detect_object.cpp) +add_library(grab2_get_grasp SHARED plugins/get_grasp.cpp) +add_library(grab2_plan SHARED plugins/plan.cpp) +add_library(grab2_move SHARED plugins/move.cpp) +add_library(grab2_grip SHARED plugins/grip.cpp) +add_library(grab2_check_gripper_has_object SHARED + plugins/check_gripper_has_object.cpp +) list(APPEND plugin_libs - grab2_detect_object_bt_node - grab2_get_trajectory_from_yaml_bt_node - grab2_get_grasp_hardcoded_bt_node - grab2_compute_top_down_grasp_bt_node - grab2_compute_plan_to_target_ik_bt_node - grab2_move_bt_node - grab2_grip_bt_node - grab2_reach_object_bt_node + grab2_get_trajectory_hardcoded + grab2_get_grasp_hardcoded + grab2_detect_object + grab2_get_grasp + grab2_plan + grab2_move + grab2_grip + grab2_check_gripper_has_object ) foreach(bt_plugin ${plugin_libs}) @@ -91,6 +94,9 @@ target_link_libraries(grab2_engine behaviortree_ros2::behaviortree_ros2 ) + + + # Install Libs & Exec install( TARGETS @@ -101,14 +107,11 @@ install( RUNTIME DESTINATION lib/${PROJECT_NAME} ) -# Install plugins for other packages to load -install( - TARGETS - ${plugin_libs} - LIBRARY DESTINATION share/${PROJECT_NAME}/bt_plugins - ARCHIVE DESTINATION share/${PROJECT_NAME}/bt_plugins - RUNTIME DESTINATION share/${PROJECT_NAME}/bt_plugins -) +# install(TARGETS grab2_check_gripper_has_object +# ARCHIVE DESTINATION lib +# LIBRARY DESTINATION lib +# RUNTIME DESTINATION bin +# ) # Install directories install( diff --git a/grab2_behavior_tree/behavior_trees/collect_cubes_reactive.xml b/grab2_behavior_tree/behavior_trees/collect_cubes_reactive.xml new file mode 100644 index 0000000..797d46c --- /dev/null +++ b/grab2_behavior_tree/behavior_trees/collect_cubes_reactive.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + +