Can i record Point of Cloud?


#1

I am using SLAMdunk with ROS

I want to get a record of the point of cloud i created, so that i can use it elsewhere, is it possible ?

Thank you


Use with parrot 1, light conditions for point cloud and concatenation of points clouds from indoor and outdoor
S.L.A.M.dunk ROS API
#2

Hi Babas,

Sure, you can record point cloud on SLAMdunk.
There is a “record” service in the node, that will create “.pcd” files on each KeyFrame (ie: each time SLAMdunk has moved significantly compared to last record).

A call to the service “/pcl_xyzrgb_kf_record_start” will make the slamdunk ros node start recording .pcd files.
To call the service, rqt can be used (more specifically the service caller plugin), or simply with a command line:

rosservice call /pcl_xyzrgb_kf_record_start “path: ‘/tmp/record’”

Once this is done, the slamdunk can be moved around, and on each keyframe, a .pcd file will be saved in the given folder. (’/tmp/record’)
(in 1.0.0 release, the folder has to be a non-existent folder, otherwise calling the service will fail)

To stop recording, simply call the “/pcl_xyzrgb_kf_record_stop” service:

rosservice call /pcl_xyzrgb_kf_record_stop

Now, if you’re working on a remote computer, you can retrieve the .pcd files.

To play with the .pcd files, you will need to install the PCL tools:

sudo apt-get install pcl-tools

Some tips to use this package:

To view all the pcd files at once, one can run:

pcl_viewer *.pcd

press ‘5’ key to display points as rgb

press ‘h’ key for help

To create a concatenation of all the .pcd files:

for NUM in seq -w 0 0999 ; do ; pcl_transform_from_viewpoint ${NUM}.pcd transformed_${NUM}.pcd ; done
pcl_concatenate_points_pcd transformed_*.pcd

And then visualize the concatenation:

pcl_viewer output.pcd

To convert the concatenated point clouds to a .ply file:

pcl_pcd2ply output.pcd output.ply

Then you can use any pointcloud visualizer such as Meshlab!

For a full understanding you can check source code starting from here and looking for “record” function:

Hope this helps!


#3

Hello,
I try to use the service “/pcl_xyzrgb_kf_record_start” but i have an error :
ERROR: Unable to load type [slamdunk_msgs/Save].
Have you typed ‘make’ in [slamdunk_msgs]?
Do you have an idea to resolve this error ?
Thank you


#4

Hello,

It might be because you are using the slamdunk with another computer and haven’t built the slamdunk packages on it. If that’s the case, since the slamdunk messages are not standard messages, the ROS part running on your computer doesn’t know about them.


#5

Hello,
I solved my problem, but i have another :confused:
/pcl_xyzrgb_kf_record_start needs 2 args : path and allowOverride.
Regardless of the arguments, the service does not create any file and I don’t understand why…
Thank you for your help
Genjou


#6

Two things:
The path is absolute and if the given folder doesn’t exist it doesn’t create it without any error message.

The nodelet corresponding to the service is run with the main node, aka with root, so you can write pretty much anywhere… :smirk: