> 技术文档 > 【gazebo无人机仿真】3、mid360雷达和d345i相机仿真

【gazebo无人机仿真】3、mid360雷达和d345i相机仿真

实验环境:ubuntu20 + ros1 +px4

请先参考上篇博客建好的sdf文件

三、mid360雷达和d345i相机仿真

1、mid360雷达传感器安装

1.1参考博客,先向这位博主学习任何把mid360环境搭配好

Livox-mid360+PX4+XTDrone+Faster-lio仿真_fastlio仿真建图xtdrone-CSDN博客文章浏览阅读1.4k次,点赞32次,收藏39次。Livox-mid360-PX4-XTDrone-Faster-lio仿真_fastlio仿真建图xtdrone https://blog.csdn.net/qq_64931749/article/details/147287340?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522bc3dddc00dae11ea84383a693d07fb42%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=bc3dddc00dae11ea84383a693d07fb42&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-147287340-null-null.142%5Ev102%5Epc_search_result_base6&utm_term=%20px4mid360&spm=1018.2226.3001.4187我们可以按照这位博主博客的办法直接添加传感器到无人机上,但他用的是iris模型,而不是自己的模型,我们自己已经在solidworks建好mid360可以直接如下处理

  0 0 0 0 0 0  -0.000225895985044744 -2.48539042069229E-07 -0.0356306802252529 0 0 0 0.126556231362929  3.65033273726769E-05 -9.06996386175696E-11 3.04767232794276E-07 3.97162828413759E-05 1.45228125953335E-10 5.81891052137894E-05    0 0 0 0 0 0   1 1 1 model://uav/meshes/lidar_link.STL     0 0 0 0 0 0   1 1 1 model://uav/meshes/lidar_link.STL     1 10 1     100 1 0 6.28   360 1 -0.0561995544444  0.981223276667    0.1 30 0.02   gaussian 0.0 0.0   laser_livox_link 1 24000 1 /home/tuxuan/A-Program/tx_ws/src/livox_laser_simulation/scan_mode/mid360.csv /scan  0 0 0 0 0 0  1  

直接在lidar_link里面加入sensor模块,模块里面的具体参数可以参考这位博主的mid360仿真,注意sensor模块里面的pose,如果雷达显示方向不对,可以通过修改它进行坐标变化。你之前要是没把lidar模块单度拆开也可以参考我下面相机的办法直接引用。

1.2引用lidar模块后别忘记在你的sdf里面添加gazebo的imu仿真,有利于雷达为自身定位

  model://imu_gazebo 0 0 -0.05 0 0 0   imu_gazebo::link imu_link  0 0 1  0 0    

加入到sdf模型末尾即可,可适当进行修改imu传感器的位置

imu_gazebo的sdf文件如下,自行添加到model即可

   0 0 0 0 0 0  1e-5  1e-5 1e-5 1e-5    true link 500 true imu_gazebo  imu_gazebo imu_link_stereo 500.0 0.0 0 0 0 0 0 0 imu_link_stereo 0.0006 0.000003 0.03 0.002 0.00002 0.1  0 0 0.3 0 0 0   

2、d345i相机模块安装。

参考博客

PX4 + D435i 进行gazebo仿真_gazebo egoplanner d435i-CSDN博客文章浏览阅读809次,点赞22次,收藏21次。本文详细介绍了在Gazebo仿真环境中为无人机添加D435i相机模块的过程_gazebo egoplanner d435i https://blog.csdn.net/davidson1471/article/details/148428545?ops_request_misc=%257B%2522request%255Fid%2522%253A%25221a422395546b9ed957ef4ab0d2ad3a65%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=1a422395546b9ed957ef4ab0d2ad3a65&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~time_text~default-1-148428545-null-null.142^v102^pc_search_result_base6&utm_term=d345i%20sdf&spm=1018.2226.3001.4187同理,我们像他一样拿到d345i模型后可以直接引用,但是由于我们自己的solidwork模型上已经有d345i的模型,所以我们仍然需要修改。我们可以在末尾一样先直接引用,只修改这个joint,让它出现在你之前的相机坐标系附近。

  model://D435i 0 0 0 0 0 0   0 0 0 0 0 1.5708 D435i::camera_link camera_link  0 0 1  0 0 0 0   0 0  1   

这时候你会发现有两个相机,大概率没有重合,我们这时候就需要先在模型文件里查看相机的长宽高,然后通过修改joint里面的pose来旋转和位移相机模型,使两个相重合后,再删除新相机模型里面的物理属性,使它就有一个传感器功能在你的原相机上面。我们之前未单独拿出相机模型的话,也可以直接从base_link的坐标进行坐标变换加入该插件,雷达同理用这个办法。

下面是我修改d345i后的代码,可提供参考。

    <!-- 0.0015 --> 1e-05  1e-05 0 0 1e-05 0 1e-05   0 0 1  0 0 0 0 0 0   0.02505 0.090 0.025   <!--     0.001  0       -->    0 0 0 0 0 0  0 0 0 0 -0 0 1e-05  1e-05 0 0 1e-05 0 1e-05    true 100 true __default_topic__   /camera/imu imu_link 100.0 0.0 0 0 0 0 0 0 imu_link false     imu_link camera_link  1 0 0  0 0 0 0   0 0  1    0.0325 0 0 3.14 -1.57 1.57  0 0 0 0 -0 0 1e-05  1e-05 0 0 1e-05 0 1e-05     1.211  640 480 RGB_INT8   0.1 100   gaussian 0.0 0.007   1 30 1    camera_color_frame camera_link  1 0 0  0 0 0 0   0 0  1    0.02 0 0 3.14 -1.57 1.57  0 0 0 0 -0 0 1e-05  1e-05 0 0 1e-05 0 1e-05     1.571  640 480 L_INT8   0.1 100   gaussian 0.0 0.007   1 30 0    camera_ired1_frame camera_link  1 0 0  0 0 0 0   0 0  1    -0.03 0 0 3.14 -1.57 1.57  0 0 0 0 -0 0 1e-05  1e-05 0 0 1e-05 0 1e-05     1.571  640 480 L_INT8   0.1 100   gaussian 0.0 0.007   1 30 0    camera_ired2_frame camera_link  1 0 0  0 0 0 0   0 0  1    0.0325 0 0 3.14 -1.57 1.57  0 0 0 0 -0 0 1e-05  1e-05 0 0 1e-05 0 1e-05     1.571  640 480   0.1 100   gaussian 0.0 0.007   1 30 0    camera_depth_frame camera_link  1 0 0  0 0 0 0   0 0  1    30 30 30 depth/image_raw depth/camera_info color/image_raw color/camera_info infra1/image_raw infra1/camera_info infra2/image_raw infra2/camera_info camera_color_frame camera_depth_frame camera_ired1_frame camera_ired2_frame 0.2 10.0 false depth/color/points 0.25 9.0  

至此,两个模块就安装完成,我们安装完成后就可以开始我们的各种仿真操作了。