diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a21bce..f699300 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -137,6 +137,9 @@ target_link_libraries(qros_robot_dynamics_interface ${catkin_LIBRARIES} dqrobotics) +add_dependencies(qros_robot_dynamics_interface ${${PROJECT_NAME}_EXPORTED_TARGETS}) +add_dependencies(qros_robot_dynamics_interface ${catkin_EXPORTED_TARGETS}) + add_library(sas_robot_driver_franka src/joint/sas_robot_driver_franka.cpp) target_link_libraries(sas_robot_driver_franka @@ -150,7 +153,8 @@ target_link_libraries(qros_effector_driver_franka_hand dqrobotics # robot_interface_hand Franka::Franka) - +add_dependencies(qros_effector_driver_franka_hand ${${PROJECT_NAME}_EXPORTED_TARGETS}) +add_dependencies(qros_effector_driver_franka_hand ${catkin_EXPORTED_TARGETS}) add_library(sas_robot_driver_coppelia src/coppelia/sas_robot_driver_coppelia.cpp) target_link_libraries(sas_robot_driver_coppelia @@ -200,6 +204,8 @@ include_directories( pybind_add_module(_qros_robot_dynamic SHARED src/robot_dynamics/qros_robot_dynamic_py.cpp src/robot_dynamics/qros_robot_dynamics_interface.cpp src/robot_dynamics/qros_robot_dynamics_provider.cpp ) +add_dependencies(_qros_robot_dynamic ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) + target_compile_definitions(_qros_robot_dynamic PRIVATE BUILD_PYBIND) # https://github.com/pybind/pybind11/issues/387 target_link_libraries(_qros_robot_dynamic PRIVATE ${catkin_LIBRARIES} -ldqrobotics) diff --git a/include/sas_robot_driver_franka.h b/include/sas_robot_driver_franka.h index 70ee6cf..7b1093b 100644 --- a/include/sas_robot_driver_franka.h +++ b/include/sas_robot_driver_franka.h @@ -61,6 +61,7 @@ struct RobotDriverFrankaConfiguration double speed; RobotInterfaceFranka::FrankaInterfaceConfiguration interface_configuration; DQ robot_reference_frame = DQ(0); + bool automatic_error_recovery = false; }; diff --git a/src/sas_robot_driver_franka_node.cpp b/src/sas_robot_driver_franka_node.cpp index 4c707a9..c561a4c 100644 --- a/src/sas_robot_driver_franka_node.cpp +++ b/src/sas_robot_driver_franka_node.cpp @@ -130,6 +130,16 @@ int main(int argc, char **argv) robot_driver_franka_configuration.robot_reference_frame = robot.get_reference_frame(); }else{ROS_INFO_STREAM(ros::this_node::getName()+"::Robot parameter file path not set. Robot Model Unknow.");} + if(nh.hasParam(ros::this_node::getName()+"/automatic_error_recovery")) { + sas::get_ros_param(nh,"/automatic_error_recovery",robot_driver_franka_configuration.automatic_error_recovery); + if(robot_driver_franka_configuration.automatic_error_recovery) + { + ROS_WARN_STREAM(ros::this_node::getName()+"::Automatic error recovery enabled. STATUS EXPERIMENTAL"); + } + } + + + robot_driver_franka_configuration.interface_configuration = franka_interface_configuration; sas::RobotDriverROSConfiguration robot_driver_ros_configuration;