velo2cam_gazebo /velo2cam_calibration 仿真标定测试

1、下载velocam_gazebo /calibration 项目源码
github网址:
https://github.com/beltransen/velo2cam_gazebo
https://github.com/beltransen/velo2cam_calibration/issues

速度慢或者访问异常,推荐国内gitee、gitcode 镜像;

2、编译平台及要求

ros notic opencv 3.4.15  opencv_contrib(3.4.15) opencv_app
推荐源码编译安装

catkin_ws/src 下编译启用;

3、编译异常处理:

1)、velo2cam_gazebo :

math::Pose pose; GitHub - beltransen/velo2cam_gazebo: Repository including Gazebo models, plugins and worlds to test calibration algorithms for Lidar-camera setups.中的issues#13,修改为#include <ignition/math/Vector3.hh>

ignition::math::Pose3d pose;和pose.Pos().X()

2)、编译后加载仿真模型:

roslaunch velo2cam_gazebo mono_hdl64_p1_real.launch gui:=true
模型强面、地板不正常,雷达及相机未找到;
(1)、github下载 .gazebo model;(2)、所有_spawn.urdf.xacro 模型文件中添加xacro:作用域符

  <xacro:blackflys parent="base_footprint" name="$(arg cam_name)" hfov="$(arg hfov)" hz="$(arg hz)" noise="$(arg noise)">
    <origin xyz="$(arg xyz)" rpy="$(arg rpy)"/>
    <resolution>
          <width>2048</width>
          <height>1536</height>
    </resolution>
  </xacro:blackflys>

blackflys.urdf.xacro 文件中一样:

    <xacro:monocular_sensor name="${name}" hfov="${hfov}" hz="${hz}" noise="${noise}">
      <xacro:insert_block name="resolution" />
    </xacro:monocular_sensor>
    <gazebo reference="${name}_link">
      <static>true</static>
      <turnGravityOff>false</turnGravityOff>
    </gazebo>
  </xacro:macro>

其他velodyne_HDL64...等模型一样操作;

3)、velo2cam_calibration cmakelsit 设置C++17 编译标准

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -w ");

4)、PCL 1.12, 防止雷达点云分割失败;

5)、命令行

roslaunch velo2cam_calibration registration.launch sensor1_type:=mono sensor2_type:=lidar
roslaunch velo2cam_calibration mono_pattern.launch camera_name:=/blackflys image_topic:=image_raw frame_name:=blackflys

roslaunch velo2cam_calibration lidar_pattern.launch cloud_topic:=/hdl64_points

先让相机找到4个二维码maker,估算标定板圆心;

再调整雷达点云图 rosrun rqt_reconfigure rqt_reconfigure

使得雷达点云,只有标定板以及透过板映射在强上的四个圆;

6)、反复调整第5)步中,步骤,直至roslaunch velo2cam_calibration registration.launch sensor1_type:=mono sensor2_type:=lidar 命令行窗口启动标定;

<think>好的,我现在需要解决在Gazebo仿真环境中使用velo2cam插件时没有图像显示的问题。首先,我需要回顾用户提供的引用内容,特别是引用5提到的编译错误和修改方法。用户提到在Ubuntu 20.04上编译时遇到了与Gazebo版本更新相关的问题,比如GetSimTime()需要改为SimTime(),以及math命名空间的问题需要加上ignition::。这可能意味着插件代码需要适配新版本的Gazebo(比如Gazebo 11或更高),而旧的代码可能使用了过时的API。 首先,我应该检查Gazebo和ROS的版本是否兼容。用户使用的是Ubuntu 20.04,通常对应ROS Noetic和Gazebo 11。如果用户的环境配置正确,接下来需要确认插件是否正确编译,是否有错误或警告信息。根据引用5,可能需要修改代码中的函数调用,比如将GetSimTime()改为SimTime(),以及调整math相关的命名空间和函数调用方式,例如将math::Angle改为ignition::math::Angle,还有pose的访问方式,如pose.pos.x改为pose.Pos().X()。 另外,图像没有显示可能涉及到相机的配置是否正确。需要检查Gazebo模型中的相机传感器配置,例如话题名称是否与启动文件中的参数匹配。引用2提到启动命令中指定了cloud_topic:=/hdl64_points,可能图像的话题也需要正确设置,确保在RViz或相关工具中订阅的话题是正确的。 同时,引用4提到velo2cam_calibration可以与rviz结合使用,实时可视化标定结果。如果图像没有显示,可能需要检查rviz中的配置,确保相机的话题正确订阅,或者Gazebo中的相机是否正常发布了图像话题。例如,相机可能发布类似/camera/image_raw的话题,需要确认该话题是否存在,并且有数据发布。 此外,插件的日志输出也很重要。运行Gazebo时,查看终端是否有错误信息,特别是关于相机插件加载的问题。可能缺少依赖库,或者插件本身没有正确注册。如果插件编译时有警告或错误,可能会导致插件无法正常初始化,从而无法发布图像数据。 还有可能是仿真环境的设置问题,例如模型的位置或光照条件导致相机无法捕捉到有效图像。需要确保相机在Gazebo世界中正确放置,并且有足够的光源让相机传感器能够捕获图像。 最后,参考引用5中的修改步骤,用户可能需要按照类似的步骤调整相机插件中的代码,确保函数和命名空间与新版本的Gazebo兼容。例如,检查是否有类似的函数名变更或头文件路径的变化,并进行相应的修改。重新编译后,再次运行仿真,观察是否解决了图像显示的问题。</think>### Gazebovelo2cam插件无图像输出的解决方案 在Gazebo仿真环境中使用velo2cam插件时,若出现图像无法显示的问题,可按照以下步骤排查和修复: --- #### **1. 验证Gazebo版本与代码兼容性** - **问题原因**:Ubuntu 20.04默认安装Gazebo 11,而旧版插件可能使用已弃用的API(如`GetSimTime()`)[^5]。 - **解决方法**: - 修改函数调用:将`GetSimTime()`替换为`SimTime()`。 - 修正命名空间:将`math::`前缀改为`ignition::math::`,例如: ```cpp // 原代码 math::Angle angle; // 修改后 ignition::math::Angle angle; ``` - 调整`pose`访问方式:将`pose.pos.x`改为`pose.Pos().X()`[^5]。 --- #### **2. 检查相机话题与传感器配置** - **问题原因**:相机话题未正确发布或与ROS节点订阅话题不匹配。 - **解决方法**: - **步骤1**:在Gazebo模型文件中确认相机传感器的配置,例如: ```xml <sensor name="camera" type="camera"> <topic>camera/image_raw</topic> </sensor> ``` - **步骤2**:启动仿真时指定正确的话题参数: ```bash roslaunch velo2cam_calibration lidar_pattern.launch image_topic:=/camera/image_raw ``` - **步骤3**:在终端中验证话题是否存在: ```bash rostopic list | grep /camera/image_raw ``` --- #### **3. 调试插件日志与依赖** - **问题原因**:插件编译错误或依赖缺失导致功能异常。 - **解决方法**: - **重新编译插件**: ```bash cd ~/catkin_ws && catkin_make clean && catkin_make ``` - **查看Gazebo日志**: ```bash gazebo --verbose ``` 观察输出中是否有`velo2cam`插件的加载错误(如`Failed to load plugin`)。 --- #### **4. 验证仿真环境光照与模型位置** - **问题原因**:相机因环境过暗或朝向错误无法捕获图像。 - **解决方法**: - 在Gazebo中添加光源(如点光源或方向光)。 - 调整相机位置和角度,确保目标物体在视场内。 --- #### **5. 使用RVIZ可视化调试** - **步骤**: 1. 启动RVIZ: ```bash rosrun rviz rviz ``` 2. 添加`Image`显示插件,订阅话题`/camera/image_raw`。 3. 若仍无图像,检查Gazebo中相机是否正常激活(传感器数据频率是否非零)。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值