Kinovarobotics / ros_kortex

ROS packages for KINOVA® KORTEX™ robotic arms
Other
160 stars 159 forks source link

Unable to receive end of action feedback from the robotic arm. #311

Closed jlbhb closed 3 weeks ago

jlbhb commented 12 months ago

I followed the instructions in the readme to install and configure the environment under Ubuntu20.04 to control a real kinova gen3 lite. Everything went smoothly until I started running roslaunch kortex_examples cartesian_poses_with_notifications_python.launch and something went wrong. The robotic arm can only complete the first step of action, which is to return to the home state, and then it cannot perform the next action. After searching for the ros node and ros topic, I found that the subscriber: /cartesian_poses_with_notifaications_python didn’t receive the end signal after the robot arm movement ended, but the publisher: my_gen3_lite/my_gen3_lite_driver ran normally. And I run kortex_driver.launch without any errors. I'm not sure if it's a problem with the robot arm or my program configuration. In addition, I'm using the noetic-devel

MiguelGarciaUVa commented 8 months ago

I had that problem too. I've just solved it. In the code of the program example_cartesian_poses_with_notifications.py, they subscribe to ActionNotification after sending the robot home. Just change the code to subscribe to notifications before sending the robot home. I hope I have been helpful.

def main(self):
        # For testing purposes
        success = self.is_init_success
        try:
            rospy.delete_param("/kortex_examples_test_results/cartesian_poses_with_notifications_python")
        except:
            pass

        if success:

            #*******************************************************************************
            # Make sure to clear the robot's faults else it won't move if it's already in fault
            success &= self.example_clear_faults()
            #*******************************************************************************
            # Subscribe to ActionNotification's from the robot to know when a cartesian pose is finished
            success &= self.example_subscribe_to_a_robot_notification()

            #*******************************************************************************
            # Start the example from the Home position
            success &= self.example_home_the_robot()
            #*******************************************************************************

            #*******************************************************************************
            # Set the reference frame to "Mixed"
            success &= self.example_set_cartesian_reference_frame()

            #*******************************************************************************
            # CHANGED (Now, It is before sending to Home Position):
            # Subscribe to ActionNotification's from the robot to know when a cartesian pose is finished
            # success &= self.example_subscribe_to_a_robot_notification()
martinleroux commented 3 weeks ago

I confirm the above answer is correct.

I will be closing this issue.