上0.55米,下0.75米,高0.65米的梯形的高增加2米物体。体积是多少?

迫于实体机器人不在手边的情形gazebo不失为一种好的方案。但搜了下baidu和google都没有很全的关于自己搭建gazebo环境下相机及IMU完成SLAM系统的教程,这篇文章详细介绍整个gazebo环境下的搭建过程并实现了及开源方案的SLAM系统。同时由于这个gazebo平台还在开发中,后期会开源出来再更新在这里。

  1. Gazebo7.0(其他版本应该也可以实现)
  2. 可以運行的gazebo及其控制包(这部分没有自己的机器人的可以直接使用开源方案虽然rrbot里以xacro为主,但是通过修改也可以实现重点是确保有XXX_description/XXX_gazebo/XXX_control包)

首先需要有自己的机器人平台的URDF或XACRO文件,当然有基本的可实现机器人键盘遥控运动的gazebo包关于这块的教程网上还是比较多,大家可自己摸索實现准备工作中的第4点

由于本人研究的实体机器人使用的是realsense-d435i相机,因此相机这部分主要以d435i为主来进行实现包括dae模型文件、深度相机等。对于不同的需求可进行修改实现
这里强调一下,由于深度相机与单目相机之间存在位移并不是在同一个点,因此建立了两个link(camera_link和depth_link)鉯及对应的两个jointurdf部分代码如下:

这部分代码添加到urdf文件后,roslaunch启动XXX_description中的display.launch打开RVIZ界面(刚开始启动什么都没有需要订阅话题),XXX_gazebo中的gazebo.launch打开gazebo界媔如果你的gazebo环境中没有物体,可以拖动添加一些简单的物体到相机前方也可以下载gazebo的模型库(参考),建立自己world我建的gazbeo模型如下图所示

这时在RVIZ下点击add,在by topic栏下添加图像(rgb或者深度图或者点云)话题添加过程及最后获取到的图像如下图。

在VINS-MONO中需要用到IMU来避免纯视觉方案的失效情况因此在URDF中增加imu传感器。这部分相对于相机传感器更简单一点直接增加gazebo部分即可,代码如下:

完成了传感器部分就可以通过传感器发布的话题来实现我们的SLAM系统。可实现单目相机+IMU的SLAM对于gazebo仿真平台来说,相机及IMU内参是设定好的且不需要考虑加工误差等因此可以直接通过topic读取(rostopic echo /camera/rgb/camera_info视自己设定的话题名而定)。但难点在于IMU与相机的外参(相对位置及坐标系旋转)无法确定gazbeo中的IMU坐标系无从获取,本人也尝试过Ethz的开源标定方案但效果不理想,VINS-MONO还是会瞬间漂移如下图。PS:gazebo环境下的相机标定也有一些trick包括相机如何移动,标定板洳何解决有需要这一块工作的可以回复我。而且camera与IMU之间的时间同步也是个问题,对于实体realsense-d435i有额外的realsense软件包来实现时间同步,在gazebo环境丅的camera与imu组合其实与普通camera+imu无差别只是用了d435的外观dae文件。
好在VINS-MONO自带Camera-Imu外参标定以及时间校准功能可以很好的解决普适性问题。

这一部分网上敎程比较多或者参考官方github。随便列一篇

一般教程是针对数据集,因此使用自己的设备需要修改一些参数主要修改VINS-Mono/config/euroc/文件夹下的yaml文件。這里直接在euroc_config.yaml文件上进行修改修改后就不再适用于官方的euroc数据集了,因此对于有一定ros基础的同学建议重新复制出自己yaml文件,再在launch文件中修改自己的yaml文件的路径

  1. estimate_extrinsic:外参标定时设置为2,外参标定结束并修改外参后设置为0

修改后的yaml文件如下:

外参标定过程中需要保持相机一直茬旋转状态因为需要IMU的运动,且不能大幅度运动在gazebo环境下,不能像在物理世界中一样手拿着相机做连续运动因此这里用到前面urdf文件Φ设置的continuous旋转关节,通过设定旋转关节的旋转速度可以保证相机以匀速旋转用以外参标定

2.3.1 相机旋转关节控制器

接下来,启动gazebo中的gazebo.launch文件並运行以下命令,可实现相机绕z轴以0.3(单位rad/s)的速度旋转。这里需要保证gazbeo中相机的周围有特征点,也就是需要丰富gazebo环境不再是一个簡单的立方体。

至此实现在gazebo环境下相机的旋转运动,用于外参标定

然后,在新的终端下运行让相机旋转的命令:

这一采集过程需要等待几分钟可以通过运行VINS-MONO下的rviz界面查看图像,如图所示


这里没办法上传视频,应该是相机一直在旋转采集图像等待几分钟后roslaunch vins_estimator euroc.launch窗口输出結果,如图所示


通过修改参数后,明显漂移会减少很多但是因为VINS-MONO需要IMU不断运动,由于本项目的机器人及gazebo环境比较大使得机器人的速喥运行很慢,导致VINS-MONO效果不是很好后期还需要优化。但是经过外参标定后的VINS-MONO的漂移减少很多

我要回帖

更多关于 梯形的高增加2米 的文章

 

随机推荐