"File write Failed" error on camera calibration commit

asked 2018-03-06 01:46:11 -0500

Richard F. gravatar image

updated 2018-03-08 01:49:10 -0500

Hello, i am trying to calibrate my UI122xSE-M UEye-Camera with the camera_calibration node on ros#kinetic. But on Commiting the calibration i get the Error: "Unable to set camera info for calibration. Failure message: file write failed" in the camera_calibration-node terminal, and a "file write failed" in the ueye-node terminal.

Further warnings

  • Not sure, if they have anything to do with it, but the UEye Node also throws two warnings on startup:
    • "Loaded uEye SDK 4.90.17. Expecting 4.60.5."
    • "Failed to load intrinsics for camera from file"

Info and Steps:

  • Im running ROS on Ubuntu 16.04 in a Virtual Box.
  • Using the UEye-node to publish the raw images
    • (i also tried remapping the output to /camera/image_raw and set_camera_info to camera/set... to match with usual camera_calibration path)
  • Then i start the camera_calibration node and do the calibration until calibrate button activates.
  • Saving the Output to /tmp/calibrationdata.tar.gz' seems to work fine.
  • pressing the commit-button then thwors the error.

edit: Opened Issue on UEye repository:

Kevin Hallenbeck stated a solution on ueye repo. Did not fully test it yet since i got adviced to change to another already tested camera model and i couldnt find the reconfig parameter right away. I will do that if i find the time to do so. But maybe it can still help others.

edit retag flag offensive close merge delete

Comments

The calibration files are typically written to $HOME/.ros/tmp. Does the user that runs the camera_calibration node have write permissions there? Did you ever start ROS nodes/roslaunch as root (with sudo fi)?

gvdhoorn gravatar image gvdhoorn  ( 2018-03-06 01:48:31 -0500 )edit

well i am root at the VB so the permissions should suffice (.ros permissions are drwxrwxr-x 6 user user 4096) and how to start roslaunch/rosrun as sudo? sudo rosrun ... results in sudo: rosrun: command not found

Richard F. gravatar image Richard F.  ( 2018-03-06 03:01:12 -0500 )edit

well i am root at the VB

suggestion: 'never' run ROS nodes as root. Not even when trying to access devices. It's almost never needed and can lead to strange issues with nodes silently failing if you ever don't run things as root.

gvdhoorn gravatar image gvdhoorn  ( 2018-03-06 03:26:48 -0500 )edit

Saving the Output to /tmp/calibrationdata.tar.gz' seems to work fine

I'd missed this sentence in your post. So please ignore my comments (but not the one about running things as root).

gvdhoorn gravatar image gvdhoorn  ( 2018-03-06 03:27:42 -0500 )edit

Is there a camera_calibration directory in $HOME/.ros (for the user running the camera_calibration node)?

gvdhoorn gravatar image gvdhoorn  ( 2018-03-06 03:40:07 -0500 )edit

Related/duplicate: #q209058. Interestingly the OP there also uses the ueye driver.

gvdhoorn gravatar image gvdhoorn  ( 2018-03-06 03:43:15 -0500 )edit

home/.ros only contains (catkin_lint, log, rosdep, rosconsole.config, roscore-..., rosdep, rospack/rosstack_chache.. (x3), slam). And u are right the other question seems to be related. But he is getting more info and has this folder, which i am missing. gona search for it

Richard F. gravatar image Richard F.  ( 2018-03-06 03:49:15 -0500 )edit

Ok. If you can, remove the $HOME/.ros directory completely. Then do everything as a regular user. If that still fails, create the camera_calibration directory and retry. If that works, this might be something to report.

gvdhoorn gravatar image gvdhoorn  ( 2018-03-06 03:50:28 -0500 )edit