This package gives information on people based on openpose messages
openpose_gossip gives informations on people sorted from left to right such as :
- id # num of the person in the image (from left to right) - posture # Possible values: "Standing" "Sitting" "Lying" "Undefined" - handPosture # Values : "Undefined" "Call" "Pointing Left" "Crossed" "Pointing Right" - boundingBox # coordinates of a person bounding box - shirtRect # coordinates of shirt rectangle sample - trouserRect # coordinates of trouser rectangle sample - distanceEval # Distance evaluation in meters from 2D informations (see 5. Calibration) - pose # Pose of the person's neck, on robot local map - faceConfidence # Face confidence - orientation # person orientation : "Front" "Back" "Right" "Left" "Front Right" "Front Left"
This program was done for the pepper robot (front camera) with some specifications :
- /!\ posture needs camera to be parallel to the ground
- /!\ distanceEval needs a calibration from csv files (see 5. Calibration)
- Raphaël LEBER
roslaunch openpose_ros_node serviceReadyTest.launch
rosrun ros_openpose_gossip_node OpenPoseGossip_node.py
roslaunch ros_openpose_gossip_examples test_on_pepper.launch
roslaunch ros_openpose_gossip_examples test_on_webcam.launch
roslaunch ros_openpose_gossip_examples test_with_file.launch
If you use this package with another camera than the front camera of the pepper, you will need to do a calibration. It consists of recording the limbs length of an "average" person at a known distance, in a standing position, maximizing (with a natural front pose) each limbs length. Function SaveLimbsProfil can be used but is not implemented in a calibration program (TODO).
The algorithm will then compare the longest limb (which means with the highest 2D components) with the limb in one of the CSV file (explanation simplified).