IntelligentRoboticsLabs / gb_visual_detection_3d

87 stars 32 forks source link

last_detection_ts_ initialization cause exception when using sim_time #36

Open AravindaDP opened 3 years ago

AravindaDP commented 3 years ago

https://github.com/IntelligentRoboticsLabs/gb_visual_detection_3d/blob/melodic/darknet_ros_3d/src/darknet_ros_3d/Darknet3D.cpp#L64 causes out of time range exceptions when using sim_time (Supposedly due to underflow)

using ros::Time(0) to initialize this parameter should be better approach. I'm happy to submit a PR if this is the correct way to resolve this.

fmrico commented 3 years ago

Hi @AravindaDP

Yes, you are right. This is not the right way to start this attribute. I will be happy to accept your PR :)

Maybe you should add something more for avoiding pass line 168 if nothing has been received. The idea was to use the difference of time, but the situation before the first image is not so simple to resolve.

Thanks!!

Engnation commented 3 years ago

Hello,

I am getting the errors: "[darknet_3d-2] process has died", and also: "WARNING: no messages received and simulated time is active. Is /clock being published?" when doing a rostopic echo to /darknet_ros_3d/bounding_boxes while trying to run darknet_ros_3d within a Gazebo simulation.

Is this related to the same issue that is being discussed above? If so, @AravindaDP have you or @fmrico been able to find a solution?

If this is the same issue, I tried setting ros::Time(0), and also tried other threshold values on LN 168 (other then 2 seconds), but it didn't seem to work.

Any suggestions?

Thanks!

Engnation commented 3 years ago

Update: Now that I understand this problem better, I realize that I had misunderstood the original recommendation and had accidentally left the - ros::Duration(60.0) in place. By initializing last_detection_ts_ = ros::Time(0); the problem is now solved. Thank you @AravindaDP for this suggestion, and thank you @fmrico & @fgonzalezr1998 for providing this great ROS package!