simple point cloud viewers

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

simple point cloud viewers

Radu B. Rusu
Administrator
Folks,

We spent some time to refactorize some simple PointCloud2 viewers. The reference tutorial is in the trunk of
pcl_perception_addons/pcl_tutorials/pointcloud_online_viewer. It reads in data from a ROS topic and it displays it on
screen. You can use the 1-9 keys to change between different outputs, kudos to the PCLVisualizer style, you can focus
and fly to a point (f) and then rotate around it, use +/- to change the point size, etc. It should basically do almost
everything the fully fledged pcd_viewer tool does (http://www.ros.org/wiki/pcl_visualization)

You can try to launch it with a Kinect sensor as follows:

$ roslaunch openni_camera openni_kinect.launch
$ rosrun pcl_tutorials pointcloud_online_viewer input:=/camera/depth/points2


I added a simplified version of the tutorial in the trunk of the NI stack (in the openni_pcl) package -- which btw, has
the nodelet support fixed (it was previously broken in the Kinect stack - thanks to Dejan for noticing that). Just git
pull from our github repo, make/rosmake, and run:

$ roslaunch openni_camera openni_kinect.launch
$ roslaunch openni_pcl viewer.launch

If you want to play with the nodelets, do:

$ roslaunch openni_camera openni_kinect_nodelet.launch
$ roslaunch openni_pcl voxelgrid.launch
$ rosrun openni_pcl openni_viewer ~input:=/camera/depth/points2_grid

I'll put some screenshots/tutorials later on how to run things. In the meantime, _any_ (constructive) feedback would be
great! :)

The advantage of using the pcl_visualization library is that it's based on VTK (http://vtk.org - a great visualization
library! from the same people that brought us CMake), it's a library :)... which means you can add
PointCloud2/pcl::PointCloud visualizers to your code in the same way you add OpenCV HighGUI image displays, and it needs
no other dependencies - which keeps it rather small and easy to run.

Cheers,
Radu.
--
http://pointclouds.org
_______________________________________________
[hidden email] / http://pointclouds.org
https://code.ros.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: simple point cloud viewers

stefan
On 12/10/2010 02:19 AM, Radu Bogdan Rusu wrote:
> Folks,
Hi Radu,

