Stabilising Openni #32

Closed
stonier opened this Issue Nov 16, 2012 · 9 comments

Projects

None yet

3 participants

@stonier
Member
stonier commented Nov 16, 2012

Following on from #25 with relevance to groovy.

  • Currently using openni_camera/DriverNodelet - this works
  • Only sensor data (no point clouds or colour image)
  • We probably need depth_image_proc
    • depth_image_proc is broken
@stonier stonier referenced this issue Nov 16, 2012
Closed

Groovy updates #25

@jihoonl
Member
jihoonl commented Nov 19, 2012

I confirmed that openni.launch is not stable. So the 3dsensor.launch

I tried to launch, kill, and launch openni.launch several times and the pointcloud stream was not shown sometimes.

roscore
roslaunch openni_launc openni.launch
rostopic hz /camera/depth_registered/points

The version of openni_launch is

Package: ros-groovy-openni-launch
Version: 1.8.1-s1353126842precise
Architecture: amd64
Maintainer: Patrick Mihelich
Installed-Size: 79
Depends: ros-groovy-geometry (= 1.9.22-0precise-20121115-0540-+0000), ros-groovy-image-pipeline (= 1.9.10-0precise-20121117-0418-+0000), ros-groovy-nodelet-core (= 1.7.7-0precise-20121117-0342-+0000), ros-groovy-openni-camera (= 1.8.0-s1353124635
precise), libc6, build-essential, cmake, python-yaml, subversion
Priority: optional
Section: unknown
Filename: pool/main/r/ros-groovy-openni-launch/ros-groovy-openni-launch_1.8.1-s1353126842~precise_amd64.deb
Size: 6750
SHA256: 33a244cc10bc39cc568119651ea9c9dec3dbdad3f4f055a252805cec78eec68e
SHA1: a1517d56cc8c52988e10c3066d572535c4282f08
MD5sum: b2553cbd6de58a533d3217c05b3f71c5
Description: Entry point for using OpenNI cameras in ROS
Launch files to open an OpenNI device and load all nodelets to convert raw depth/RGB/IR streams to depth images, disparity images, and (registered) point clouds.
Wg-Rosdistro: groovy

@jihoonl
Member
jihoonl commented Nov 19, 2012

@tfoote awesome! it works! now 3dsensor.launch is working as well.

It still have some work need to be done though.

  1. It needs a namespace for kinect.
    Currently kinect topics are shown as below

/rgb/image_color
/rgb/image_color/compressed
/rgb/image_color/compressed/parameter_descriptions
/rgb/image_color/compressed/parameter_updates
/rgb/image_color/compressedDepth
...
/ir/camera_info
/ir/image_raw
/ir/image_raw/compressed
/ir/image_raw/compressed/parameter_descriptions
....
/depth_registered/points

So it may need /camera/ namespace.

  1. 3dsensor.launch uses processing.launch from openni_launch. which starts all post processing stuff. It can do some diet to reduce cpu power consumption.
@bit-pirate
Member

Hmmm, that sounds familiar.

One possible cause for this remapping problem:
No node handle is passed to the instances of the class used in the nodelet.
I had this issues with two nodelet implementations recently. When new node handles were created inside the class' constructor, I wasn't able to remap parameters nor topics in the launch file.

Example patch of a nodelet impelementation: https://code.google.com/p/alufr-ros-pkg/issues/detail?id=7

@stonier stonier referenced this issue Nov 24, 2012
Closed

Openni crashing #5

@stonier
Member
stonier commented Nov 26, 2012

Warnings from openni and transfors as soon as you request the depth images. I don't know that this warning is actually valid though. The tf's dont appear to have a loop and they work in every other way.

