当前位置: 首页 > news >正文

Ubuntu20.04仿真 | iris四旋翼添加livox mid360激光雷达

申明:

1、本人使用的是Ubuntu20.04+ros1+gazebo+xtdrone+px4的仿真组合

2、下列仿真系列文章是为我个人对飞机的传感器需求进行配置,不同需要仅作参考

3、为了使传感器模型和飞机模型解耦合,实现不同平台对传感器可直接调用,本系列博文涉及的所有传感器均不直接添加在相应平台的sdf当中,而是通过编写xxx_joint.sdf的形式,将平台和传感器统一,可由launch文件直接拉起。

4、针对livox mid360的配置,由于目前livox官方和仿真之间的合作(?)并没有公开mid360的模型文件以及对应驱动,所以模型上只能魔改已有的mid40驱动则需下载后修改相应代码以通过编译

Ubuntu20.04仿真系列文章大合集:

Ubuntu20.04仿真 |iris四旋翼添加云台相机详述-CSDN博客

Ubuntu20.04仿真 | 云台相机可直接使用文件-CSDN博客

Ubuntu20.04仿真 | iris四旋翼添加双目相机D435i-CSDN博客

-------------------------------分割线以下为双目正文----------------------------------

后续提到的部分文件都在这个github库里,可以先下载了解压

https://github.com/ZTL0806/Livox-mid360-PX4-XTDrone-Faster-lio

此外本文参考了Livox-mid360+PX4+XTDrone+Faster-lio仿真_无人机livox雷达仿真-CSDN博客但对其进行了顺序调整,以及融入了上述解耦合的思想

一、安装驱动和仿真库

因为要使用mid360,所以驱动和sdk都需要下载“2”

cd ~/工作空间/src/
git clone https://github.com/Livox-SDK/livox_ros_driver2.git
git clone https://github.com/Livox-SDK/Livox-SDK2.gitcd ./Livox-SDK2/
mkdir build
cd build
cmake .. && make -j
sudo make installcd ../livox_ros_driver2
source /opt/ros/noetic/setup.sh
./build.sh ROS1

克隆好以后先不要执行两个编译代码,先找到livox_laser_simulation,把它移到其他文件夹中,不要放在当前工作空间,然后再build/make。因为我们需要的是livox_ros_driver2对应驱动,而livox_laser_simulation是根据driver1写的。

编译通过以后,开始修改livox_laser_simulation

把livox_laser_simulation放回原来的位置,重新执行以上编译,此时的报错就完全来源于livox_laser_simulation,根据报错信息,找到对应文件,把里面的livox_ros_driver全部加上“2”就行(头文件、声明等都要改

二、配置mid360实体模型

mid360的配置和上述链接中云台相机中的配置逻辑略有不同,cgo3是在原iris.sdf中引入云台转动所需的舵机接口即可,但是mid360涉及到雷达到无人机的接口,不完全像相机一样独立,所以用仿真库中自带的iris_3d_lidar文件夹中的sdf文件修改比较保险

1、添加mid模型

把iris_3d_lidar.sdf复制一份,命名为iris_mid.sdf

在iris_mid.sdf中检索,将以下代码的include和joint注释掉

<include><uri>model://3d_lidar</uri><pose>0 0 0.08 0 0 0</pose><joint name="lidar_joint" type="fixed">
...
</joint>

上述我参考的博客在此处直接添加了mid对应的模型,但我为了满足解耦合的需求,不会在此处添加(详见2.(5))

    <include><uri>model://Mid360</uri><pose>0 0 0.05 0 0 0</pose></include><joint name="lidar_joint" type="fixed"><child>Mid360::livox_base</child><parent>base_link</parent><axis><xyz>0 0 1</xyz><limit><upper>0</upper><lower>0</lower></limit></axis></joint>

2、添加mid360实例

在上述新添加的include中,可以看到有一个mid360文件夹,想要能够实际引入,还需要在仿真库的models中添加对应文件夹。(your_path to sitl_gazebo/models这个路径下)

(1)在models中新建Mid360文件夹,然后将上述提前下载的链接中同名文件夹下的所有内容复制进来

(2)在models中新建livox_mid40文件夹,同样将同名文件复制进来

(3)修改Mid360.sdf中的collision和visual索引的文件夹路径

<uri>model://livox_mid40/meshes/livox_mid40.dae</uri>
<uri>model://livox_mid40/meshes/mid360.dae</uri>

(4)修改<csv_file_name>路径

<csv_file_name>/home/byy/catkin_ws/src/livox_laser_simulation/scan_mode/mid360.csv</csv_file_name>

(5)编写飞机iris_mid.sdf和mid360的耦合sdf,将1中的mid360模型文件加入iris_mid_joint.sdf

详细可见系列文章:(博客还没写好hhh,这两天就会发布)

3、修改launch(我用的是empty world的单机仿真launch修改)中拉起的sdf为iris_mid_joint.sdf,如果配置成功的话,会看到

并且用rostopic中echo /scan、/imu_gazebo会有数据。具体话题名用list看一下

http://www.dtcms.com/a/390853.html

相关文章:

  • Linux进程终止
  • Go如何重塑现代软件开发的技术基因
  • 设计模式(C++)详解—外观模式(2)
  • 【ubuntu24.04】apt update失败 过期的签名清理
  • Go 语言常用算法库教学与实践指南
  • 基于FPGA的智能垃圾分类装置
  • 168. Excel 表列名称【简单】
  • Ubuntu20.04 6步安装ROS-Noetic
  • 基于 MATLAB 的双边滤波去图像云雾处理
  • 将一台已连接无线网络的 Windows 电脑通过网络线共享网络给另一台电脑
  • 复习1——TCP/IP之常用协议
  • 讲清楚 PagedAttention
  • 多对多依赖;有向无环图l;拓扑排序;DFS回溯输出全路径简述
  • 【序列晋升】37 Spring Data LDAP 跳出传统数据访问框架,掌握目录服务开发新范式
  • Redis三种服务架构
  • GPT-5 高并发文生图视频 API 架构实战指南
  • LLM赋能网络安全:六大应用场景的深度解析与前沿突破
  • 分布式链路追踪-SkyWalking
  • 第五篇:范围-Based for循环:更简洁、更安全地遍历容器
  • 京准科技NTP网络校时服务器实现分布式系统精准协同
  • Node.js 简介与历史演进
  • MMLU:衡量大语言模型多任务理解能力的黄金基准
  • Java NIO/AIO 异步 IO 原理与性能优化实践指南
  • ReactJS + AppSync + DynamoDB 项目结构与组件示例
  • adm显卡下使用gpu尝试
  • dante 安装与使用
  • STL-常用算法
  • 百度网盘SVIP148以内到手
  • Unreal Engine 4.27 + AirSim 无人机仿真环境搭建:澳大利亚农村场景更换教程
  • 【硬件-笔试面试题-101】硬件/电子工程师,笔试面试题(知识点:讲一讲CAN收发器,及如何选型)