> We spent some time to refactorize some simple PointCloud2 viewers. The reference tutorial is in the trunk of
> pcl_perception_addons/pcl_tutorials/pointcloud_online_viewer. It reads in data from a ROS topic and it displays it on
> screen. You can use the 1-9 keys to change between different outputs, kudos to the PCLVisualizer style, you can focus
> and fly to a point (f) and then rotate around it, use +/- to change the point size, etc. It should basically do almost
> everything the fully fledged pcd_viewer tool does (http://www.ros.org/wiki/pcl_visualization)
>
> You can try to launch it with a Kinect sensor as follows:
>
> $ roslaunch openni_camera openni_kinect.launch
> $ rosrun pcl_tutorials pointcloud_online_viewer input:=/camera/depth/points2
>
>
> I added a simplified version of the tutorial in the trunk of the NI stack (in the openni_pcl) package -- which btw, has
> the nodelet support fixed (it was previously broken in the Kinect stack - thanks to Dejan for noticing that). Just git
> pull from our github repo, make/rosmake, and run:
>
> $ roslaunch openni_camera openni_kinect.launch
> $ roslaunch openni_pcl viewer.launch
this two launch files run successfully but sometimes I get the following error

        openni_node: /opt/ros/cturtle/stacks/geometry_experimental/eigen3/include/Eigen3
        /src/Core/MatrixStorage.h:67: Eigen3::ei_matrix_array<T, Size, MatrixOptions, 16
        >::ei_matrix_array() [with T = float, int Size = 4, int MatrixOptions = 0]: Asse
        rtion `(reinterpret_cast<size_t>(array)&  0xf) == 0&&  "this assertion is explai
        ned here: " "http://eigen.tuxfamily.org/dox/UnalignedArrayAssert.html" " **** RE
        AD THIS WEB PAGE !!! ****"' failed.
        [openni_camera-2] process has died [pid 7929, exit code -6].
        log files: /home/stefan/.ros/log/9223525c-1cc5-11e0-8597-0024e82efa3f/openni_cam
        era-2*.log

I updated the geometry_experimental package but it didn't change.


> If you want to play with the nodelets, do:
>
> $ roslaunch openni_camera openni_kinect_nodelet.launch
This openni_kinect_nodelet.launch does not exist in my ni package. I try to write it but it doesn't run.

This it the launch file I created, can you tell me whats wrong with it?

        <launch>
        <node pkg="nodelet" type="nodelet" name="openni_manager" args="manager" output="screen" />
 
        <node pkg="nodelet" type="nodelet" name="openni_driver" args="load $(find openni_camera)/
                OpenNIDriverNodelet openni_manager" output="screen">
        <!--remap from="camera" to="openni" /-->
        <param name="registration_type" value="2" />
        <param name="image_input_format" value="6" />
        <rosparam command="load" file="$(find openni_camera)/info/openni_params.yaml" />
        </node>
        <include file="$(find openni_camera)/launch/kinect_frames.launch"/>
        </launch>

This is the error message that received:

        [ INFO] [1294670480.062280765]: Loading nodelet /openni_driver of type /home/ste
        fan/ni/ni/openni_camera/OpenNIDriverNodelet to manager openni_manager with the f
        ollowing remappings:
        [ INFO] [1294670480.078283143]: waitForService: Service [/openni_manager/load_no
        delet] has not been advertised, waiting...
        [ INFO] [1294670480.101062293]: waitForService: Service [/openni_manager/load_no
        delet] is now available.
        [ERROR] [1294670480.104102414]: Failed to load nodelet [/openni_driver] of type
        [/home/stefan/ni/ni/openni_camera/OpenNIDriverNodelet]: According to the loaded
        plugin descriptions the class /home/stefan/ni/ni/openni_camera/OpenNIDriverNodel
        et with base class type nodelet::Nodelet does not exist. Declared types are  nod
        elet_tutorial_math/Plus openni_camera/OpenNIDriver openni_pcl/OpenNIViewer pcl/B
        AGReader pcl/BoundaryEstimation pcl/ConvexHull2D pcl/EuclideanClusterExtraction
        pcl/ExtractIndices pcl/ExtractPolygonalPrismData pcl/FPFHEstimation pcl/FPFHEsti
        mationOMP pcl/MomentInvariantsEstimation pcl/MovingLeastSquares pcl/NodeletDEMUX
         pcl/NodeletMUX pcl/NormalEstimation pcl/NormalEstimationOMP pcl/NormalEstimatio
        nTBB pcl/PCDReader pcl/PCDWriter pcl/PFHEstimation pcl/PassThrough pcl/PointClou
        dConcatenateDataSynchronizer pcl/PointCloudConcatenateFieldsSynchronizer pcl/Pri
        ncipalCurvaturesEstimation pcl/ProjectInliers pcl/SACSegmentation pcl/SACSegment
        ationFromNormals pcl/SegmentDifferences pcl/StatisticalOutlierRemoval pcl/TestLi
        stener pcl/TestPingPong pcl/TestTalker pcl/VFHEstimation pcl/VoxelGrid pointclou
        d_to_laserscan/CloudThrottle pointcloud_to_laserscan/CloudToScan test_nodelet/Pl
        us
        [ERROR] [1294670480.104349989]: Failed to call service!


> $ roslaunch openni_pcl voxelgrid.launch
> $ rosrun openni_pcl openni_viewer ~input:=/camera/depth/points2_grid
>
> I'll put some screenshots/tutorials later on how to run things. In the meantime, _any_ (constructive) feedback would be
> great! :)
>
> The advantage of using the pcl_visualization library is that it's based on VTK (http://vtk.org - a great visualization
> library! from the same people that brought us CMake), it's a library :)... which means you can add
> PointCloud2/pcl::PointCloud visualizers to your code in the same way you add OpenCV HighGUI image displays, and it needs
> no other dependencies - which keeps it rather small and easy to run.
>
> Cheers,
> Radu.
> --
> http://pointclouds.org
> _______________________________________________
> [hidden email] / http://pointclouds.org
> https://code.ros.org/mailman/listinfo/pcl-users
>
Thanks

Stefan

_______________________________________________
[hidden email] / http://pointclouds.org
https://code.ros.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: simple point cloud viewers

Radu B. Rusu
Administrator
Argh - 32bit alignment issues drive me nuts :)

Stefan, thanks for the bug report. I'll try to replicate it today and will commit a fix later.

The reason why we encounter this is:
  * eigen has issues with 32bit architectures, so we need a special macro + keep the code API in a certain way (see
their web page for more details)
  * we all have 64bit machines...
  * we don't have unit tests yet for _everything_ (though we try our best - any help would be appreciated!), so we can't
catch this error on our build farm automatically. Also if the code is too experimental, it makes sense for us to wait
until we stabilize it, and create a unit test afterwards.

Cheers,
Radu.
--
http://pointclouds.org

On 01/10/2011 06:48 AM, Stefan Schrandt wrote:

> On 12/10/2010 02:19 AM, Radu Bogdan Rusu wrote:
>> Folks,
> Hi Radu,
>
>> We spent some time to refactorize some simple PointCloud2 viewers. The reference tutorial is in the trunk of
>> pcl_perception_addons/pcl_tutorials/pointcloud_online_viewer. It reads in data from a ROS topic and it displays it on
>> screen. You can use the 1-9 keys to change between different outputs, kudos to the PCLVisualizer style, you can focus
>> and fly to a point (f) and then rotate around it, use +/- to change the point size, etc. It should basically do almost
>> everything the fully fledged pcd_viewer tool does (http://www.ros.org/wiki/pcl_visualization)
>>
>> You can try to launch it with a Kinect sensor as follows:
>>
>> $ roslaunch openni_camera openni_kinect.launch
>> $ rosrun pcl_tutorials pointcloud_online_viewer input:=/camera/depth/points2
>>
>>
>> I added a simplified version of the tutorial in the trunk of the NI stack (in the openni_pcl) package -- which btw, has
>> the nodelet support fixed (it was previously broken in the Kinect stack - thanks to Dejan for noticing that). Just git
>> pull from our github repo, make/rosmake, and run:
>>
>> $ roslaunch openni_camera openni_kinect.launch
>> $ roslaunch openni_pcl viewer.launch
> this two launch files run successfully but sometimes I get the following error
>
> openni_node: /opt/ros/cturtle/stacks/geometry_experimental/eigen3/include/Eigen3
> /src/Core/MatrixStorage.h:67: Eigen3::ei_matrix_array<T, Size, MatrixOptions, 16
>  >::ei_matrix_array() [with T = float, int Size = 4, int MatrixOptions = 0]: Asse
> rtion `(reinterpret_cast<size_t>(array)& 0xf) == 0&& "this assertion is explai
> ned here: " "http://eigen.tuxfamily.org/dox/UnalignedArrayAssert.html" " **** RE
> AD THIS WEB PAGE !!! ****"' failed.
> [openni_camera-2] process has died [pid 7929, exit code -6].
> log files: /home/stefan/.ros/log/9223525c-1cc5-11e0-8597-0024e82efa3f/openni_cam
> era-2*.log
>
> I updated the geometry_experimental package but it didn't change.
>
>
>> If you want to play with the nodelets, do:
>>
>> $ roslaunch openni_camera openni_kinect_nodelet.launch
> This openni_kinect_nodelet.launch does not exist in my ni package. I try to write it but it doesn't run.
>
> This it the launch file I created, can you tell me whats wrong with it?
>
> <launch>
> <node pkg="nodelet" type="nodelet" name="openni_manager" args="manager" output="screen" />
>
> <node pkg="nodelet" type="nodelet" name="openni_driver" args="load $(find openni_camera)/
> OpenNIDriverNodelet openni_manager" output="screen">
> <!--remap from="camera" to="openni" /-->
> <param name="registration_type" value="2" />
> <param name="image_input_format" value="6" />
> <rosparam command="load" file="$(find openni_camera)/info/openni_params.yaml" />
> </node>
> <include file="$(find openni_camera)/launch/kinect_frames.launch"/>
> </launch>
>
> This is the error message that received:
>
> [ INFO] [1294670480.062280765]: Loading nodelet /openni_driver of type /home/ste
> fan/ni/ni/openni_camera/OpenNIDriverNodelet to manager openni_manager with the f
> ollowing remappings:
> [ INFO] [1294670480.078283143]: waitForService: Service [/openni_manager/load_no
> delet] has not been advertised, waiting...
> [ INFO] [1294670480.101062293]: waitForService: Service [/openni_manager/load_no
> delet] is now available.
> [ERROR] [1294670480.104102414]: Failed to load nodelet [/openni_driver] of type
> [/home/stefan/ni/ni/openni_camera/OpenNIDriverNodelet]: According to the loaded
> plugin descriptions the class /home/stefan/ni/ni/openni_camera/OpenNIDriverNodel
> et with base class type nodelet::Nodelet does not exist. Declared types are nod
> elet_tutorial_math/Plus openni_camera/OpenNIDriver openni_pcl/OpenNIViewer pcl/B
> AGReader pcl/BoundaryEstimation pcl/ConvexHull2D pcl/EuclideanClusterExtraction
> pcl/ExtractIndices pcl/ExtractPolygonalPrismData pcl/FPFHEstimation pcl/FPFHEsti
> mationOMP pcl/MomentInvariantsEstimation pcl/MovingLeastSquares pcl/NodeletDEMUX
> pcl/NodeletMUX pcl/NormalEstimation pcl/NormalEstimationOMP pcl/NormalEstimatio
> nTBB pcl/PCDReader pcl/PCDWriter pcl/PFHEstimation pcl/PassThrough pcl/PointClou
> dConcatenateDataSynchronizer pcl/PointCloudConcatenateFieldsSynchronizer pcl/Pri
> ncipalCurvaturesEstimation pcl/ProjectInliers pcl/SACSegmentation pcl/SACSegment
> ationFromNormals pcl/SegmentDifferences pcl/StatisticalOutlierRemoval pcl/TestLi
> stener pcl/TestPingPong pcl/TestTalker pcl/VFHEstimation pcl/VoxelGrid pointclou
> d_to_laserscan/CloudThrottle pointcloud_to_laserscan/CloudToScan test_nodelet/Pl
> us
> [ERROR] [1294670480.104349989]: Failed to call service!
>
>
>> $ roslaunch openni_pcl voxelgrid.launch
>> $ rosrun openni_pcl openni_viewer ~input:=/camera/depth/points2_grid
>>
>> I'll put some screenshots/tutorials later on how to run things. In the meantime, _any_ (constructive) feedback would be
>> great! :)
>>
>> The advantage of using the pcl_visualization library is that it's based on VTK (http://vtk.org - a great visualization
>> library! from the same people that brought us CMake), it's a library :)... which means you can add
>> PointCloud2/pcl::PointCloud visualizers to your code in the same way you add OpenCV HighGUI image displays, and it needs
>> no other dependencies - which keeps it rather small and easy to run.
>>
>> Cheers,
>> Radu.
>> --
>> http://pointclouds.org
>> _______________________________________________
>> [hidden email] / http://pointclouds.org
>> https://code.ros.org/mailman/listinfo/pcl-users
>>
> Thanks
>
> Stefan
>
_______________________________________________
[hidden email] / http://pointclouds.org
https://code.ros.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: simple point cloud viewers

