by cohenguy1 » Mon May 14, 2012 10:31 am
by cohenguy1
Mon May 14, 2012 10:31 am
Sometimes when operating our project, we get the following error:
VIDIOC_S_FMT error 5, Input/Output error
We find out that the FMT error is caused by another error, "select timeout".
This happens in the Robotis' demo also. When the robot is falling (mainly, but not only), we get the select timeout and the program exits.
When trying to restart the program, we get the FMT error, so in order to operate the program again, reboot is needed.
We noticed that before we get the FMT error, it says "CM730 is used by another program", although the processes related to it
are closed.
It might be related to the USB of the fitPC... some race maybe between the camera and the CM730...
We haven't change anything in Robotis' source code.
The select time out call that causes the error is:
r = select (camera_fd + 1, &fds, NULL, NULL, &tv);
The FMT error that follows in the next run of the program is:
VIDIOC_S_FMT error 5, Input/output error
caused by EIO = errno 5, Input/Output error
of the ioctl (camera_fd, VIDIOC_S_FMT, &fmt))
When masking this ioctl we get the same Input/Output Error from the following ioctl:
ioctl(camera_fd, VIDIOC_G_PARM, &fps)
When trying to open the camera in other programs, like cheese or guvcview we still get the Input/Output error.
formatting didn't help. same old select timeout. The problem is not to a specific robot. It happened for more than one robot.
========================
It seems like we've solved the 'select timeout' error. We've adjusted the camera's frame rate to our processing time,
and set the frame rate to 14 FPS, which lowered the cpu utilization of our process, and we haven't seen the 'select timeout' since.
The FMT error still appears sometimes.
Grabbing the frame using OpenCV worked and didn't get any select timeout or the FMT errors, but it is much slower. We didn't try working with ROS.
Sometimes when operating our project, we get the following error:
VIDIOC_S_FMT error 5, Input/Output error
We find out that the FMT error is caused by another error, "select timeout".
This happens in the Robotis' demo also. When the robot is falling (mainly, but not only), we get the select timeout and the program exits.
When trying to restart the program, we get the FMT error, so in order to operate the program again, reboot is needed.
We noticed that before we get the FMT error, it says "CM730 is used by another program", although the processes related to it
are closed.
It might be related to the USB of the fitPC... some race maybe between the camera and the CM730...
We haven't change anything in Robotis' source code.
The select time out call that causes the error is:
r = select (camera_fd + 1, &fds, NULL, NULL, &tv);
The FMT error that follows in the next run of the program is:
VIDIOC_S_FMT error 5, Input/output error
caused by EIO = errno 5, Input/Output error
of the ioctl (camera_fd, VIDIOC_S_FMT, &fmt))
When masking this ioctl we get the same Input/Output Error from the following ioctl:
ioctl(camera_fd, VIDIOC_G_PARM, &fps)
When trying to open the camera in other programs, like cheese or guvcview we still get the Input/Output error.
formatting didn't help. same old select timeout. The problem is not to a specific robot. It happened for more than one robot.
========================
It seems like we've solved the 'select timeout' error. We've adjusted the camera's frame rate to our processing time,
and set the frame rate to 14 FPS, which lowered the cpu utilization of our process, and we haven't seen the 'select timeout' since.
The FMT error still appears sometimes.
Grabbing the frame using OpenCV worked and didn't get any select timeout or the FMT errors, but it is much slower. We didn't try working with ROS.