【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仿真建图xtdronehttps://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 d435ihttps://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
至此,两个模块就安装完成,我们安装完成后就可以开始我们的各种仿真操作了。