[ WARN] [1353898349.701429333]: TF exception:
The tf tree is invalid because it contains a loop.                                                                                   
Frame /camera_rgb_optical_frame exists with parent /camera_rgb_frame.                                                                
Frame /camera_rgb_frame exists with parent /base_bottom_link.                                                                        
Frame /camera_depth_frame exists with parent /camera_rgb_frame.                                                                      
Frame /camera_link exists with parent /camera_rgb_frame.                                                                             
Frame /base_footprint exists with parent /odom.                                                                                      
Frame /odom exists with parent NO_PARENT.                                                                                            
Frame /camera_depth_optical_frame exists with parent /camera_depth_frame.                                                            
Frame /wheel_left_link exists with parent /base_link.                                                                                
Frame /base_link exists with parent /base_footprint.                                                                                 
Frame /wheel_right_link exists with parent /base_link.                                                                               
Frame /base_bottom_link exists with parent /base_footprint.                                                                          
Frame /cliff_sensor_front_link exists with parent /base_link.                                                                        
Frame /cliff_sensor_left_link exists with parent /base_link.                                                                         
Frame /cliff_sensor_right_link exists with parent /base_link.                                                                        
Frame /gyro_link exists with parent /base_link.                                                                                      
Frame /plate_bottom_link exists with parent /base_link.                                                                              
Frame /plate_middle_link exists with parent /base_link.                                                                              
Frame /plate_top_link exists with parent /base_link.                                                                                 
Frame /pole_bottom_0_link exists with parent /base_link.                                                                             
Frame /pole_bottom_1_link exists with parent /base_link.                                                                             
Frame /pole_bottom_2_link exists with parent /base_link.                                                                             
Frame /pole_bottom_3_link exists with parent /base_link.                                                                             
Frame /pole_bottom_4_link exists with parent /base_link.                                                                             
Frame /pole_bottom_5_link exists with parent /base_link.                                                                             
Frame /pole_kinect_0_link exists with parent /base_link.                                                                             
Frame /pole_kinect_1_link exists with parent /base_link.                                                                             
Frame /pole_middle_0_link exists with parent /base_link.                                                                             
Frame /pole_middle_1_link exists with parent /base_link.                                                                             
Frame /pole_middle_2_link exists with parent /base_link.                                                                             
Frame /pole_middle_3_link exists with parent /base_link.                                                                             
Frame /pole_top_0_link exists with parent /base_link.                                                                                
Frame /pole_top_1_link exists with parent /base_link.                                                                                
Frame /pole_top_2_link exists with parent /base_link.                                                                                
Frame /pole_top_3_link exists with parent /base_link.
@stonier
Member
stonier commented Nov 26, 2012

Can ignore the last one, is a result of publish_tf not set to false.

@stonier
Member
stonier commented Nov 28, 2012

Fighting with this again - openni-launch has dropped out of the shadow-fixed repository. Also I see willow is busy getting openni/sensor debians ready, so we have to just wait for this to work itself out I think.

@stonier
Member
stonier commented Dec 2, 2012

New openni being worked on by willow.

Hi ROS-users,

a new patched version of the OpenNI driver is available:

OpenNI 1.5.4.0
Sensor-primesense 5.1.0.41

Corresponding debs can be found on Jochen Sprickerhof's launchpad:
https://launchpad.net/~v-launchpad-jochen-sprickerhof-de/+archive/pcl

This update fixes a bug that might occur when operating multiple
devices the same time and also fixes the XnSensorServer crashes under
Ubuntu Precise. Furthermore, we noticed improvements in start-up
speed.

We'll update the official ROS openni-dev debian beginning of next
week. It would be great, if you could give it a try and we are looking
forward to receiving your feedback.

Best regards,
Julius

Unfortunately not usable yet with ros I think. Complains about broken dependencies when trying to install openni_launch on top.

@stonier
Member
stonier commented Dec 29, 2012

Added depth processing to the 3d launcher and also optional arguments that apps can use to turn off/on the various processing modules (and registration).

The new openni is working smoothly (on kinect at least) so far!

@jihoonl jihoonl closed this Jan 1, 2013
@stonier stonier added a commit that referenced this issue Dec 29, 2014
@stonier stonier created xbox360 teleop launcher, deleted generic joystick launcher - …
…better to define them joystick by joystick I think, #32.
8a16386
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment