PX4的软件仿真(SITL)环境配置过程

2023-05-16

官方地址:https://dev.px4.io/en/simulation/gazebo.html

框架图,各个UDP端口一目了然,仅有连接到模拟器的udp端口是随机的,从下图的启动界面可以看出,模拟器在等待14560端口的初始化数据,onboard运行在14540端口,和GSC通讯端口是14550

 

下面是编译不同飞机模型的一些命令:

cd ~/src/Firmware

#Quadrotor
make posix_sitl_default gazebo  

#Quadrotor with Optical Flow
make posix gazebo_iris_opt_flow

#3DR Solo
make posix gazebo_solo

#Standard Plane
make posix gazebo_plane

#Standard VTOL
make posix_sitl_default gazebo_standard_vtol

#Tailsitter VTOL
make posix_sitl_default gazebo_tailsitter

#Ackerman vehicle (UGV/Rover)
make posix gazebo_rover

#HippoCampus TUHH (UUV: Unmanned Underwater Vehicle)
make posix_sitl_default gazebo_hippocampus

#起飞

pxh> commander takeoff


#  The default takeoff location in SITL Gazebo can be overridden using environment variables.
#  The variables to set are: PX4_HOME_LAT, PX4_HOME_LON, and PX4_HOME_ALT.

export PX4_HOME_LAT=28.452386
export PX4_HOME_LON=-13.867138
export PX4_HOME_ALT=28.5
make posix gazebo

#gazebo可以模拟GPS噪声
It is enabled by default in many vehicle SDF files: solo.sdf, iris.sdf, standard_vtol.sdf, delta_wing.sdf, plane.sdf, typhoon_h480, tailsitter.sdf.
To enable/disable GPS noise:

Tools/sitl_gazebo/models/iris/iris.sdf

Build any gazebo target in order to generate SDF files (for all vehicles). For example:  make posix_sitl_default gazebo_iris

<plugin name='gps_plugin' filename='libgazebo_gps_plugin.so'>
  <robotNamespace/>
  <gpsNoise>true</gpsNoise>
</plugin>

软件仿真的思路:控制器从仿真模拟器获取传感器数据,控制器运算过后,把电机的转速、pwm反馈给模拟器。
UDP PORT: 
14550  API/offboard

14540  GCS

启动mavros节点

#局域网 
roslaunch mavros px4.launch fcu_url:="udp://:14540@192.168.1.36:14557"
#本机
roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"

gazebo可以直接把传感器(雷达......)的信息发送到ROS的topic,所以gazobo在启动的时候需要启动一些ros包

echo $ROS_PACKAGE_PATH    //查看ROS包的路径信息


运行仿真前需要吧仿真包的路径信息导入:

source ~/catkin_ws/devel/setup.bash    // (optional)这是自己创建的工作目录的ROS包

gazebo的插件、模型路径信息也需要添加到系统环境变量:

source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/posix_sitl_default
$(pwd) $(pwd)/build/posix_sitl_default  分别是给到脚本文件的2个参数(目录信息)

然后更新一下ROS包的路径

pwd=~/src/Firmware,在源码根目录执行以下命令
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/sitl_gazebo

启动PX4软件仿真

roslaunch px4 posix_sitl.launch


 

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

PX4的软件仿真(SITL)环境配置过程 的相关文章