Radu B. Rusu
Administrator
In reply to this post by stefan
Stefan,

Can you git pull in openni_camera, to see if it works on your 32bit architecture now?

Cheers,
Radu.
--
http://pointclouds.org

On 01/10/2011 06:48 AM, Stefan Schrandt wrote:

> On 12/10/2010 02:19 AM, Radu Bogdan Rusu wrote:
>> Folks,
> Hi Radu,
>
>> We spent some time to refactorize some simple PointCloud2 viewers. The reference tutorial is in the trunk of
>> pcl_perception_addons/pcl_tutorials/pointcloud_online_viewer. It reads in data from a ROS topic and it displays it on
>> screen. You can use the 1-9 keys to change between different outputs, kudos to the PCLVisualizer style, you can focus
>> and fly to a point (f) and then rotate around it, use +/- to change the point size, etc. It should basically do almost
>> everything the fully fledged pcd_viewer tool does (http://www.ros.org/wiki/pcl_visualization)
>>
>> You can try to launch it with a Kinect sensor as follows:
>>
>> $ roslaunch openni_camera openni_kinect.launch
>> $ rosrun pcl_tutorials pointcloud_online_viewer input:=/camera/depth/points2
>>
>>
>> I added a simplified version of the tutorial in the trunk of the NI stack (in the openni_pcl) package -- which btw, has
>> the nodelet support fixed (it was previously broken in the Kinect stack - thanks to Dejan for noticing that). Just git
>> pull from our github repo, make/rosmake, and run:
>>
>> $ roslaunch openni_camera openni_kinect.launch
>> $ roslaunch openni_pcl viewer.launch
> this two launch files run successfully but sometimes I get the following error
>
> openni_node: /opt/ros/cturtle/stacks/geometry_experimental/eigen3/include/Eigen3
> /src/Core/MatrixStorage.h:67: Eigen3::ei_matrix_array<T, Size, MatrixOptions, 16
>  >::ei_matrix_array() [with T = float, int Size = 4, int MatrixOptions = 0]: Asse
> rtion `(reinterpret_cast<size_t>(array)& 0xf) == 0&& "this assertion is explai
> ned here: " "http://eigen.tuxfamily.org/dox/UnalignedArrayAssert.html" " **** RE
> AD THIS WEB PAGE !!! ****"' failed.
> [openni_camera-2] process has died [pid 7929, exit code -6].
> log files: /home/stefan/.ros/log/9223525c-1cc5-11e0-8597-0024e82efa3f/openni_cam
> era-2*.log
>
> I updated the geometry_experimental package but it didn't change.
>
>
>> If you want to play with the nodelets, do:
>>
>> $ roslaunch openni_camera openni_kinect_nodelet.launch
> This openni_kinect_nodelet.launch does not exist in my ni package. I try to write it but it doesn't run.
>
> This it the launch file I created, can you tell me whats wrong with it?
>
> <launch>
> <node pkg="nodelet" type="nodelet" name="openni_manager" args="manager" output="screen" />
>
> <node pkg="nodelet" type="nodelet" name="openni_driver" args="load $(find openni_camera)/
> OpenNIDriverNodelet openni_manager" output="screen">
> <!--remap from="camera" to="openni" /-->
> <param name="registration_type" value="2" />
> <param name="image_input_format" value="6" />
> <rosparam command="load" file="$(find openni_camera)/info/openni_params.yaml" />
> </node>
> <include file="$(find openni_camera)/launch/kinect_frames.launch"/>
> </launch>
>
> This is the error message that received:
>
> [ INFO] [1294670480.062280765]: Loading nodelet /openni_driver of type /home/ste
> fan/ni/ni/openni_camera/OpenNIDriverNodelet to manager openni_manager with the f
> ollowing remappings:
> [ INFO] [1294670480.078283143]: waitForService: Service [/openni_manager/load_no
> delet] has not been advertised, waiting...
> [ INFO] [1294670480.101062293]: waitForService: Service [/openni_manager/load_no
> delet] is now available.
> [ERROR] [1294670480.104102414]: Failed to load nodelet [/openni_driver] of type
> [/home/stefan/ni/ni/openni_camera/OpenNIDriverNodelet]: According to the loaded
> plugin descriptions the class /home/stefan/ni/ni/openni_camera/OpenNIDriverNodel
> et with base class type nodelet::Nodelet does not exist. Declared types are nod
> elet_tutorial_math/Plus openni_camera/OpenNIDriver openni_pcl/OpenNIViewer pcl/B
> AGReader pcl/BoundaryEstimation pcl/ConvexHull2D pcl/EuclideanClusterExtraction
> pcl/ExtractIndices pcl/ExtractPolygonalPrismData pcl/FPFHEstimation pcl/FPFHEsti
> mationOMP pcl/MomentInvariantsEstimation pcl/MovingLeastSquares pcl/NodeletDEMUX
> pcl/NodeletMUX pcl/NormalEstimation pcl/NormalEstimationOMP pcl/NormalEstimatio
> nTBB pcl/PCDReader pcl/PCDWriter pcl/PFHEstimation pcl/PassThrough pcl/PointClou
> dConcatenateDataSynchronizer pcl/PointCloudConcatenateFieldsSynchronizer pcl/Pri
> ncipalCurvaturesEstimation pcl/ProjectInliers pcl/SACSegmentation pcl/SACSegment
> ationFromNormals pcl/SegmentDifferences pcl/StatisticalOutlierRemoval pcl/TestLi
> stener pcl/TestPingPong pcl/TestTalker pcl/VFHEstimation pcl/VoxelGrid pointclou
> d_to_laserscan/CloudThrottle pointcloud_to_laserscan/CloudToScan test_nodelet/Pl
> us
> [ERROR] [1294670480.104349989]: Failed to call service!
>
>
>> $ roslaunch openni_pcl voxelgrid.launch
>> $ rosrun openni_pcl openni_viewer ~input:=/camera/depth/points2_grid
>>
>> I'll put some screenshots/tutorials later on how to run things. In the meantime, _any_ (constructive) feedback would be
>> great! :)
>>
>> The advantage of using the pcl_visualization library is that it's based on VTK (http://vtk.org - a great visualization
>> library! from the same people that brought us CMake), it's a library :)... which means you can add
>> PointCloud2/pcl::PointCloud visualizers to your code in the same way you add OpenCV HighGUI image displays, and it needs
>> no other dependencies - which keeps it rather small and easy to run.
>>
>> Cheers,
>> Radu.
>> --
>> http://pointclouds.org
>> _______________________________________________
>> [hidden email] / http://pointclouds.org
>> https://code.ros.org/mailman/listinfo/pcl-users
>>
> Thanks
>
> Stefan
>
_______________________________________________
[hidden email] / http://pointclouds.org
https://code.ros.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: simple point cloud viewers

stefan
Hi Radu,

sorry for the late response! The openni_camera works fine now.

But I cannot display the colored point cloud in the openni_viewer.  The
point clouds are displayed but with a wrong color. Displaying the point
cloud it in Rviz is fine.

Thanks
Stefan


On 01/16/2011 11:19 PM, Radu Bogdan Rusu wrote:

> Stefan,
>
> Can you git pull in openni_camera, to see if it works on your 32bit
> architecture now?
>
> Cheers,
> Radu.
> --
> http://pointclouds.org
>
> On 01/10/2011 06:48 AM, Stefan Schrandt wrote:
>> On 12/10/2010 02:19 AM, Radu Bogdan Rusu wrote:
>>> Folks,
>> Hi Radu,
>>
>>> We spent some time to refactorize some simple PointCloud2 viewers.
>>> The reference tutorial is in the trunk of
>>> pcl_perception_addons/pcl_tutorials/pointcloud_online_viewer. It
>>> reads in data from a ROS topic and it displays it on
>>> screen. You can use the 1-9 keys to change between different
>>> outputs, kudos to the PCLVisualizer style, you can focus
>>> and fly to a point (f) and then rotate around it, use +/- to change
>>> the point size, etc. It should basically do almost
>>> everything the fully fledged pcd_viewer tool does
>>> (http://www.ros.org/wiki/pcl_visualization)
>>>
>>> You can try to launch it with a Kinect sensor as follows:
>>>
>>> $ roslaunch openni_camera openni_kinect.launch
>>> $ rosrun pcl_tutorials pointcloud_online_viewer
>>> input:=/camera/depth/points2
>>>
>>>
>>> I added a simplified version of the tutorial in the trunk of the NI
>>> stack (in the openni_pcl) package -- which btw, has
>>> the nodelet support fixed (it was previously broken in the Kinect
>>> stack - thanks to Dejan for noticing that). Just git
>>> pull from our github repo, make/rosmake, and run:
>>>
>>> $ roslaunch openni_camera openni_kinect.launch
>>> $ roslaunch openni_pcl viewer.launch
>> this two launch files run successfully but sometimes I get the
>> following error
>>
>> openni_node:
>> /opt/ros/cturtle/stacks/geometry_experimental/eigen3/include/Eigen3
>> /src/Core/MatrixStorage.h:67: Eigen3::ei_matrix_array<T, Size,
>> MatrixOptions, 16
>> >::ei_matrix_array() [with T = float, int Size = 4, int MatrixOptions
>> = 0]: Asse
>> rtion `(reinterpret_cast<size_t>(array)& 0xf) == 0&& "this assertion
>> is explai
>> ned here: "
>> "http://eigen.tuxfamily.org/dox/UnalignedArrayAssert.html" " **** RE
>> AD THIS WEB PAGE !!! ****"' failed.
>> [openni_camera-2] process has died [pid 7929, exit code -6].
>> log files:
>> /home/stefan/.ros/log/9223525c-1cc5-11e0-8597-0024e82efa3f/openni_cam
>> era-2*.log
>>
>> I updated the geometry_experimental package but it didn't change.
>>
>>
>>> If you want to play with the nodelets, do:
>>>
>>> $ roslaunch openni_camera openni_kinect_nodelet.launch
>> This openni_kinect_nodelet.launch does not exist in my ni package. I
>> try to write it but it doesn't run.
>>
>> This it the launch file I created, can you tell me whats wrong with it?
>>
>> <launch>
>> <node pkg="nodelet" type="nodelet" name="openni_manager"
>> args="manager" output="screen" />
>>
>> <node pkg="nodelet" type="nodelet" name="openni_driver" args="load
>> $(find openni_camera)/
>> OpenNIDriverNodelet openni_manager" output="screen">
>> <!--remap from="camera" to="openni" /-->
>> <param name="registration_type" value="2" />
>> <param name="image_input_format" value="6" />
>> <rosparam command="load" file="$(find
>> openni_camera)/info/openni_params.yaml" />
>> </node>
>> <include file="$(find openni_camera)/launch/kinect_frames.launch"/>
>> </launch>
>>
>> This is the error message that received:
>>
>> [ INFO] [1294670480.062280765]: Loading nodelet /openni_driver of
>> type /home/ste
>> fan/ni/ni/openni_camera/OpenNIDriverNodelet to manager openni_manager
>> with the f
>> ollowing remappings:
>> [ INFO] [1294670480.078283143]: waitForService: Service
>> [/openni_manager/load_no
>> delet] has not been advertised, waiting...
>> [ INFO] [1294670480.101062293]: waitForService: Service
>> [/openni_manager/load_no
>> delet] is now available.
>> [ERROR] [1294670480.104102414]: Failed to load nodelet
>> [/openni_driver] of type
>> [/home/stefan/ni/ni/openni_camera/OpenNIDriverNodelet]: According to
>> the loaded
>> plugin descriptions the class
>> /home/stefan/ni/ni/openni_camera/OpenNIDriverNodel
>> et with base class type nodelet::Nodelet does not exist. Declared
>> types are nod
>> elet_tutorial_math/Plus openni_camera/OpenNIDriver
>> openni_pcl/OpenNIViewer pcl/B
>> AGReader pcl/BoundaryEstimation pcl/ConvexHull2D
>> pcl/EuclideanClusterExtraction
>> pcl/ExtractIndices pcl/ExtractPolygonalPrismData pcl/FPFHEstimation
>> pcl/FPFHEsti
>> mationOMP pcl/MomentInvariantsEstimation pcl/MovingLeastSquares
>> pcl/NodeletDEMUX
>> pcl/NodeletMUX pcl/NormalEstimation pcl/NormalEstimationOMP
>> pcl/NormalEstimatio
>> nTBB pcl/PCDReader pcl/PCDWriter pcl/PFHEstimation pcl/PassThrough
>> pcl/PointClou
>> dConcatenateDataSynchronizer
>> pcl/PointCloudConcatenateFieldsSynchronizer pcl/Pri
>> ncipalCurvaturesEstimation pcl/ProjectInliers pcl/SACSegmentation
>> pcl/SACSegment
>> ationFromNormals pcl/SegmentDifferences pcl/StatisticalOutlierRemoval
>> pcl/TestLi
>> stener pcl/TestPingPong pcl/TestTalker pcl/VFHEstimation
>> pcl/VoxelGrid pointclou
>> d_to_laserscan/CloudThrottle pointcloud_to_laserscan/CloudToScan
>> test_nodelet/Pl
>> us
>> [ERROR] [1294670480.104349989]: Failed to call service!
>>
>>
>>> $ roslaunch openni_pcl voxelgrid.launch
>>> $ rosrun openni_pcl openni_viewer ~input:=/camera/depth/points2_grid
>>>
>>> I'll put some screenshots/tutorials later on how to run things. In
>>> the meantime, _any_ (constructive) feedback would be
>>> great! :)
>>>
>>> The advantage of using the pcl_visualization library is that it's
>>> based on VTK (http://vtk.org - a great visualization
>>> library! from the same people that brought us CMake), it's a library
>>> :)... which means you can add
>>> PointCloud2/pcl::PointCloud visualizers to your code in the same way
>>> you add OpenCV HighGUI image displays, and it needs
>>> no other dependencies - which keeps it rather small and easy to run.
>>>
>>> Cheers,
>>> Radu.
>>> --
>>> http://pointclouds.org
>>> _______________________________________________
>>> [hidden email] / http://pointclouds.org
>>> https://code.ros.org/mailman/listinfo/pcl-users
>>>
>> Thanks
>>
>> Stefan
>>
>

