underworlds-robot / underworlds

A framework for geometric & temporal representation for robots
Other
6 stars 1 forks source link

Pure ROS implementation ? #21

Open YoanSallami opened 6 years ago

YoanSallami commented 6 years ago

It could be useful to provide a pure ROS implementation of the Underworlds protocol as a Nodelet

severin-lemaignan commented 6 years ago

In principle, yes. It would require creating many new ROS messages (possibly directly from the protobuf definition?) and the performances might (or might not...) be impacted.

YoanSallami commented 6 years ago

I will have a look into that... with a pure ROS implementation as a Nodelet we could benefit from zero copy pointer passing.

YoanSallami commented 6 years ago

So... after some investigation, it is possible to implement the protocol with ROS(with minor modifications) by using the subscriber/publisher mechanism to benefit from zero copy. I started to implement it by modifying the code you made in C++. I will continue until having something usable in the next weeks... :)

YoanSallami commented 6 years ago

I plan to use ROS packages to handle uncertainty in the protocol... And provide some clients that handle point clouds in order to combine multiple approach (model based and zero model based). I think I will have some results in the next weeks, so.. we could see this in details soon :)

severin-lemaignan commented 6 years ago

Great! Keep us posted!

On 07/07/18 14:39, Yoan Sallami wrote:

I plan to use ROS packages to handle uncertainty in the protocol... And provide some clients that handle point clouds in order to combine multiple approach (model based and zero model based). I think I will have some results in the next weeks, so.. we could see this in details soon :)

-- Dr. Séverin Lemaignan Senior Researcher in Cognitive Robotics and Human-Robot Interaction

Bristol Robotics Laboratory University of the West of England, Bristol T Block, Frenchay Campus Coldharbour Lane Bristol BS16 1QY

Email: severin.lemaignan@brl.ac.uk Web: https://academia.skadge.org Skype: severin-lemaignan Twitter: @skadge

YoanSallami commented 6 years ago

uwds_first_test

Two first cpp clients an 'env_provider' and a 'scene_viewer' :) the distribution of the scene/timeline/meshes is done, I am actually working on the python clients then I will create a topology viewer and after that I want to play with keras in order to use neural networks in Underworlds :) I'll keep you posted

YoanSallami commented 6 years ago

(In parallel I will work on the bullet simulation engine, and the octomap integration which is not that easy as I thought)

severin-lemaignan commented 6 years ago

Woohoo! Impressive! How did you get the mesh distribution to work?

severin-lemaignan commented 6 years ago

Btw the way, it would be great if you could open a PR here, that you (we) keep updating along the way.

YoanSallami commented 6 years ago

For the mesh distribution I use ROS services, but I'm thinking about using topics and zero-copy pointer passing to allow the distribution of dynamic meshes (which could be generated from the point cloud of a kinect for example) to compute visibility whiteout having a model in the old fashion way (opengl rendering)

YoanSallami commented 6 years ago

For the PR it will be difficult because it's not a fork, but a completely new ROS meta-package