Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem with 3D visualization inside RVIZ. #5

Closed
OHernandezr opened this issue Jan 16, 2020 · 6 comments
Closed

Problem with 3D visualization inside RVIZ. #5

OHernandezr opened this issue Jan 16, 2020 · 6 comments
Labels
3d visualization This issue is related to 3D skeleton visualization

Comments

@OHernandezr
Copy link

OHernandezr commented Jan 16, 2020

I have a problem with 3D visualization inside RVIZ

I cam see the skeleton in default window
But, in rviz only the image

In console show next error:

 _File "/home/user/catkin_ws/src/ros_openpose/scripts/visualizer.py", line 169, in frame_callback
    leftHandPart =  person.leftHandParts[point_id]
IndexError: list index out of range_

Output in rostopic echo /frame:

> point:
> x: 0.0278618205339
> y: -0.336625277996
> z: 0.774000048637
> -
> score: 0.0
> pixel:
> x: 0.0
> y: 0.0
> point:
> x: -0.193545013666
> y: 0.103801973164
> z: 0.628000020981
> -
> score: 0.0
> pixel:
> x: 0.0
> y: 0.0
> point:
> x: -0.193545013666
> y: 0.103801973164
> z: 0.628000020981
> -
> score: 0.0
> pixel:
> x: 0.0
> y: 0.0
> point:
> x: -0.477131932974
> y: 0.190523177385
> z: 1.23500001431
> -
> score: 0.0
> pixel:
> x: 0.0
> y: 0.0
> point:
> x: -0.477131932974
> y: 0.190523177385
> z: 1.23500001431
> -
> score: 0.0
> pixel:
> x: 0.0
> y: 0.0
> point:
> x: -0.1889847368
> y: 0.0630785375834
> z: 0.572000026703
> -
> score: 0.0
> pixel:
> x: 0.0
> y: 0.0
> point:
> x: -0.1889847368
> y: 0.0630785375834
> z: 0.572000026703
> leftHandParts: []
> rightHandParts: []
@OHernandezr
Copy link
Author

After installation of ros-visualization-msgs

sudo apt-get install -y ros-visualization-msgs

In rviz Human Skeleton, Status: Error:

Uninitialized quaternion, assuming identity.
scale.y and scale.z of LINE_LIST or LINE_STRIP are ignored.
Points should not be empty for specified marker type.
At least two points are required for a LINE_STRIP marker.

In rviz the whole person is shown in green

output rostopic echo /frame

point:
x: 0.76700001955
y: 0.0799146220088
z: -0.0290726330131
leftHandParts:
-
score: 0.299114465714
pixel:
x: 471.147674561
y: 198.045516968
point:
x: 0.410511046648
y: -0.0188666600734
z: 0.705000042915
-
score: 0.460736393929
pixel:
x: 479.077056885
y: 205.023361206
point:
x: 0.408933371305
y: -0.00515820737928
z: 0.677000045776
-
score: 0.590507388115
pixel:
x: 486.054901123
y: 210.415328979
point:
x: 0.418776631355
y: 0.0048198052682
z: 0.672000050545
-
score: 0.729315817356
pixel:
x: 498.424713135
y: 211.049682617
point:
x: 0.418776631355
y: 0.0048198052682
z: 0.672000050545
-
score: 0.661788702011
pixel:
x: 511.428894043
y: 212.318389893
point:
x: 4.42572249355e-28
y: 3.08355727075e-41
z: 0.112212896347
-
score: 0.546052455902
pixel:
x: 498.424713135
y: 188.847442627
point:
x: 0.442237079144
y: -0.0349918827415
z: 0.67300003767
-
score: 0.279708445072
pixel:
x: 516.503662109
y: 189.798965454
point:
x: 0.929321289062
y: -0.0649394467473
z: 1.31500005722
-
score: 0.13522939384
pixel:
x: 526.970458984
y: 196.142471313
point:
x: 1.00679171085
y: -0.0437830276787
z: 1.36900007725
-
score: 0.0920959189534
pixel:
x: 531.09375
y: 202.485961914
point:
x: 1.0036085844
y: -0.0195954479277
z: 1.34400010109
-
score: 0.258142232895
pixel:
x: 501.913635254
y: 190.750488281
point:
x: 0.441344857216
y: -0.0309639535844
z: 0.662000060081
-
score: 0.166400611401
pixel:
x: 520.626953125
y: 196.459640503
point:
x: 4.42572249355e-28
y: 3.08355727075e-41
z: 0.0753464624286
-
score: 0.121962592006
pixel:
x: 525.701782227
y: 208.195114136
point:
x: 0.911998450756
y: 0.00134781538509
z: 1.2460000515
-
score: 0.0841705277562
pixel:
x: 525.701782227
y: 215.490127563
point:
x: 0.852711260319
y: 0.0245742723346
z: 1.16500008106
-
score: 0.163181766868
pixel:
x: 504.451049805
y: 195.825286865
point:
x: 0.445279210806
y: -0.0217150896788
z: 0.661000013351
-
score: 0.118053913116
pixel:
x: 519.04107666
y: 201.534439087
point:
x: 0.960598409176
y: -0.0231380313635
z: 1.34600007534
-
score: 0.0943371430039
pixel:
x: 519.675415039
y: 211.049682617
point:
x: 0.844182789326
y: 0.0105167767033
z: 1.18000006676
-
score: 0.074281193316
pixel:
x: 521.895690918
y: 218.027526855
point:
x: 0.822509944439
y: 0.03198216483
z: 1.1400001049
-
score: 0.124192580581
pixel:
x: 508.574310303
y: 198.362686157
point:
x: 0.458920478821
y: -0.0173470657319
z: 0.670000016689
-
score: 0.0728101730347
pixel:
x: 517.138061523
y: 205.657714844
point:
x: 0.903980255127
y: -0.00750162824988
z: 1.27600002289
-
score: 0.0719007775187
pixel:
x: 519.04107666
y: 209.146636963
point:
x: 0.86924880743
y: 0.00449683563784
z: 1.21800005436
-
score: 0.0540562719107
pixel:
x: 517.455200195
y: 215.807312012
point:
x: 0.807204425335
y: 0.0249949321151
z: 1.13800001144
rightHandParts:
-
score: 0.0111483940855
pixel:
x: 324.927246094
y: 186.78125
point:
x: 0.13188830018
y: -0.0419779159129
z: 0.728000044823
-
score: 0.0216135010123
pixel:
x: 319.062286377
y: 195.99760437
point:
x: 0.0592623464763
y: -0.0116241201758
z: 0.35900002718
-
score: 0.017850574106
pixel:
x: 315.29196167
y: 190.551574707
point:
x: 0.11264577508
y: -0.0344482399523
z: 0.728000044823
-
score: 0.017687804997
pixel:
x: 323.251525879
y: 196.835449219
point:
x: 0.11264577508
y: -0.0344482399523
z: 0.728000044823

