PX4在GAZEBO仿真中加载iris模型问题

2023-05-16

目录

  • 1. PX4启动仿真的launch系列文件
    • 1.1 单个launch文件解读
    • 1.2 对iris模型添加相机
    • 1.3 ~/.bashrc环境变量问题
  • 2. 一些Bug
    • 2.1 我的台式机无法加载模型
      • 2.1.1 若使用`v1.9.2版本`
      • 2.1.2 若使用`v1.12.3版本`
    • 2.2 gazebo无法打开


1. PX4启动仿真的launch系列文件

1.1 单个launch文件解读

打开每个文件的开头,都有对它功能的描述。

  • px4.launch

Posix SITL PX4 launch script
Launches Only PX4 SITL. This can be used by external projects
加载px4_sitl仿真的节点

  • posix_sitl.launch

Posix SITL environment launch script
launches PX4 SITL, Gazebo environment, and spawns vehicle
px4.launch基础上,打开GAZEBO环境并使用spawn_model加载sdf格式的飞机模型

  • mavros_posix_sitl.launch

posix_sitl.launch基础上,加入mavros package里的px4.launch(注意不是px4下的px4.launch)。
即开启了sitl仿真后,飞机信息通过mavros来传递交互。那么交互的端口号fcu_url即飞机端udp端口由<arg name="fcu_url" default="udp://:14540@localhost:14557"/>确定。这个参数主要是为传入mavros使用。

  • single_vehicle_spawn.launch

Posix SITL environment launch script
launchs PX4 SITL and spawns vehicle
打开sitl节点,以及使用xacro加载urdf格式的飞机模型。注意加载模型有urdf和上述sdf两种方式。后文会对两种方式详细比较。

  • multi_uav_mavros_sitl.launch

是由前面几个launch文件中的部分内容拼接并且改编的。

  1. 模型的生成方式,调用了single_vehicle_spawn.launch,并传入不同的mavlink_udp_portmavlink_tcp_port用于不同飞机mavlink连接。
  2. 每架飞机的mavros传入不同的fcu_urltgt_system参数,便于启动不同的mavros
  3. 补充:gcs_url是指地面站端口,而我们在仿真中一般用不到地面站。
  4. 关于udp端口的含义可以参照PX4官网,也可以参照这篇博客PX4仿真中的UDP端口匹配
  5. 提示:使用group ns的方式可以为包含的节点创建前缀名,用来区分每架飞机的节点和话题。
  • 新版本的PX4-Autopilot还增加了一些launch文件,主要是区分了urdfsdf两种模型生成方式
  • single_vehicle_spawn_sdf.launch指明了用后缀名.sdf模型生成。
  • single_vehicle_spawn_xacro.launch指明了用后缀名.xacro模型生成。

在v1.12.3版本中PX4-Autopilot/Tools/sitl_gazebo/models/下的模型中,凡是model.sdf文件都多了model.sdf.jinja,model.sdf.last_generated文件。
而之前采用URDF文件生成,一般都是调用PX4-Autopilot/Tools/sitl_gazebo/models/rotors_descirptioniris_base.xacro。目前v1.12.3版本已经没有这个rotors_descirption文件夹了,也就是说px4开始全面转向sdf格式的模型。
【注】经过ubuntu18.04+gazebo9对sdf文件生成模型测试,会出现gazebo无法加载的情况,目前可用于仿真仍然是xacro格式的模型。该问题待更新


1.2 对iris模型添加相机

由上文所述,目前通过改xacro文件可以加载模型,不要通过简单地修改<arg name="vehicle" value="iris_fpv_cam">来试图给iris添加相机。因为最终它会调用rotors_descirptioniris_base.xacro来加载解析。而当vehicle = iris_fpv_cam时,他会去寻找iris_fpv_cam_base.xacro,然而这个文件是没有的。
最粗暴的方式是直接修改iris_base.xacro文件,为它添加相机组件。参照博客gazebo中为Px4安装单目相机

如果直接想使用现成的模型,建议typhoon h480(六旋翼飞机带云台相机)


1.3 ~/.bashrc环境变量问题

如果不能运行,可能是环境变量的问题,
参照之前我的博客Ubuntu18.04安装PX4并与ROS联合实验 这一部分

这是我的~/.bashrc,请根据自己的系统路径修改:


2. 一些Bug

2.1 我的台式机无法加载模型

2.1.1 若使用v1.9.2版本

总会出现

