srl-freiburg / pedsim_ros

Pedestrian simulator powered by the social force model
https://github.com/srl-freiburg/pedsim_ros
BSD 2-Clause "Simplified" License
460 stars 170 forks source link

Not Occluded Agents #24

Closed framarbon-zz closed 4 years ago

framarbon-zz commented 6 years ago

Hi there, First of all, thanks for sharing this great tool for crowd simulation.

I am trying to simulate a robot navigating through a human crowd using pedsim, for that I ma using the simulated simulated pedsim_point_clouds. However it seems that both the pedsim simulator and the point cloud sensor does not take into account whether an agent might be occluded.

Is there any workaround or anything that I am missing to make it work?

Best regards, Framarbon

makokal commented 6 years ago

Hi @framarbon You are right, the point clouds do not take that into account. You can add an additional filter say based on distance and orientation to simulate that. We had a hook to gazebo to do this more naturally with ray casting but I haven't looked into that for a long time.

tlind commented 6 years ago

You could use the following node from the SPENCER people tracking framework as a starting point for agent-to-agent occlusion, though it does not take into account occlusion by the static environment: simulate_occluded_detections_via_raytracing

framarbon-zz commented 6 years ago

Thanks for the answers! I will have a look at the SPENCER node and also how could it be simulated in Gazebo.

framarbon-zz commented 6 years ago

@tlind Because obstacles are represented as aggregation of cells, it could be a workaround to publish as "input_detections" both tracked persons and obstacle cells that are in the local zone of the robot in order to take into account occlusions of static obstacles. What do you think?

RGring commented 6 years ago

@framarbon Did you create a workaround for sensors, that consider occlusions? I need a more realistic sensor output with occlusions. Maybe you can share your progress with me?

makokal commented 6 years ago

@RGring currently https://github.com/srl-freiburg/pedsim_ros/blob/master/pedsim_sensors/src/pedsim_sensors/people_point_cloud.cpp#L100 generates point clouds for the simulated people, but does not do any ray casting to determine occlusions, but this can easily be added.

RGring commented 6 years ago

Okay. I will implement it.