@ravijo
Copy link
Owner

ravijo commented Jan 17, 2020

@OsArkoses: The output given by you in the above two messages is not matching with each other. In the first message, I can see that parameters leftHandParts and rightHandParts are empty list. In the second message, I can see that the parameter leftHandParts contains 21 points, which is expected (correct).

  1. First of all, I suspect that your ROS installation is broken (or you have not installed a complete ROS package. I mostly install the full version, i.e., ros-${DISTRO}-desktop-full. Therefore can you please make sure you have all the packages installed?

    (To confirm the above point, you can simply try using my another ROS package which uses the almost same method for visualization. You don't need to install dependency kinect_anywhere this time. Just clone/download the repository and make python scripts executables. Finally run roslaunch rviz_skeleton_visualization visualization.launch. If you see a static human visualization inside RVIZ then you don't need to install extra ROS packages.)

  2. Secondly, in the first message, you reported that the error is at line 169, which is a bit surprising. In the latest version, the line leftHandPart = person.leftHandParts[point_id] is at number 165. Can you please pull the latest source code from GitHub and try again?

  3. The error about id_text_offset reported by you via email was a bug which is fixed in the latest code. Please use the latest code from GitHub and try again.

  4. From the screenshot you shared with me, it seems that the parameter skeleton_line_width needs to be set to a much lower value. Please open run_kinect.launch file and change the value 0.01 to a much lower value such as 0.005 and try again.

  5. Finally, please unset the variable skeleton_hands if you don't want to see fingers inside the RVIZ by executing the following command-

roslaunch ros_openpose run.launch skeleton_hands:=false

Let me know if the problem persists.

@OHernandezr
Copy link
Author

Hello Ravi

  1. Yes, I have the desktop-full installation
  2. I modificated the file, I wanted to print the content
  3. Thanks, I did the changes.
  4. This was my problem, I made the changes and now it's going well.
  5. Thanks.

I have a question, Is it normal for the skeleton to be distorted at the time of viewing in Rviz? incorrect lines appear. In the openPose by default if the points are displayed correctly.

@ravijo
Copy link
Owner

ravijo commented Jan 20, 2020

Hi @OsArkoses

Glad that you made it work!

Is it normal for the skeleton to be distorted at the time of viewing in Rviz? incorrect lines appear. In the openPose by default if the points are displayed correctly.

  1. 3D point calculation highly depends on the depth values received by the camera. I believe that the depth information is fluctuating, which is causing the distortion. You can see that the point cloud inside RVIZ is swinging too. If required, you can preprocess 3D points by applying the filtering process to reduce the fluctuation.

  2. You can reduce the lifetime of the skeleton lines. The marker property 'lifetime' defines how long the object should last before being automatically deleted. 0 means forever. Please set it to a lower value (less than 1) here.

  3. If you see that the skeleton is not overlapping with your body inside the point cloud, then you must calibrate (intrinsic calibration) your camera. Please note that I haven't considered camera distortion while computing 3D points from pixels.

  4. Furthermore, the fluctuation may not be easily visible in the image (2D) because of the small pixel values, but in 3D, it gets converted into real values (shown in meters).

Let me know if this helps.

@ravijo
Copy link
Owner

ravijo commented Jan 27, 2020

Hi @OsArkoses,

Can you please confirm if the problem is fixed? I will close this thread after your acknowledgment.

@OHernandezr
Copy link
Author

Hi Ravi

The problem is fixed

Thank you very much for your valuable help

@ravijo ravijo added the 3d visualization This issue is related to 3D skeleton visualization label Apr 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3d visualization This issue is related to 3D skeleton visualization
Projects
None yet
Development

No branches or pull requests

2 participants