Open antoan opened 7 years ago
The attached screenshot shows the rendered Tara output in Rviz, set up so that the sensor is pointing up using a static frame publisher and the ros package stereo_proc .
The rectangles in red on the right hand side of the screen contain the rviz grid (10x10m) and rendered point cloud above it (visible as a sparse line).
To fix this I tried to do a manual stereo calibration using the ROS camera calibrator package with no luck:
tony@Mordor:~/catkin_ws$ roslaunch tara_launch.launch &
[1] 16034
tony@Mordor:~/catkin_ws$ ... logging to /home/tony/.ros/log/c372cdc2-76de-11e7-ad0f-14dae91b4fe9/roslaunch-Mordor-16034.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://Mordor:46780/
SUMMARY
========
PARAMETERS
* /rosdistro: indigo
* /rosversion: 1.11.21
* /stereo/uvc_camera/cameraLeft_info_url: file://${ROS_HOME...
* /stereo/uvc_camera/cameraRight_info_url: file://${ROS_HOME...
* /stereo/uvc_camera/device: /dev/video0
* /stereo/uvc_camera/exposureValue: 1
* /stereo/uvc_camera/fps: 30
* /stereo/uvc_camera/frame: webcam
* /stereo/uvc_camera/height: 480
* /stereo/uvc_camera/width: 640
NODES
/stereo/
uvc_camera (uvc_camera/tara_node)
ROS_MASTER_URI=http://localhost:11311
core service [/rosout] found
process[stereo/uvc_camera-1]: started with pid [16052]
[ERROR] [1501945752.714151475]: Tried to advertise a service that is already advertised in this node [/stereo/set_camera_info]
firmwareversion of the camera is 1 : 2 : 131 : 652
Left camera matrix not found
Right camera matrix not found
[ INFO] [1501945755.250379602]: camera calibration URL: file:///home/tony/.ros/camera_info/cameraLeft.yaml
[ INFO] [1501945755.264008500]: camera calibration URL: file:///home/tony/.ros/camera_info/cameraRight.yaml
current value of Brightness is 4
$ ROS_NAMESPACE=stereo rosrun stereo_image_proc stereo_image_proc
tony@Mordor:~/catkin_ws$ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.034 right:=/right/image_raw left:=/left/image_raw left_camera:=/left right_camera:=/right &
[2] 16308
tony@Mordor:~/catkin_ws$ ('Waiting for service', '/left/set_camera_info', '...')
Service not found
('Waiting for service', '/right/set_camera_info', '...')
Service not found
Hi @antoan ,
The formula you are using to calculate baseline is correct (B. = Tx/ -fx' ). But I'm not sure how you derive at the unit of baseline. The value of 60 mm is the correct baseline for this camera. It should be in millimeters and not in meters like you have derived.
e-con systems currently does not support calibrating its cameras by end users. All Tara cameras come precalibrated from the factory. So, you are on your own in that regard. Unless you played around with the casing or the lenses, recalibration will not be necessary.
This is an open-source project with the primary intention of enabling beginners to get started with using the Tara camera on ROS. If you have any radical questions or require priority support, I'd suggest you contact e-con's support team directly via mail (support@e-consystems.com).
When viewing the output pointcloud of Tara in Rviz, the rendered poincloud cluster always appears very far out in relation to the sensor position.
In addition, when I ran the sensor with RTABMAP Slam algoritm on ros, I had warning messages reporting a baseline of 60m. So I decided to have a look at the calibration files saved in ./ros/camera_info directory to check this.
Calculating resultant baseline
From http://docs.ros.org/jade/api/sensor_msgs/html/msg/CameraInfo.html
By inspecting the above implementation we can obtain the following expression for the camera B. = Tx/ -fx' .
To plugin clibration values into this expresion:
rostopic echo /stereo/right/camera_info yields the following calibration data:
This further yeilds:
Tx = -44485.417759835844, fx' = 739.0412675724488
Baseline = Tx/-fx' = -44485.417759835844/ - 739.0412675724488 = 60.193415052