TrinhNC / ros_hand_gesture_recognition

A ROS package for estimating hand pose using Mediapipe (and Python)
MIT License
10 stars 3 forks source link

libgcc_s.so.1 must be installed for pthread_cancel to work #2

Open mericgeren opened 9 months ago

mericgeren commented 9 months ago

Hello,

I am trying to use this package at a Jetson AGX Xavier. After solving the issue here when I try to roslaunch ros_hand_gesture_recognition hand_sign.launch, I see such an output on my terminal screen:

process[hand_sign_recognition-1]: started with pid [22518]
libgcc_s.so.1 must be installed for pthread_cancel to work
[hand_sign_recognition-1] process has died [pid 22518, exit code -6, cmd /home/mericgeren/catkin_ws/src/ros_hand_gesture_recognition/src/hand_sign_recognition.py __name:=hand_sign_recognition __log:=/home/mericgeren/.ros/log/b02b8112-8dc7-11ee-9d36-00044bcc3306/hand_sign_recognition-1.log].
log file: /home/mericgeren/.ros/log/b02b8112-8dc7-11ee-9d36-00044bcc3306/hand_sign_recognition-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done

Then I have tried the command export OMP_NUM_THREADS=1 and then, I have seen such an output:


Traceback (most recent call last):
  File "/home/mericgeren/catkin_ws/src/ros_hand_gesture_recognition/src/hand_sign_recognition.py", line 50, in <module>
    hand_sign = HandSignRecognition()
  File "/home/mericgeren/catkin_ws/src/ros_hand_gesture_recognition/src/hand_sign_recognition.py", line 25, in __init__
    rospy.get_param("hand_sign_recognition/keypoint_classifier_model"))
  File "/home/mericgeren/catkin_ws/src/ros_hand_gesture_recognition/src/gesture_recognition.py", line 32, in __init__
    self.hands, self.keypoint_classifier, self.keypoint_classifier_labels = self.load_model()
  File "/home/mericgeren/catkin_ws/src/ros_hand_gesture_recognition/src/gesture_recognition.py", line 41, in load_model
    min_tracking_confidence=self.min_tracking_confidence,
  File "/home/mericgeren/.local/lib/python3.6/site-packages/mediapipe/python/solutions/hands.py", line 129, in __init__
    'multi_handedness'
  File "/home/mericgeren/.local/lib/python3.6/site-packages/mediapipe/python/solution_base.py", line 262, in __init__
    self._graph.start_run(self._input_side_packets)
RuntimeError: ; eglGetDisplay() returned error 0x3000ontext_egl.cc:156) 
libgcc_s.so.1 must be installed for pthread_cancel to work

Could you offer your advice and guidance please?

Kindest regards.

mericgeren commented 9 months ago

I have tried to switching back to 7.5.0 version which has it's libgcc_s.so.1 file inside /lib/aarch64-linux-gnu. But, the error persisted. Also, tried this command:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib/aarch64-linux-gnu

Also, I have tried to copy libgcc_s.so.1 file into /usr/lib/aarch64-linux-gnu and then, to add/usr/lib/aarch64-linux-gnu to LD_LIBRARY_PATH.

But nodes still shut themselves down and I still see that " libgcc_s.so.1 must be installed for pthread_cancel to work " message on the screen.

Could you offer your advice please?

Kindest regards.

mericgeren commented 9 months ago

I have tried renaming libgcc_s.so of gcc-8 to libgcc_s.so.1 and moving the file to /usr/lib. As I have launched the model, I got this output:


  File "/home/mericgeren/catkin_ws/src/ros_hand_gesture_recognition/src/hand_sign_recognition.py", line 50, in <module>
    hand_sign = HandSignRecognition()
  File "/home/mericgeren/catkin_ws/src/ros_hand_gesture_recognition/src/hand_sign_recognition.py", line 25, in __init__
libgcc_s.so.1 must be installed for pthread_cancel to work
    rospy.get_param("hand_sign_recognition/keypoint_classifier_model"))
  File "/home/mericgeren/catkin_ws/src/ros_hand_gesture_recognition/src/gesture_recognition.py", line 32, in __init__
[hand_sign_recognition-2] process has died [pid 10401, exit code -6, cmd /home/mericgeren/catkin_ws/src/ros_hand_gesture_recognition/src/hand_sign_recognition.py __name:=hand_sign_recognition __log:=/home/mericgeren/.ros/log/09dd22c6-8e9d-11ee-9b62-00044bcc3306/hand_sign_recognition-2.log].
log file: /home/mericgeren/.ros/log/09dd22c6-8e9d-11ee-9b62-00044bcc3306/hand_sign_recognition-2*.log

But, this time even though processes have died, the roslaunch didn't exit and continued to work.

@TrinhNC might these errors have been caused by the mediapipe I use? Or Is that something exclusively about gcc?