[INFO] [1633444976.357504, 0.000000]: Loading model XML from file /home/wzy/src/PX4-Autopilot/Tools/sitl_gazebo/models/iris/iris.sdf
[INFO] [1633444976.362299, 0.000000]: Waiting for service /gazebo/spawn_sdf_model
[ INFO] [1633444977.225659845]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1633444977.249643142, 0.020000000]: Physics dynamic reconfigure ready.
[INFO] [1633444977.266593, 0.000000]: Calling service /gazebo/spawn_sdf_model
[INFO] [1633444977.463774, 0.204000]: Spawn status: SpawnModel: Successfully spawned entity
gzserver: symbol lookup error: /home/wzy/src/PX4-Autopilot/build/px4_sitl_default/build_gazebo/libgazebo_multirotor_base_plugin.so: undefined symbol: _ZN8mav_msgs4msgs10MotorSpeedC1Ev

曾经花了很多努力,也以失败告终

2.1.2 若使用v1.12.3版本

[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[INFO] [1633502837.816712, 0.010000]: Spawn status: SpawnModel: Successfully spawned entity
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[libprotobuf ERROR …/…/src/google/protobuf/descriptor_database.cc:57] File already exists in database: Imu.proto
[libprotobuf FATAL …/…/src/google/protobuf/descriptor.cc:1164] CHECK failed: generated_database_->Add(encoded_file_descriptor, size):
terminate called after throwing an instance of ‘google::protobuf::FatalException’
what(): CHECK failed: generated_database_->Add(encoded_file_descriptor, size):

经问题排查,是protobuf不能链接静态库(或者动态库)导致的。由于ros-melodic-gazebo-ros依赖于libgazebo9-dev,而安装sudo apt-get install libgazebo9-dev会自动安装依赖libprotobuf-dev,所以不可避免地要安装二进制版本libprotobuf-dev。想通过源码编译解决protobuf的问题不太可能。


2.2 gazebo无法打开

若遇到终端输入 gazebo 没有反应,gazebo --verbose可以看到详细的输出,一般是端口占用问题。
通过改变端口号 export GAZEBO_MASTER_URI=http://localhost:11348可以解决。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PX4在GAZEBO仿真中加载iris模型问题 的相关文章

  • PX4模块设计之十八:Logger模块

    PX4模块设计之十八 xff1a Logger模块 1 Logger模块简介2 模块入口函数2 1 主入口logger main2 2 自定义子命令Logger custom command2 3 日志主题uORB注册 3 重要实现函数3
  • PX4模块设计之二十一:uORB消息管理模块

    PX4模块设计之二十一 xff1a uORB消息管理模块 1 uORB模块构建模式2 uORB消息管理函数2 1 状态查询2 2 资源利用2 3 模块启动2 4 模块停止3 uORB消息接口3 1 消息主题注册3 2 消息主题去注册3 3
  • PX4模块设计之三十一:ManualControl模块

    PX4模块设计之三十一 xff1a ManualControl模块 1 ManualControl模块简介2 模块入口函数2 1 主入口manual control main2 2 自定义子命令custom command 3 Manual
  • PX4模块设计之三十六:MulticopterPositionControl模块

    PX4模块设计之三十六 xff1a MulticopterPositionControl模块 1 MulticopterPositionControl模块简介2 模块入口函数2 1 主入口mc pos control main2 2 自定义
  • PX4模块设计之四十六:dataman模块

    PX4模块设计之四十六 xff1a dataman模块 1 dataman模块简介2 模块入口函数dataman main3 dataman模块重要函数3 1 start3 2 stop3 3 status3 4 task main 4 A
  • 6.28-机器人模拟器Gazebo基础

    gazebo基础学习 前言 在算法人员开发出可以真机使用的算法之前进行仿真学习机器人物理仿真器的基本使用 xff0c 包括创建场景 xff0c 制作ROS控制接口等 目录 gazebo基础学习 前言 目录 参考 学习记录 基础 安装gaze
  • px4_simple_example和uorb机制

    px4 simple app PX4 Autopilot src exampes px4 simple app xff0c 这个程序是用c语言调用orb API和poll机制订阅和发布通讯数据 xff0c 但是这个例子并不是既有接收又有发送
  • rviz更改机器人位置,不考虑gazebo环境。

    文章目录 问题描述解决方案 问题描述 在RVIZ中想要去更改机器人模型位置 xff0c 但不想考虑gazebo的各种因素 xff0c 只想通过别人给的数据流去实时更改机器人在rviz中的位置 解决方案 首先 xff0c 先将原理弄清楚 在R
  • Px4源码框架结构图

    此篇blog的目的是对px4工程有一个整体认识 xff0c 对各个信号的流向有个了解 xff0c 以及控制算法采用的控制框架 PX4自动驾驶仪软件 可分为三大部分 xff1a 实时操作系统 中间件和飞行控制栈 1 NuttX实时操作系统 提
  • gazebo 中创建含有二维码的墙的模型

    1 新建空白墙的模型 在gazebo中添加一个Edit gt Building Editor xff0c 生成sdf文件 xff0c 放在 gazebo models文件夹下 如图Untitled1 编辑model sdf文件 xff0c
  • ROS Moveit:rviz和gazebo仿真出现rviz规划后gazebo没有反应

    在用rviz规划后 xff0c 警告 WARN 1649654675 728414350 42 937000000 Failed to validate trajectory couldn 39 t receive full current
  • gazebo仿真之xacro文件

    span class token operator lt span span class token operator span xml version span class token operator 61 span span clas
  • PX4——Range Finder 篇

    Range Finder 此处选用的是 Benewake 下的 Lidar 参数设置 General Configuration 除了官方的参数设置外 xff0c 我在 EKF2 中还找到了 EKF2 RNG AID 参数 xff0c 用来
  • Gazebo显示加载xacro模型文件---改变模型的颜色注意事项

    在xacro文件中 xff0c 有下列语句是修改模型颜色的 xff1a 例 xff1a lt link name 61 34 base link 34 gt lt visual gt lt geometry gt lt box size 6
  • PX4项目学习::(五)模块代码启动流程

    54条消息 PX4 模块代码启动流程 zhao23333的博客 CSDN博客
  • Gazebo Plugins教程

    Overview of Gazebo plugins Gazebo插件通过标准C 43 43 类直接控制Gazebo模型 xff0c 其具有以下优点 可以控制gazebo中几乎各个方面 xff1b 容易共享 xff1b 能够在运行的系统中插
  • gazebo仿真 机械臂抓取和放置 使用ros_control插件

    仿真截图 rqtgraph ROS Control教程官方 http gazebosim org tutorials tut ros control 下图概述了仿真 硬件 控制器和传输之间的关系 图片分 gazebo仿真 和真实硬件两部分
  • gazebo仿真与ros控制器学习

    gazebo是一个功能强大的模拟器 尤其适合机器人的运动和控制模拟 但也存在很多bug 官方学习地址 http gazebosim org tutorials 包括了所有的教程 从初级中级到高级 也可以按照分类进行学习 这里主要讲与ros控
  • gazebo通过sdf搭建仿真环境和机器人Husky

    具体格式要求可参考 http sdformat org spec ver 1 6 elem sdf
  • Exception sending a multicast message:Network is unreachable故障

    出现这个故障就是没有连接到网络 如果虚拟机没有连接到本机 那么就会出现这个情况 当虚拟机连接到本机就会自动消失 同时如果是用电脑直接安装Ubuntu运行也会出现这个情况 应该是要连接到一个路由器里面这个情况才会消失

随机推荐

  • 回到Zookeeper

    回到Zookeeper 1 藕花深处 平时会花时间学习Redis RocketMQ Motan Dubbo xff0c Kafka等中间件 xff0c 它们各有各的概念 xff0c 各有各的用途 我自认为自己在编程学习上并没有什么天分 xf
  • ChatGPT帮我实现LRU

    1 内存受限 不知道从什么时候开始 xff0c 什么东西都有了限制 xff0c 一个咖啡杯只能装下500ml水 xff0c 一块新买的内存也被标好了容量 xff0c 姑娘的心里再装不下另一个人 xff0c 我开始怀疑有什么东西是可以无限的
  • ACK 与外星文明进行交流

    一段故事 在 三体 第三部中 xff0c 蓝色空间号和万有引力号上的船员从三维空间进入四维空间 xff0c 看到了宏伟的四维建筑 xff0c 并与它们进行了交流 让我们来看一段原文 按照计划 xff0c 卓文用中频电波发送了一个问候语 这是
  • 预写日志 做一个靠谱的男人

    书接上回 我们在之前的一篇文章 ACK 与外星文明交流 中针对一个问题 两个节点之间的通信不可靠 提出了ack的解决方案 现在 我们为了消息能原子性和持久性的落盘 也面临一个问题 假如一条要写入磁盘的信息写到一半 xff0c 机器崩溃了怎么
  • 下载任意版本vmware对应的vmware tools

    参考博客 xff1a https baijiahao baidu com s id 61 1636060669707508136 amp wfr 61 spider amp for 61 pc 网址 xff1a http softwareu
  • 荣耀 MagicBook Pro 加装固态硬盘

    电脑于2019年10月1日在华为天猫官方商城抢购 xff0c 6099 机器配置 xff1a 咨询华为商城的客服 xff0c 得到的回复 xff1a 荣耀 MagicBook Pro 最大可以扩展 HDD 2TB xff0c 可以更换 SS
  • linux下usb无线网卡对比

    2021年12月23日 冬月二十 xff0c 天晴 xff0c 微风 一 使用场景 1 xff0c 由于软件开发需要用到linux系统 xff0c 嵌入式设备nvidia xavier没有无线网卡 xff0c 需要自购 2 xff0c 另外
  • 树莓派安装花生壳软件 phddns ,没有显示SN码

    树莓派型号 xff1a Pi4B 2G 树莓派系统版本 xff1a uname a Linux raspberrypi 5 10 103 v7l 43 1529 SMP Tue Mar 8 12 24 00 GMT 2022 armv7l
  • mavros订阅PX4的定高激光以及悬停油门估计数据

    借用已有的Altitude这个话题发布定高数据和基础油门估计 备注 xff1a v 1 11 3之后的PX4固件才加入了基础油门估计 在src modules mavlink mavlink messages cpp的class Mavli
  • E: Could not get lock /var/lib/dpkg/lock

    ubuntu安装软件时 xff0c 经常出现下面错误 xff1a sudo apt get install E Could not get lock var lib dpkg lock open 11 Resource temporaril
  • shell 脚本常用命令,音频提取、格式转换、切割

    实现一下功能 xff1a 1 xff0c mp4 视频文件提取 wav xff0c pcm xff1b 2 xff0c wav 切割为每段30s 的音频 xff1b 3 xff0c wav 切割后的音频转换为 pcm xff0c ffmpe
  • windows7下cmd窗口使用ssh登录服务器(云、本地)

    windows7下cmd窗口使用ssh命令 xff1a xff08 百度经验 xff09 https www baidu com link url 61 ZwN3UgM b6ZG9CHEGvnad7FMmefCQvSbp4QEMjf8DCL
  • wine 安装(ubuntu中安装windows下软件)

    wine xff1a 能够在多种 POSIX compliant 操作系统 xff08 诸如 Linux xff0c Mac OSX 及 BSD 等 xff09 上运行 Windows 应用的兼容层 https baike baidu co
  • 将自己的 ubuntu 系统制作为ISO镜像

    自己的Ubuntu做了很多设置 xff0c 比如各种软件包 xff0c 各种自定义的配置 如果想要在其他电脑上也安装一个一样的系统 xff0c 可以制作ISO镜像 ISO镜像可以用于发布系统 xff0c 也可以用来作为系统备份使用 以下是使
  • matlab:错误使用 fread 文件标识符无效。使用 fopen 生成有效的文件标识符。

    fidin xff1a 1 000000 错误使用 fread 文件标识符无效 使用 fopen 生成有效的文件标识符 出错 convert1 line 12 A 61 fread fidin inf 39 int16 39 以二进制形式读
  • 使用循环语句输出空心金字塔

    n 61 5 选择打印层数 for i 61 1 i lt 61 n i 43 43 for k 61 1 k lt 61 n i k 43 43 打印空格 echo 34 34 for j 61 1 j lt 61 2 i 1 j 43
  • 关于编程语句i++与++i的区别用法

    首先我们定义一个变量i xff0c int i 61 5 xff1b 然后我们做执行printf xff08 d xff0c i 43 43 xff09 xff1b 我们会发现输出结果是5 是为什么呢 xff0c 我们要搞清楚printf
  • eclipse出现&nbsp;Some&nbsp;character…

    原文地址 xff1a eclipse出现 Some characters cannot be mapped using 34 GBK 34 character encoding 错误 作者 xff1a 赫西尼 Window gt Profe
  • php实现二维数组转置

    arr 61 array array 1 2 3 array 4 5 6 for i 61 0 i for j 61 0 j arr1 j i 61 arr i j for k 61 0 k for l 61 0 l echo arr1 k
  • PX4在GAZEBO仿真中加载iris模型问题

    目录 1 PX4启动仿真的launch系列文件1 1 单个launch文件解读1 2 对iris模型添加相机1 3 bashrc环境变量问题 2 一些Bug2 1 我的台式机无法加载模型2 1 1 若使用 96 v1 9 2版本 96 2