-
Notifications
You must be signed in to change notification settings - Fork 233
Add confidence values for body tracking joint data #87
Description
With the new body tracking sdk 0.9.4 each joint has a confidence value which indicates if the joint is out of range, not observed or observed:
/** k4abt_joint_confidence_level_t
*
* \remarks
* This enumeration specifies the joint confidence level.
*/
typedef enum
{
K4ABT_JOINT_CONFIDENCE_NONE = 0, /**< The joint is out of range (too far from depth camera) */
K4ABT_JOINT_CONFIDENCE_LOW = 1, /**< The joint is not observed (likely due to occlusion), predicted joint pose */
K4ABT_JOINT_CONFIDENCE_MEDIUM = 2, /**< Medium confidence in joint pose. Current SDK will only provide joints up to this confidence level */
K4ABT_JOINT_CONFIDENCE_HIGH = 3, /**< High confidence in joint pose. Placeholder for future SDK */
K4ABT_JOINT_CONFIDENCE_LEVELS_COUNT = 4, /**< The total number of confidence levels. */
} k4abt_joint_confidence_level_t;
We should publish this information together with the position of the joints.
Currently we use a marker array which can be displayed easily in RViz:
http://docs.ros.org/melodic/api/visualization_msgs/html/msg/MarkerArray.html
Each Marker has an ID, which is a combination of body ID & joint ID, and a position:
http://docs.ros.org/melodic/api/visualization_msgs/html/msg/Marker.html
The question is:
Where do we put in a confidence value?
I guess it would be nice to stick with ROS standard messages but I don't see field that would fit for this use case.
We could put it in the "text" field because its unused for non-text-markers and therefore free in our case.
But this will show a warning in RViz: "Non empty marker text is ignored"
So its not so nice.
Any other ideas?