lucasw / rviz_camera_stream

Custom rviz camera plugin that published rendered camera video stream
BSD 3-Clause "New" or "Revised" License
59 stars 45 forks source link

Adding a laser simulator, is it actually possible #17

Closed soulslicer closed 3 years ago

soulslicer commented 7 years ago

Looks like rviz is using Ogre3D. I want to actually write my own laser simulator.

Does your interface, hence Ogre3D provide a way to access the polygons in the scene so that i may do the raycasting manually?

lucasw commented 7 years ago

Rviz has that interface and I'm using it to get a camera image.

I think what you would want to do is create a brand new rviz plugin, look at http://wiki.ros.org/rviz/Tutorials and look at the source code for the standard plugins in https://github.com/ros-visualization/rviz for examples.

Having raycasting within rviz would be useful, but you may get some odd results- if the tf visualization is turned on for example your rays would return results from intersections with those elements, or any other polygons that are purely for visualization. (Though it may be possible to detect what kind of object has been intersected with and exclude it, or move on to the next closest intersection)

Raycasting within a physics simulation makes more sense, that is already implemented in gazebo for laser sensors, and I have a minimal physics simulator (using bullet physics) https://github.com/lucasw/simple_sim_ros where it would be easy to add raycasting using the built-in bullet raycasting functions, and the intersections would only be with objects that are part of the simulation.

soulslicer commented 7 years ago

Before i close this can I check two things. Seems like Ogre does have some raycasting options

http://ogre3d.org/tikiwiki/tiki-index.php?page=Raycasting+to+the+polygon+level

Also. I notice that any cout or ROS_INFO statements I print in your node don't seem to appear. Is there some flag somewhere that is stopping it from appearing?