米文动力开发者社区

标题: MIIVII Apex ros版本的camera驱动 [打印本页]

作者: 孤云独去闲    时间: 2021-4-13 15:25
标题: MIIVII Apex ros版本的camera驱动
HI 各位水友:
      能提供一个ROS版本的camera驱动么?用以支持运行camera_calibration,谢谢啦!!!

作者: Hcheng    时间: 2021-4-13 15:52
我们有一个开源的项目。您可以参考一下。
https://github.com/MiiViiDynamics/miivii_gmsl_camera
作者: 孤云独去闲    时间: 2021-4-13 16:27
Hcheng 发表于 2021-4-13 15:52
我们有一个开源的项目。您可以参考一下。
https://github.com/MiiViiDynamics/miivii_gmsl_camera ...

这个程序要运行,需要标定文件。而ros里的camera标定需要camera驱动,有没有改好的程序?发我一份
作者: Hcheng    时间: 2021-4-13 17:08
孤云独去闲 发表于 2021-4-13 16:27
这个程序要运行,需要标定文件。而ros里的camera标定需要camera驱动,有没有改好的程序?发我一份 ...

这个程序没有标定文件也可以运行的。

如果需要对相机标定,可以参考ROS的代码。
http://wiki.ros.org/camera_calib ... onocularCalibration

作者: 孤云独去闲    时间: 2021-4-13 18:20
Hcheng 发表于 2021-4-13 17:08
这个程序没有标定文件也可以运行的。

如果需要对相机标定,可以参考ROS的代码。

这个程序运行起来之后,其中image topic -------/miivii_gmsl_ros/camera1  是不是就是相机的原始数据,也就是camera_calibration所需要的/camera/image_raw?
作者: 孤云独去闲    时间: 2021-4-13 18:31
1. 将launch文件中的‘<param name="camera1_cali_file" value="file:///opt/miivii/data/calibration/camera/perception_front.yaml" />’注释。
2. 运行roslaunch miivii_gmsl_ros 1_node_with_1_camera.launch,报出警告,但是程序运行起来了
3. 运行‘rosrun camera_calibration cameracalibrator.py --size 8x--square 0.108 image:=/miivii_gmsl_ros/camera1 camera:=/miivii_gmsl_ros’,标定程序运行起来了。


明天我标定试试,有问题再打扰各位水友了,谢谢!!
作者: Hcheng    时间: 2021-4-13 18:51
孤云独去闲 发表于 2021-4-13 18:31
1. 将launch文件中的‘’注释。
2. 运行roslaunch miivii_gmsl_ros 1_node_with_1_camera.launch,报出警告 ...

是的,是原始图像。
作者: 孤云独去闲    时间: 2021-4-15 10:19
现在标定也有结果,我把标定文件放入launch中写的全路径,但是提示找不到标定或者和打不开标定文件。
[ INFO] [1618452623.387844416]: camera_cali_file_list 0 file:///opt/miivii/data/calibration/camera/perception_front.yaml
[ INFO] [1618452623.388059296]: camera calibration URL: file:///opt/miivii/data/calibration/camera/perception_front.yaml
[ WARN] [1618452623.390160032]: Camera calibration file did not specify distortion model, assuming plumb bob
没有指定畸变模型。
首先:标定文档是‘ros camera_calibration’生成的,里边似乎没有说明畸变类型。
  1. image_width: 1280
  2. image_height: 720
  3. camera_name: rear
  4. camera_matrix:
  5.   rows: 3
  6.   cols: 3
  7.   data: [420.12656,   3.4924 , 606.46537,
  8.            0.     , 377.30039, 351.38245,
  9.            0.     ,   0.     ,   1.     ]
  10. camera_model: fisheye
  11. distortion_coefficients:
  12.   rows: 1
  13.   cols: 4
  14.   data: [0.045668, -0.143033, 0.153883, -0.066567]
  15. rectification_matrix:
  16.   rows: 3
  17.   cols: 3
  18.   data: [1., 0., 0.,
  19.          0., 1., 0.,
  20.          0., 0., 1.]
  21. projection_matrix:
  22.   rows: 3
  23.   cols: 4
  24.   data: [420.12656,   3.4924 , 606.46537,   0.     ,
  25.            0.     , 377.30039, 351.38245,   0.     ,
  26.            0.     ,   0.     ,   1.     ,   0.     ]
复制代码

其次:能提供一个标定文件的模板么?我需要知道需要那些参数,参数是怎么定义的。
作者: Hcheng    时间: 2021-4-15 10:23
孤云独去闲 发表于 2021-4-15 10:19
现在标定也有结果,我把标定文件放入launch中写的全路径,但是提示找不到标定或者和打不开标定文件。
[ INF ...

您好

这个日志提示的意思是找到了标定文件。
您的这个日志:"Camera calibration file did not specify distortion model, assuming plumb bob",是读取标定文件后,这里打印出的,这个表示已经读取成功了。

http://docs.ros.org/en/diamondba ... ml_8cpp_source.html
作者: Hcheng    时间: 2021-4-15 10:28
孤云独去闲 发表于 2021-4-15 10:19
现在标定也有结果,我把标定文件放入launch中写的全路径,但是提示找不到标定或者和打不开标定文件。
[ INF ...

单目的标定文件,您应该参考这个。
http://library.isr.ist.utl.pt/docs/roswiki/camera_calibration(2f)Tutorials(2f)MonocularCalibration.html
作者: 孤云独去闲    时间: 2021-4-15 10:47
OK,看到了,谢谢,再问一下,现在提示没有指定畸变模型,我现在github也打不开,没有办法看到ros  sensor_msg的源码,能给说一下,在标定文档中:鱼眼相机的筒形畸变应该怎么定义呢?
解析标定文档的代码立:
// Different distortion models may have different numbers of parameters
00133     if (const YAML::Node* model_node = doc.FindValue(DMODEL_YML_NAME)) {
00134       *model_node >> cam_info.distortion_model;
00135     }
00136     else {
00137       // Assume plumb bob for backwards compatibility
00138       cam_info.distortion_model = sensor_msgs::distortion_models:LUMB_BOB;
00139       ROS_WARN("Camera calibration file did not specify distortion model, assuming plumb bob");
00140     }
作者: 孤云独去闲    时间: 2021-4-15 11:10
OK,谢谢啦。warn提示没有指定畸变类型。我现在打不开github,没有办法看到ros sensor_mags的源码。能告诉我一下在标定文档中,鱼眼相机的桶形畸变应该怎么设定么?
作者: 孤云独去闲    时间: 2021-4-15 11:31
这个破网络,千呼万唤终于打开github了。源码就定义了三种畸变模型

  1. #ifndef SENSOR_MSGS_DISTORTION_MODELS_H
  2. #define SENSOR_MSGS_DISTORTION_MODELS_H

  3. #include <string>

  4. namespace sensor_msgs
  5. {
  6.   namespace distortion_models
  7.   {
  8.     const std::string PLUMB_BOB = "plumb_bob";
  9.     const std::string RATIONAL_POLYNOMIAL = "rational_polynomial";
  10.     const std::string EQUIDISTANT = "equidistant";
  11.   }
  12. }

  13. #endif
复制代码


miivii_gmsl_camera 解析了标定文档之后,输出的image是原始数据还是矫正后的数据?

作者: Hcheng    时间: 2021-4-15 11:36
孤云独去闲 发表于 2021-4-15 11:31
这个破网络,千呼万唤终于打开github了。源码就定义了三种畸变模型

是原始数据的。
这个其实是符合ROS对camera节点定义的。
Camera节点作为底层驱动节点,对外只publish相机原始数据,和相机的标定参数。
这个节点只是把对应的标定参数publish出来。

具体使用都是在应用端进行的。可以参考一下ros的camera这一章。
http://wiki.ros.org/Sensors/Cameras
作者: 孤云独去闲    时间: 2021-4-15 11:41
Hcheng 发表于 2021-4-15 11:36
是原始数据的。
这个其实是符合ROS对camera节点定义的。
Camera节点作为底层驱动节点,对外只publish相机 ...

了解了,谢谢啦!!!




欢迎光临 米文动力开发者社区 (https://forum.miivii.com/) Powered by Discuz! X3.4