ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

rgbdslam doesn't work if it has launched before

asked 2012-05-23 10:34:55 -0500

Chong gravatar image

updated 2014-01-28 17:12:25 -0500

ngrennan gravatar image

I am following the instructions and compile all the packages successfully. Then I excute

roslaunch rgbdslam kinect+rgbdslam.launch
It works just fine (a window pops out and show the RGB image and the depth image) Then I close the window and shut down the terminal. But then when I open the terminal and redo the roslaunch again, it shows
openni_node: /usr/include/boost/smart_ptr/shared_ptr.hpp:412: boost::shared_ptr<t>::reference boost::shared_ptr<t>::operator*() const [with T = xn::NodeInfo, boost::shared_ptr<t>::reference = xn::NodeInfo&]: Assertion `px != 0' failed.
[openni_node1-1] process has died [pid 2939, exit code -6].
log files: /home/chong/.ros/log/1ca4f8da-a515-11e1-be93-74e50b030cfa/openni_node1-1*.log

But this log file does not exit in the directory. I found another log file named roslaunch-ubuntu-3307.log and this is the part where the error possibly appears:

[roslaunch][INFO] 2012-05-23 16:28:44,034: ... successfully launched [rgbdslam-7]
[roslaunch][INFO] 2012-05-23 16:28:44,034: ... launch_nodes complete
[roslaunch.pmon][INFO] 2012-05-23 16:28:44,035: registrations completed <processmonitor(processmonitor-1, started="" daemon="" 139844188399360)="">
[roslaunch.parent][INFO] 2012-05-23 16:28:44,035: ... roslaunch parent running, waiting for process exit
[roslaunch][INFO] 2012-05-23 16:28:44,035: spin
[roslaunch][ERROR] 2012-05-23 16:28:52,215: [openni_node1-2] process has died [pid 3346, exit code -6].
log files: /home/chong/.ros/log/e41573d6-a515-11e1-8e5f-74e50b030cfa/openni_node1-2*.log
[roslaunch.pmon][INFO] 2012-05-23 16:28:52,216: ProcessMonitor.unregister[openni_node1-2] starting
[roslaunch.pmon][INFO] 2012-05-23 16:28:52,216: ProcessMonitor.unregister[openni_node1-2] complete

The interesting thing is, when I restart the system and try this again, it works the first time, but if I try roslaunch the second time, tthen the same error appears. Seems it only works at the first time after the system is booted. I guess I didn't shut down everything executed by the first time roslaunch but I don't know how to do it. Anybody knows how to solve this? I will appreciate any suggestions !

Edit: after I type ^C in the window, it says

[rgbdslam-7] killing on exit
[kinect_base_link3-6] killing on exit
[kinect_base_link2-5] killing on exit
[kinect_base_link1-4] killing on exit
[kinect_base_link-3] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

edit retag flag offensive close merge delete

Comments

What does roslaunch say after you type ^C in its window?

joq gravatar image joq  ( 2012-05-23 11:50:17 -0500 )edit

Hi joq, I've posted the output in the "edit" part in my post above. Thanks !

Chong gravatar image Chong  ( 2012-05-24 08:06:27 -0500 )edit

Is ^C what you did when you "shut down the terminal"?

joq gravatar image joq  ( 2012-05-24 09:17:40 -0500 )edit

yes. and by "close the window", i mean close the window showing up when i run the roslaunch command

Chong gravatar image Chong  ( 2012-05-24 10:31:56 -0500 )edit

any idea how to solve this?

Chong gravatar image Chong  ( 2012-05-28 06:42:36 -0500 )edit

Provide more information on why openni_node died?

joq gravatar image joq  ( 2012-05-28 11:52:32 -0500 )edit

3 Answers

Sort by ยป oldest newest most voted
0

answered 2012-06-03 09:58:06 -0500

Chong gravatar image

the error :

chong@ubuntu:~$ roslaunch rgbdslam rgbdslam.launch
... logging to /home/chong/.ros/log/ecef703a-adb5-11e1-aba4-74e50b030cfa/roslaunch-ubuntu-2680.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://ubuntu:36167/

SUMMARY
========

PARAMETERS
 * /rgbdslam/config/predecessor_candidates
 * /rgbdslam/config/wide_cloud_topic
 * /rosdistro
 * /rgbdslam/config/use_gui
 * /rgbdslam/config/visualization_skip_step
 * /rgbdslam/config/individual_cloud_out_topic
 * /rgbdslam/config/max_keypoints
 * /rgbdslam/config/sufficient_matches
 * /rgbdslam/config/max_connections
 * /rgbdslam/config/min_keypoints
 * /rgbdslam/config/optimizer_skip_step
 * /rosversion
 * /rgbdslam/config/store_pointclouds
 * /rgbdslam/config/matcher_type
 * /rgbdslam/config/min_sampled_candidates
 * /rgbdslam/config/topic_image_mono
 * /rgbdslam/config/feature_detector_type
 * /rgbdslam/config/feature_extractor_type
 * /rgbdslam/config/wide_topic
 * /rgbdslam/config/neighbor_candidates
 * /rgbdslam/config/drop_async_frames

NODES
  /
    rgbdslam (rgbdslam/rgbdslam)

ROS_MASTER_URI=http://localhost:11311

core service [/rosout] found
process[rgbdslam-1]: started with pid [2698]
bool g2o::HyperGraphActionLibrary::registerAction(g2o::HyperGraphElementAction*): creating collection for "writeGnuplot"
bool g2o::HyperGraphActionLibrary::registerAction(g2o::HyperGraphElementAction*): creating collection for "draw"
[ERROR] [1338753284.746435498]: Cannot use concurrent node construction with SiftGPU matcher! 'concurrent_node_construction' was set to false
[ERROR] [1338753284.746594629]: Cannot use concurrent edge construction with SiftGPU matcher! 'concurrent_edge_construction' was set to false
edit flag offensive delete link more

Comments

1

It's an error because you would have to set the concurrent_xxxx_construction parameters to false when using the matcher_type "SIFTGPU". It's nota fatal error and all should still work, right? BTW, for my GPU it is faster to use SIFTGPU features with the FLANN matcher instead of the SIFTGPU matcher.

Felix Endres gravatar image Felix Endres  ( 2012-06-03 22:42:05 -0500 )edit
3

answered 2012-05-29 07:19:00 -0500

Closing the window only quits rgbdslam. The launch-file you use also starts the camera driver (and a roscore if not yet running) which doesn't quit on rgbdslam's exit. So probably that is the problam, since the error message you get is from openni_node, not from rgbdslam itself. Either you set the required="true" option for rgbdslam node tag in the launchfile, so everything quits when rgbdslam quits. Or you can use a seperate launchfile for openni and rgbdslam (there are several available), so you can restart rgbdslam without starting a new openni instance. Or just kill the rest of the launched process with ctrl+c.

edit flag offensive delete link more

Comments

tried set required = "true", not working; tried using ctril+c, not working. Can you tell me how to use a seperate lauchfile for openni and rgbdslam please? thx !

Chong gravatar image Chong  ( 2012-05-30 18:10:42 -0500 )edit

tried set required = "true". not working.

Chong gravatar image Chong  ( 2012-05-30 18:10:45 -0500 )edit

Shell1: roslaunch openni_camera openni_node.launch, Shell2: roslaunch rgbdslam rgbdslam.launch

Felix Endres gravatar image Felix Endres  ( 2012-06-01 04:50:21 -0500 )edit

i got an error when running roslaunch rgbdslam rgbdslam.launch. The error is posted as follows

Chong gravatar image Chong  ( 2012-06-03 09:57:34 -0500 )edit
0

answered 2012-12-17 12:25:16 -0500

tgaaly gravatar image

updated 2012-12-17 12:25:58 -0500

you can execute sudo killall XnSensorServer first before launching

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2012-05-23 10:34:55 -0500

Seen: 1,319 times

Last updated: Dec 17 '12