免费网站空间有哪些,企业网站建设递进发展趋势,大专学广告设计有用吗,上海市建设安全协会成绩查询的网站在gazebo里搭建一个livox mid360  惯导仿真平台测试 FAST-LIO2 前言立方体平台加入 livox mid360 激光雷达加入IMU模块调整底盘大小 并设计调用接口测试 Fast-Lio2 前言 
livox mid360 在官网一直没有货#xff0c;在gazebo里可以仿真该雷达形式的点云。 
但是其只发布雷达的数… 在gazebo里搭建一个livox mid360  惯导仿真平台测试 FAST-LIO2 前言立方体平台加入 livox mid360 激光雷达加入IMU模块调整底盘大小 并设计调用接口测试 Fast-Lio2 前言 
livox mid360 在官网一直没有货在gazebo里可以仿真该雷达形式的点云。 
但是其只发布雷达的数据没有imu数据实际的雷达是可以发布既有雷达也有imu的数据的 
运行 FAST-LIO2 也需要雷达和惯导的数据 
本篇博客在gazebo中搭建了一个有livox mid360 和惯导的平台并成功运行了FAST-LIO2 
立方体平台 
先做一个最简单的立方体平台用来放livox mid360 和惯导 
编写一个xacro文件如下 
?xml version1.0?
robot xmlns:xacrohttp://www.ros.org/wiki/xacro nameexample!-- Base Footprint --link namebase_footprint /!-- Base Link --joint namefootprint typefixed parent linkbase_footprint /child linklink_platform /origin xyz0 0 0.05 rpy0 0 0 //jointlink namelink_platform visualgeometrybox size0.5 0.5 0.1 //geometry/visualcollisiongeometrybox size0.5 0.5 0.1 //geometry/collisioninertialorigin xyz0 0 0/mass value0.01/inertia ixx0.001 ixy0.0 ixz0.0iyy0.001 iyz0.0 izz0.001 //inertial/link/robot写一个launch文件来启动它加载到gazebo和rivz中 
?xml version1.0 ?
launcharg namepaused defaultfalse/arg nameuse_sim_time defaulttrue/arg namegui defaulttrue/arg nameheadless defaultfalse/arg namedebug defaultfalse/arg nameverbose defaultfalse/!-- Start gazebo and load the world --include file$(find gazebo_ros)/launch/empty_world.launch arg namepaused value$(arg paused)/arg nameuse_sim_time value$(arg use_sim_time)/arg namegui value$(arg gui)/arg nameheadless value$(arg headless)/arg namedebug value$(arg debug)/arg nameverbose value$(arg verbose)//include
!-- Spawn the platform --param namerobot_description command$(find xacro)/xacro --inorder $(find livox_laser_simulation)/urdf/mid360_IMU_platform.xacro  /node pkggazebo_ros typespawn_model namespawn_model args-urdf -param /robot_description -model example/node pkgrobot_state_publisher typerobot_state_publisher namerobot_state_publisherparam namepublish_frequency typedouble value30.0 //node!-- RViz --arg namerviz defaulttrue/node if$(arg rviz) pkgrviz typerviz name$(anon rviz) respawnfalse outputscreen args-d $(find livox_laser_simulation)/rviz/mid360_IMU_platform.rviz //launch启动 
roslaunch livox_laser_simulation mid360_IMU_platform.launchgazebo 和rviz 中会出现下面的立方体具体的尺寸和颜色可以最后再根据雷达和惯导再调整  
加入 livox mid360 激光雷达 
下一步向平台上加入 livox mid360 激光雷达 放在平台的中心。 
向 livox_laser_simulation/urdf/mid360_IMU_platform.xacro 文件中加入下面代码 joint namelidar_platform typefixed parent linklink_platform /child linklivox_base /origin xyz0 0 0.08 rpy0 0 0 //jointxacro:include filename$(find livox_laser_simulation)/urdf/livox_mid360.xacro/xacro:Livox_Mid360 namelivox/再次启动launch文件即可看到平台中央多了livox mid360 雷达  确认雷达输出点云正常可向周围加入几个物体测试 点云正常 
加入IMU模块 
向平台中加入IMU模块放在雷达的前方一点 
向 livox_laser_simulation/urdf/mid360_IMU_platform.xacro 文件中加入下面代码 !--imu --link nameimu_base_linkvisualorigin xyz0 0 0 rpy0 0 0 /geometry box size0.03 0.03 0.03 //geometry/visualcollisionorigin xyz0 0 0 rpy0 0 0 /geometry box size0.03 0.03 0.03 //geometry/collision   inertialmass value0.001/inertia ixx0.001 ixy0.0 ixz0.0 iyy0.001 iyz0.0 izz0.001//inertial /linkgazebo referenceimu_base_linkmaterialGazebo/Green/materialturnGravityOfftrue/turnGravityOff/gazebojoint nameimu_platform_joint typefixedparent linklink_platform/child linkimu_base_link/origin xyz0.05 0 0.065 rpy0 0 0 /axis xyz0 0 1 //jointgazebo referenceimu_base_linkgravitytrue/gravitysensor nameimu_sensor typeimualways_ontrue/always_onupdate_rate200/update_ratevisualizetrue/visualizetopic/livox/imu/topicplugin filenamelibgazebo_ros_imu_sensor.so nameimu_plugintopicName/livox/imu/topicName         bodyNameimu_base_link/bodyNameupdateRateHZ200.0/updateRateHZ    gaussianNoise0.00329/gaussianNoise   xyzOffset0 0 0/xyzOffset     rpyOffset0 0 0/rpyOffsetframeNameimu_base_link/frameName        /pluginpose0 0 0 0 0 0/pose/sensor/gazebo再次启动launch文件即可看到平台中 的livox mid360 雷达 前多了一个绿色的小方块它即为刚建立惯导模型  通过rostopic 查看 惯导数据是否正常  数据正常 
调整底盘大小 并设计调用接口 
下一步需要调整底盘平台的大小能够放下雷达和惯导即可 
将底盘尺寸改为如下 
box size0.15 0.1 0.1 /回来平台的前方挂个双目也不错 
带有雷达和惯导的平台搭建完了 
但是这个平台无法运动也就完成不了建图如果运行需要将平台挂载到小车或者无人机上。 所以需要对这个平台设计好接口方便其它移动平台挂载。 
修改 livox_laser_simulation/urdf/mid360_IMU_platform.xacro 这个文件 
最后的文件如下 
?xml version1.0?
robot xmlns:xacrohttp://www.ros.org/wiki/xacro nameexample!-- Base Footprint --!-- link namebase_footprint / --xacro:macro nameLivoxMid360_IMU_Plantform paramsname:mid360_imu_plantform parent_link_name:base_link x:0.0 y:0.0 z:0.05 r:0.0 p:0.0 yaw:0.0joint name${name}_joint typefixed parent link${parent_link_name} /child linklink_platform /origin xyz${x} ${y} ${z} rpy${r} ${p} ${yaw} //joint!-- link_platform --link namelink_platform visualgeometrybox size0.15 0.1 0.1 //geometry/visualcollisiongeometrybox size0.15 0.1 0.1 //geometry/collisioninertialorigin xyz0 0 0/mass value0.001/inertia ixx0.001 ixy0.0 ixz0.0iyy0.001 iyz0.0 izz0.001 //inertial/linkgazebo referencelink_platformturnGravityOfffalse/turnGravityOff/gazebojoint namelidar_platform_joint typefixed parent linklink_platform /child linklivox_base /origin xyz0 0 0.08 rpy0 0 0 //joint!--lidar --xacro:include filename$(find livox_laser_simulation)/urdf/livox_mid360.xacro/xacro:Livox_Mid360 namelivox/!--imu --link nameimu_base_linkvisualorigin xyz0 0 0 rpy0 0 0 /geometry box size0.03 0.03 0.03 //geometry/visualcollisionorigin xyz0 0 0 rpy0 0 0 /geometry box size0.03 0.03 0.03 //geometry/collision  inertialmass value0.001/inertia ixx0.001 ixy0.0 ixz0.0 iyy0.001 iyz0.0 izz0.001//inertial/linkgazebo referenceimu_base_linkmaterialGazebo/Green/materialturnGravityOfffalse/turnGravityOff/gazebojoint nameimu_platform_joint typefixedparent linklink_platform/child linkimu_base_link/origin xyz0.05 0 0.065 rpy0 0 0 /axis xyz0 0 1 //jointgazebo referenceimu_base_linkgravitytrue/gravitysensor nameimu_sensor typeimualways_ontrue/always_onupdate_rate200/update_ratevisualizetrue/visualizetopic/livox/imu/topicplugin filenamelibgazebo_ros_imu_sensor.so nameimu_plugintopicName/livox/imu/topicName         bodyNameimu_base_link/bodyNameupdateRateHZ200.0/updateRateHZ    gaussianNoise0.00329/gaussianNoise   xyzOffset0 0 0/xyzOffset     rpyOffset0 0 0/rpyOffsetframeNameimu_base_link/frameName        /pluginpose0 0 0 0 0 0/pose/sensor/gazebo/xacro:macro/robot将其挂载到飞机上代码如下的几款雷达进行了仿真测试。 xacro:include filename$(find livox_laser_simulation)/urdf/mid360_IMU_platform.xacro/xacro:LivoxMid360_IMU_Plantform name mid360_imu_plantform parent_link_name${namespace}/base_link x0  y0 z0.08 r0  p0 yaw0 / 最终效果如下  
测试 Fast-Lio2 
用这个平台跑Fast-Lio2 还需要有一步就是修改雷达的仿真程序使其发送Livox的Custcom格式的点云这个方法会放到其它博客中 
调通后用其跑Fast-Lio2 效果如下