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

Getting the picoflexx depth sensor working on ROS [solved]

asked 2015-10-25 05:33:24 -0600

updated 2015-11-03 10:41:11 -0600

Hi,

I'm trying to get the picoflexx depth sensor working with ROS Indigo on Ubuntu 14.04. I can run the normal royaleviewer.sh from the official package "libroyale-1.0.5.40-LINUX-64Bit", and the depth camera is working fine. Then I tried this wrapper here : https://github.com/fmina/ros_picoflexx It compiles fine, but when I run the launch file, I got this error :

process[firefly/picoflexx_cam-1]: started with pid [9406]
[ INFO] [1445772351.805227168]: Detecting cameras...
Detected 1 camera(s).
[firefly/picoflexx_cam-1] process has died [pid 9406, exit code -11, cmd /home/cyril/catkin_ws/devel/lib/ros_picoflexx/ros_picoflexx_node __name:=picoflexx_cam __log:=/home/cyril/.ros/log/e35b1f4c-7b07-11e5-9dd2-247703332438/firefly-picoflexx_cam-1.log].
log file: /home/cyril/.ros/log/e35b1f4c-7b07-11e5-9dd2-247703332438/firefly-picoflexx_cam-1*.log

Using rosrun leads to a segmentation fault, which is why we see exit code -11 I think. Anyone got this error and found how to fix that ?

FIRST EDIT (This was the old workaround fix) :

As suggested by gvdhoorn, I've run the node with GDB by adding to the node parameters : launch-prefix="gdb -ex run --args".

So the segmentation fault occur in the function void PicoFlexxCamera::Initialize(), when it's checking the camera id. As a workaround, I've just removed the if condition. The original code is :

for (int i = 0; i < camlist.size(); i++) {
    if (camlist[i] == camera_id_) {
      camera_device_ = manager_.createCamera(camlist[i]);
      ROS_INFO_STREAM(camera_name_ << " initialized correctly");
    }
}

So I just commented out the if :

for (int i = 0; i < camlist.size(); i++) {
     //if (camlist[i] == camera_id_) {
          camera_device_ = manager_.createCamera(camlist[i]);
          ROS_INFO_STREAM(camera_name_ << " initialized correctly");
     //}
}

The node works well, I can visualize the PointCloud2 in rviz. If someone has a better solution, please post it.

SECOND EDIT : Now the new code in the repository works fine (at this time there is just a ':' missing in the src/ros_picoflexx_node.cc file, you will get notified when launching catkin_make, just add it, this will get fix soon I think), you have to launch it once to get the camera ID and enter it in the yaml parameter file.

edit retag flag offensive close merge delete

Comments

1

Try to get a gdb backtrace, to pinpoint where the thing is crashing. See Roslaunch Nodes in Valgrind or GDB for info on running nodes with gdb.

gvdhoorn gravatar image gvdhoorn  ( 2015-10-25 08:53:54 -0600 )edit

Thanks a lot for your advice, I managed to run the node with GDB and found where the issue was, I'll edit my post.

Cyril Jourdan gravatar image Cyril Jourdan  ( 2015-10-28 09:22:11 -0600 )edit

I'd be more inclined to call that a workaround. Something is wrong with the way camlist is being indexed, most likely. Perhaps you should keep this question open, at least until fmina/ros_picoflexx/issues/6 is resolved.

gvdhoorn gravatar image gvdhoorn  ( 2015-10-28 14:45:08 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted
2

answered 2015-10-30 17:53:31 -0600

fmina gravatar image

Fixes are done, please check https://github.com/fmina/ros_picoflex...

edit flag offensive delete link more

Comments

Thanks, just a ':' missing in the src file.

Cyril Jourdan gravatar image Cyril Jourdan  ( 2015-11-03 10:37:50 -0600 )edit

Hi There, I used your drivers and got it working they are really very helpful. And, I also wanted to learn how to go about writing them from scratch. Can you suggest me some resources or links to go through which might give me a starting point. Thanks

aditagabbar gravatar image aditagabbar  ( 2017-03-04 15:29:56 -0600 )edit
1

answered 2015-11-17 09:48:48 -0600

Thiemo gravatar image

Hi,

I also wrote a driver for the pmd CamBoard pico flexx, because there was none, when I looked for one. It is available at https://github.com/code-iai/pico_flex... . The driver publishes the point cloud and depth / ir / noise images on topics, supports dynamic reconfigure and zero copy nodelets. Feel free to try it out.

edit flag offensive delete link more

Comments

Hi There, I used your drivers and got it working they are really very helpful. And, I also wanted to learn how to go about writing them from scratch. Can you suggest me some resources or links to go through which might give me a starting point. Thanks

aditagabbar gravatar image aditagabbar  ( 2017-03-04 15:29:02 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2015-10-25 05:33:24 -0600

Seen: 1,858 times

Last updated: Nov 17 '15