_______________________________________________
[hidden email] / http://pointclouds.org
https://code.ros.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: simple point cloud viewers

Radu B. Rusu
Administrator
Stefan,


On 01/26/2011 07:12 AM, Stefan Schrandt wrote:
> Hi Radu,
>
> sorry for the late response! The openni_camera works fine now.

No problem. Glad it works! :)

> But I cannot display the colored point cloud in the openni_viewer. The point clouds are displayed but with a wrong
> color. Displaying the point cloud it in Rviz is fine.

Make sure you're on the latest versions of perception_pcl, perception_pcl_addons, and ni. :)

Cheers,
Radu.
--
http://pointclouds.org

>
> Thanks
> Stefan
>
>
> On 01/16/2011 11:19 PM, Radu Bogdan Rusu wrote:
>> Stefan,
>>
>> Can you git pull in openni_camera, to see if it works on your 32bit architecture now?
>>
>> Cheers,
>> Radu.
>> --
>> http://pointclouds.org
>>
>> On 01/10/2011 06:48 AM, Stefan Schrandt wrote:
>>> On 12/10/2010 02:19 AM, Radu Bogdan Rusu wrote:
>>>> Folks,
>>> Hi Radu,
>>>
>>>> We spent some time to refactorize some simple PointCloud2 viewers. The reference tutorial is in the trunk of
>>>> pcl_perception_addons/pcl_tutorials/pointcloud_online_viewer. It reads in data from a ROS topic and it displays it on
>>>> screen. You can use the 1-9 keys to change between different outputs, kudos to the PCLVisualizer style, you can focus
>>>> and fly to a point (f) and then rotate around it, use +/- to change the point size, etc. It should basically do almost
>>>> everything the fully fledged pcd_viewer tool does (http://www.ros.org/wiki/pcl_visualization)
>>>>
>>>> You can try to launch it with a Kinect sensor as follows:
>>>>
>>>> $ roslaunch openni_camera openni_kinect.launch
>>>> $ rosrun pcl_tutorials pointcloud_online_viewer input:=/camera/depth/points2
>>>>
>>>>
>>>> I added a simplified version of the tutorial in the trunk of the NI stack (in the openni_pcl) package -- which btw, has
>>>> the nodelet support fixed (it was previously broken in the Kinect stack - thanks to Dejan for noticing that). Just git
>>>> pull from our github repo, make/rosmake, and run:
>>>>
>>>> $ roslaunch openni_camera openni_kinect.launch
>>>> $ roslaunch openni_pcl viewer.launch
>>> this two launch files run successfully but sometimes I get the following error
>>>
>>> openni_node: /opt/ros/cturtle/stacks/geometry_experimental/eigen3/include/Eigen3
>>> /src/Core/MatrixStorage.h:67: Eigen3::ei_matrix_array<T, Size, MatrixOptions, 16
>>> >::ei_matrix_array() [with T = float, int Size = 4, int MatrixOptions = 0]: Asse
>>> rtion `(reinterpret_cast<size_t>(array)& 0xf) == 0&& "this assertion is explai
>>> ned here: " "http://eigen.tuxfamily.org/dox/UnalignedArrayAssert.html" " **** RE
>>> AD THIS WEB PAGE !!! ****"' failed.
>>> [openni_camera-2] process has died [pid 7929, exit code -6].
>>> log files: /home/stefan/.ros/log/9223525c-1cc5-11e0-8597-0024e82efa3f/openni_cam
>>> era-2*.log
>>>
>>> I updated the geometry_experimental package but it didn't change.
>>>
>>>
>>>> If you want to play with the nodelets, do:
>>>>
>>>> $ roslaunch openni_camera openni_kinect_nodelet.launch
>>> This openni_kinect_nodelet.launch does not exist in my ni package. I try to write it but it doesn't run.
>>>
>>> This it the launch file I created, can you tell me whats wrong with it?
>>>
>>> <launch>
>>> <node pkg="nodelet" type="nodelet" name="openni_manager" args="manager" output="screen" />
>>>
>>> <node pkg="nodelet" type="nodelet" name="openni_driver" args="load $(find openni_camera)/
>>> OpenNIDriverNodelet openni_manager" output="screen">
>>> <!--remap from="camera" to="openni" /-->
>>> <param name="registration_type" value="2" />
>>> <param name="image_input_format" value="6" />
>>> <rosparam command="load" file="$(find openni_camera)/info/openni_params.yaml" />
>>> </node>
>>> <include file="$(find openni_camera)/launch/kinect_frames.launch"/>
>>> </launch>
>>>
>>> This is the error message that received:
>>>
>>> [ INFO] [1294670480.062280765]: Loading nodelet /openni_driver of type /home/ste
>>> fan/ni/ni/openni_camera/OpenNIDriverNodelet to manager openni_manager with the f
>>> ollowing remappings:
>>> [ INFO] [1294670480.078283143]: waitForService: Service [/openni_manager/load_no
>>> delet] has not been advertised, waiting...
>>> [ INFO] [1294670480.101062293]: waitForService: Service [/openni_manager/load_no
>>> delet] is now available.
>>> [ERROR] [1294670480.104102414]: Failed to load nodelet [/openni_driver] of type
>>> [/home/stefan/ni/ni/openni_camera/OpenNIDriverNodelet]: According to the loaded
>>> plugin descriptions the class /home/stefan/ni/ni/openni_camera/OpenNIDriverNodel
>>> et with base class type nodelet::Nodelet does not exist. Declared types are nod
>>> elet_tutorial_math/Plus openni_camera/OpenNIDriver openni_pcl/OpenNIViewer pcl/B
>>> AGReader pcl/BoundaryEstimation pcl/ConvexHull2D pcl/EuclideanClusterExtraction
>>> pcl/ExtractIndices pcl/ExtractPolygonalPrismData pcl/FPFHEstimation pcl/FPFHEsti
>>> mationOMP pcl/MomentInvariantsEstimation pcl/MovingLeastSquares pcl/NodeletDEMUX
>>> pcl/NodeletMUX pcl/NormalEstimation pcl/NormalEstimationOMP pcl/NormalEstimatio
>>> nTBB pcl/PCDReader pcl/PCDWriter pcl/PFHEstimation pcl/PassThrough pcl/PointClou
>>> dConcatenateDataSynchronizer pcl/PointCloudConcatenateFieldsSynchronizer pcl/Pri
>>> ncipalCurvaturesEstimation pcl/ProjectInliers pcl/SACSegmentation pcl/SACSegment
>>> ationFromNormals pcl/SegmentDifferences pcl/StatisticalOutlierRemoval pcl/TestLi
>>> stener pcl/TestPingPong pcl/TestTalker pcl/VFHEstimation pcl/VoxelGrid pointclou
>>> d_to_laserscan/CloudThrottle pointcloud_to_laserscan/CloudToScan test_nodelet/Pl
>>> us
>>> [ERROR] [1294670480.104349989]: Failed to call service!
>>>
>>>
>>>> $ roslaunch openni_pcl voxelgrid.launch
>>>> $ rosrun openni_pcl openni_viewer ~input:=/camera/depth/points2_grid
>>>>
>>>> I'll put some screenshots/tutorials later on how to run things. In the meantime, _any_ (constructive) feedback would be
>>>> great! :)
>>>>
>>>> The advantage of using the pcl_visualization library is that it's based on VTK (http://vtk.org - a great visualization
>>>> library! from the same people that brought us CMake), it's a library :)... which means you can add
>>>> PointCloud2/pcl::PointCloud visualizers to your code in the same way you add OpenCV HighGUI image displays, and it
>>>> needs
>>>> no other dependencies - which keeps it rather small and easy to run.
>>>>
>>>> Cheers,
>>>> Radu.
>>>> --
>>>> http://pointclouds.org
>>>> _______________________________________________
>>>> [hidden email] / http://pointclouds.org
>>>> https://code.ros.org/mailman/listinfo/pcl-users
>>>>
>>> Thanks
>>>
>>> Stefan
>>>
>>
>
_______________________________________________
[hidden email] / http://pointclouds.org
https://code.ros.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: simple point cloud viewers

Ethan Rublee
Hey all,
We're working on a dead simple viewer for point clouds, for your point cloud hackery. 
Right now its rather limited, but the idea is to have the equivalent of cv::imshow("fig 1",image) for 3d data. 

The viewer takes care of setup and teardown, and threading of the viewer,
so that you can just show your clouds.

Here is some sample code:
#include <pcl_visualization/cloud_viewer.h>
//...
void 
foo ()
{
  pcl::PointCloud<pcl::PointXYZRGB> cloud;
  //... populate cloud
  pcl_visualization::CloudViewer viewer("Simple Cloud Viewer");
  viewer.showCloud(cloud);
  while (!viewer.wasStopped())
  {
  }
}
Ethan
On 01/26/2011 09:11 AM, Radu Bogdan Rusu wrote:
Stefan,


On 01/26/2011 07:12 AM, Stefan Schrandt wrote:
Hi Radu,

sorry for the late response! The openni_camera works fine now.
No problem. Glad it works! :)

But I cannot display the colored point cloud in the openni_viewer. The point clouds are displayed but with a wrong
color. Displaying the point cloud it in Rviz is fine.
Make sure you're on the latest versions of perception_pcl, perception_pcl_addons, and ni. :)

Cheers,
Radu.
--
http://pointclouds.org

Thanks
Stefan


On 01/16/2011 11:19 PM, Radu Bogdan Rusu wrote:
Stefan,

Can you git pull in openni_camera, to see if it works on your 32bit architecture now?

Cheers,
Radu.
--
http://pointclouds.org

On 01/10/2011 06:48 AM, Stefan Schrandt wrote:
On 12/10/2010 02:19 AM, Radu Bogdan Rusu wrote:
Folks,
Hi Radu,

We spent some time to refactorize some simple PointCloud2 viewers. The reference tutorial is in the trunk of
pcl_perception_addons/pcl_tutorials/pointcloud_online_viewer. It reads in data from a ROS topic and it displays it on
screen. You can use the 1-9 keys to change between different outputs, kudos to the PCLVisualizer style, you can focus
and fly to a point (f) and then rotate around it, use +/- to change the point size, etc. It should basically do almost
everything the fully fledged pcd_viewer tool does (http://www.ros.org/wiki/pcl_visualization)

You can try to launch it with a Kinect sensor as follows:

$ roslaunch openni_camera openni_kinect.launch
$ rosrun pcl_tutorials pointcloud_online_viewer input:=/camera/depth/points2


I added a simplified version of the tutorial in the trunk of the NI stack (in the openni_pcl) package -- which btw, has
the nodelet support fixed (it was previously broken in the Kinect stack - thanks to Dejan for noticing that). Just git
pull from our github repo, make/rosmake, and run:

$ roslaunch openni_camera openni_kinect.launch
$ roslaunch openni_pcl viewer.launch
this two launch files run successfully but sometimes I get the following error

openni_node: /opt/ros/cturtle/stacks/geometry_experimental/eigen3/include/Eigen3
/src/Core/MatrixStorage.h:67: Eigen3::ei_matrix_array<T, Size, MatrixOptions, 16
::ei_matrix_array() [with T = float, int Size = 4, int MatrixOptions = 0]: Asse
rtion `(reinterpret_cast<size_t>(array)& 0xf) == 0&& "this assertion is explai
ned here: " "http://eigen.tuxfamily.org/dox/UnalignedArrayAssert.html" " **** RE
AD THIS WEB PAGE !!! ****"' failed.
[openni_camera-2] process has died [pid 7929, exit code -6].
log files: /home/stefan/.ros/log/9223525c-1cc5-11e0-8597-0024e82efa3f/openni_cam
era-2*.log

I updated the geometry_experimental package but it didn't change.


If you want to play with the nodelets, do:

$ roslaunch openni_camera openni_kinect_nodelet.launch
This openni_kinect_nodelet.launch does not exist in my ni package. I try to write it but it doesn't run.

This it the launch file I created, can you tell me whats wrong with it?

<launch>
<node pkg="nodelet" type="nodelet" name="openni_manager" args="manager" output="screen" />

<node pkg="nodelet" type="nodelet" name="openni_driver" args="load $(find openni_camera)/
OpenNIDriverNodelet openni_manager" output="screen">
<!--remap from="camera" to="openni" /-->
<param name="registration_type" value="2" />
<param name="image_input_format" value="6" />
<rosparam command="load" file="$(find openni_camera)/info/openni_params.yaml" />
</node>
<include file="$(find openni_camera)/launch/kinect_frames.launch"/>
</launch>

This is the error message that received:

[ INFO] [1294670480.062280765]: Loading nodelet /openni_driver of type /home/ste
fan/ni/ni/openni_camera/OpenNIDriverNodelet to manager openni_manager with the f
ollowing remappings:
[ INFO] [1294670480.078283143]: waitForService: Service [/openni_manager/load_no
delet] has not been advertised, waiting...
[ INFO] [1294670480.101062293]: waitForService: Service [/openni_manager/load_no
delet] is now available.
[ERROR] [1294670480.104102414]: Failed to load nodelet [/openni_driver] of type
[/home/stefan/ni/ni/openni_camera/OpenNIDriverNodelet]: According to the loaded
plugin descriptions the class /home/stefan/ni/ni/openni_camera/OpenNIDriverNodel
et with base class type nodelet::Nodelet does not exist. Declared types are nod
elet_tutorial_math/Plus openni_camera/OpenNIDriver openni_pcl/OpenNIViewer pcl/B
AGReader pcl/BoundaryEstimation pcl/ConvexHull2D pcl/EuclideanClusterExtraction
pcl/ExtractIndices pcl/ExtractPolygonalPrismData pcl/FPFHEstimation pcl/FPFHEsti
mationOMP pcl/MomentInvariantsEstimation pcl/MovingLeastSquares pcl/NodeletDEMUX
pcl/NodeletMUX pcl/NormalEstimation pcl/NormalEstimationOMP pcl/NormalEstimatio
nTBB pcl/PCDReader pcl/PCDWriter pcl/PFHEstimation pcl/PassThrough pcl/PointClou
dConcatenateDataSynchronizer pcl/PointCloudConcatenateFieldsSynchronizer pcl/Pri
ncipalCurvaturesEstimation pcl/ProjectInliers pcl/SACSegmentation pcl/SACSegment
ationFromNormals pcl/SegmentDifferences pcl/StatisticalOutlierRemoval pcl/TestLi
stener pcl/TestPingPong pcl/TestTalker pcl/VFHEstimation pcl/VoxelGrid pointclou
d_to_laserscan/CloudThrottle pointcloud_to_laserscan/CloudToScan test_nodelet/Pl
us
[ERROR] [1294670480.104349989]: Failed to call service!


$ roslaunch openni_pcl voxelgrid.launch
$ rosrun openni_pcl openni_viewer ~input:=/camera/depth/points2_grid

I'll put some screenshots/tutorials later on how to run things. In the meantime, _any_ (constructive) feedback would be
great! :)

The advantage of using the pcl_visualization library is that it's based on VTK (http://vtk.org - a great visualization
library! from the same people that brought us CMake), it's a library :)... which means you can add
PointCloud2/pcl::PointCloud visualizers to your code in the same way you add OpenCV HighGUI image displays, and it
needs
no other dependencies - which keeps it rather small and easy to run.

Cheers,
Radu.
--
http://pointclouds.org
_______________________________________________
[hidden email] / http://pointclouds.org
https://code.ros.org/mailman/listinfo/pcl-users

Thanks

Stefan


        

      
_______________________________________________
[hidden email] / http://pointclouds.org
https://code.ros.org/mailman/listinfo/pcl-users


_______________________________________________
[hidden email] / http://pointclouds.org
https://code.ros.org/mailman/listinfo/pcl-users