jsk-ros-pkg / jsk_recognition

JSK perception ROS packages
https://github.com/jsk-ros-pkg/jsk_recognition
269 stars 190 forks source link

PeoplePoseArray visualizer #2673

Open k-okada opened 2 years ago

k-okada commented 2 years ago

@iory, @knorth55 I wrote the program to publish PeoplePoseArray and looking for visualization program, for example subscribe PeoplePoseArray and Image, and display them. https://github.com/k-okada/jsk_robot/pull/21/files#diff-f6091d0eee7c871a76be7a3de41321ec39f062678adbc2094690d9184a415b04R40-R41

BTW, I found there is PoeplePoseArray(https://github.com/jsk-ros-pkg/jsk_recognition/pull/2115) and HumanSkeltonArray (https://github.com/jsk-ros-pkg/jsk_recognition/pull/2437) and HumanSkeltonArray have rviz plugin

1) why we have both HumanPoseArray and HumanSkeltonArray 2) Do we have rviz plugin for PeoplePoseARrray? 3) Do we have 2D visualizer for PeoplePoseArray or HumanSkeltonArray?

knorth55 commented 2 years ago

PeoplePoseArray only has vertices information and no information about edges, so I made HumanSkeltonArray visualization. Also, basically PeoplePoseArray is used for 2D poses in image pixel unit, not for 3D poses. (recently it is mixed ...), so I made HumanSkeltonArray for 3D poses in meter unit. However, we can combine these two messages into one.

Do we have rviz plugin for PeoplePoseARrray?

No, because it does not have information about edges.

Do we have 2D visualizer for PeoplePoseArray or HumanSkeltonArray?

Also No.

PeoplePoseArray is quite complicated message. Because, in 2D, the pose field have the position in image pixel unit, but in 3D, it is represented coordinates from frame id in meter unit. I think it is better to have a flag to distinguish these two difference.

iory commented 2 years ago

Also, basically PeoplePoseArray is used for 2D poses in image pixel unit, not for 3D poses. (recently it is mixed ...),

This is a mistake. From the beginning, PeoplePoseArray publish a 3d topic. https://github.com/jsk-ros-pkg/jsk_recognition/commit/2574c13552f16d4374afc18781743a5ad180e001#diff-2e4128b3786c046f7c1b353f510d3c6928574a0dc78d0600ec56771590d95f14R144-R179

PeoplePoseArray is quite complicated message. Because, in 2D, the pose field have the position in image pixel unit, but in 3D, it is represented coordinates from frame id in meter unit. I think it is better to have a flag to distinguish these two difference.

Here's an easy way to do this without changing the message: It can be judged by whether the value of z in the camera coordinate system is 0.

 I think it is better to have a flag to distinguish these two difference.

This idea is also good.