From fa7546a1442b4e6663e4ad95657bbe02196b4227 Mon Sep 17 00:00:00 2001 From: Jan Weber <jan.weber@hs-bochum.de> Date: Mon, 1 Feb 2021 12:14:14 +0100 Subject: [PATCH] Error when reinitializing the EGM interface fixed --- abb_egm_driver/scripts/driver_test_node.py | 2 +- abb_egm_driver/src/abb_egm_robot_node.cpp | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/abb_egm_driver/scripts/driver_test_node.py b/abb_egm_driver/scripts/driver_test_node.py index 501f7f1..4f18dd7 100755 --- a/abb_egm_driver/scripts/driver_test_node.py +++ b/abb_egm_driver/scripts/driver_test_node.py @@ -131,7 +131,7 @@ def circle(move_group, robot): # switched to motion streaming mode when positions are streamed to the robot afterwards. jtp = trajectory_msgs.msg.JointTrajectoryPoint() jtp.positions = move_group.get_current_joint_values() - for _ in range(10): + for _ in range(20): joint_command_publisher.publish(jtp) rospy.sleep(0.1) diff --git a/abb_egm_driver/src/abb_egm_robot_node.cpp b/abb_egm_driver/src/abb_egm_robot_node.cpp index 4fd1f1b..2dc07ac 100644 --- a/abb_egm_driver/src/abb_egm_robot_node.cpp +++ b/abb_egm_driver/src/abb_egm_robot_node.cpp @@ -261,12 +261,17 @@ int main(int argc, char** argv) // Create the RWS interface if(!egm_interface) { - egm_interface = new AbbEgmInterface(); - // Initialize the EGM interface. If it fails, restart RAPID and try again. + // Create and initialize the EGM interface. If it fails, delate the interface, restart RAPID and try again. // After switching on the robot controller, it often happens that the initialization fails. // This can be fixed by restarting RAPID. - if(!egm_interface->init()) restartRapid(rws_interface); - if(!egm_interface->init()) break; + egm_interface = new AbbEgmInterface(); + if(!egm_interface->init()) + { + delete egm_interface; + restartRapid(rws_interface); + egm_interface = new AbbEgmInterface(); + if(!egm_interface->init()) break; + } } // Create the Robot interface -- GitLab