随机推荐

  • ESP32实验-自建web服务器配网01

    目标 通过esp32自建web服务器实现配网 具体来说 xff1a 1 esp32上电 xff0c 手机 电脑 平板连上esp32的wifi 2 用浏览器访问esp32的网址esp32默认是192 168 4 1 3 在web页面中输入需要
  • ESP实验02-读取DS1307&eerom34c32

    1 模块介绍 本实验主要用到两个模块 esp32 tinyRTC 模块的图片如下所示 xff1a esp32模块型号为ESP32Devkitc v4 xff0c 是启明云端官方的开发板 与乐鑫官方的完全一致 xff0c 引脚顺序 xff0c
  • stm32f407 RTC不更新问题排查

    1 问题 在做stm32f407rtc实验时 xff0c 代码是用cubemx生成的 xff0c 通过串口打印出时间值 xff0c 1s打印一次 但是结果与料想中的不一致 发现打印出来的值一直不更新 按下复位键 xff0c 后时间会更新一次
  • GD32 can发送报no mailbox 故障

    1 问题描述 在使用GD32can通信时 xff0c 发现如果can线断开了 xff0c 再把can线连上 xff0c 用can分析仪监测不到总线数据 xff0c 调试后发现can发送没有成功 xff0c 通过串口打印出错误 xff0c 显
  • windows配置c语言编译系统-wingw gcc cmake

    前言 笔者在做嵌入式mcu编程的时候 xff0c 有时候想要验证一下部分代码的功能 xff0c 需要先编译成bin文件 xff0c 然后烧录到mcu内执行 每次编译烧录运行耗时较久 于是想到是不是可以在电脑上配置一个c的编译环境 xff0c
  • MacOS Python安装which is required to install pyproject.toml-based projects解决办法

    问题 使用pip安装的时候 xff0c 很多时候报错 xff1a which is required to install pyproject toml based project 使用pip instll pyproject toml无法
  • 自动以版本号命名keil生成的bin文件

    0 前言 在做项目中一直遇到一个小问题 一直也没管 xff0c 最近花了点时间处理了 xff0c 效果还不错 问题是这样的 xff1a 每次编译后的生成的bin文件需要给客户 xff0c 烧录到设备里进行更新 每次生成的bin文件都是固定的
  • protobuf编码格式解析

    示例 假如定义一个如下的protobuf类型 message Person span class token punctuation span required string user name span class token opera
  • 初探STM32掉电复位PDR

    STM32F407 144脚封装的第143脚PDR xff0c 一直没有关注过 xff0c 板子上是直接对其悬空处理 xff0c 悬空到底对系统有没有什么影响 xff0c 查看了STM32F4系列的技术手册也没有发祥有相关说明 只是说明了P
  • keil中自定义输出信息到编译窗口

    写程序的过程中 xff0c 会有不少的条件编译命令 xff0c 但是条件编译过多会导致忘记了定义那些条件 xff0c 排查起来也非常麻烦 xff0c 有没有什么好的方法来查找是否是否有该定义呢 xff1f 答案是有的 xff1a 那就 wa
  • STM32F4 FPU简单设置

    第一步 xff1a 在stm32f4xx h中定义宏 FPU PRESENT FPU USED span class hljs preprocessor span class hljs keyword define span CM4 REV
  • PX4飞控bootloader编译

    以前在使用pix4中 xff0c bootloader是在出厂的时候默认烧写好的 xff0c 我们直接可以通过USB更新固件 xff0c 但是要做二次开发过程中 xff0c 我们需要编译代码并进行烧写 xff0c 我们以前用的编译命令是默认
  • 如何转行游戏行业及我眼中的理想游戏开发团队

    前置内容 xff1a 很久没有写文章啦 xff0c 今天就来继续和大家聊一聊关于游戏制作的一些东西 今天主要聊两个方面 xff0c 一个是其他行业转游戏行业的一些注意事项以及需要具备的东西 xff1b 第二是和大家聊一聊我心目中理想的游戏开
  • W: GPG error: ...the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8

    在debian10上执行命令 xff1a sudo apt get update 更新清华源时 xff0c 报错如下 xff1a Cannot initiate the connection to mirrors tuna tsinghua
  • 四旋翼无人机的动力学模型

    1 四旋翼无人机UAV unmanned aerial vehicles 简介 四旋翼无人机是一种能够垂直起降的非共轴的多旋翼飞行器 xff0c 同一对角线上的一组旋翼采用逆时针旋转 xff0c 另一组旋翼采用顺时针旋转 xff0c 相互抵
  • 植保无人机PID调参经验

    1 P I D输出要限幅 2 P D是相对的 xff0c 如果系统震荡 xff0c 降低P或者加大D xff0c 在不震荡的条件下 xff0c 尽量让P大 3 I是可以不用的 xff0c 基本上PD控制器就可以控地很稳了 xff0c 如果感
  • 测试环境建设原则和管理实践

    1 问题 测试环境是指为了完成软件测试工作所必需的计算机硬件 软件 网络设备 历史数据等的总称 即够支持完成测试工作所需要的软件和硬件 测试环境是测试活动的基础 正确模拟生产环境 稳定支持测试活动是测试环境的基本要求 稳定可控的测试环境能够
  • ESP8266 WIFI数传 Pixhaw折腾笔记

    最近3DR数传老是断线 xff0c 重连 xff0c 数据刷不出来 xff0c 折腾了几天数传问题 xff0c 总结如下 xff1a 3DR RADIO xff1a 淘宝100多一对的 xff0c 别的无线数传也可以 xff0c 但一定保证
  • PX4的CMake解析

    home yanlei src Firmware cmake common 中定义了其他CMakeLists txt中所使用的一些函数 使用最多的函数px4 add module在px4 base cmake中 ekf2的CMakeList
  • PX4的软件仿真(SITL)环境配置过程

    官方地址 xff1a https dev px4 io en simulation gazebo html 框架图 xff0c 各个UDP端口一目了然 xff0c 仅有连接到模拟器的udp端口是随机的 xff0c 从下图的启动界面可以看出