PX4,ROS,gazebo仿真

2023-05-16

  • https://gitee.com/bingobinlw/some/tree/master.

  • Overview

  • Simulation

  • Px4_command

  • Slam

  • map

  • image_process

  • planning

  • P200

  • AmovCar

    此项目运行环境可以手动安装,或下载已安装好了的iso镜像进行虚拟机安装或实体机安装,链接如下:

    链接:https://pan.baidu.com/s/1yMvZXezQSPDPkYmSdbEZLA 提取码:y3rr

    运行各demo之前,请先更新一下仓库:

    
    git pull  

    注:有任何疑问都可在issues提问:)

Overview

  • software frame

image

Simulation

此simulation 包含2D、3D激光雷达模型、深度相机模型、双目相机模型、realsense相机模型、IRlock相机模型。

image

image

  • 配置PX4以及ros环境

  • 下载gazebo模型包

  • 编译工作空间,运行launch文件

配置PX4以及ros环境

在18.04已测试通过

建议安装Ubuntu18.04 ,gazebo9

这里给出ubuntu18.04安装步骤

ROS

for ubuntu18.04 melodic

  1. Add ROS to sources.list.

    
    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
    sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
    sudo apt update  
  2. Install gazebo with ROS.

    
    sudo apt-get install ros-melodic-desktop
    
    # Source ROS
     echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
     source ~/.bashrc  

please make sure install ros-gazebo related packages

For Gazebo 9,


sudo apt install ros-melodic-gazebo9*  
  1. Initialize rosdep.

    
    rosdep init
    rosdep update  
  2. Install catkin.

    
    sudo apt install python-catkin-tools  
  3. Install mavros version 0.29.0 or above. Instructions to install it from sources can be found here: https://dev.px4.io/en/ros/mavros_installation.html. If you want to install using apt, be sure to check that the version is 0.29.0 or greater.

    
    sudo apt install ros-melodic-mavros ros-melodic-mavros-extras  
  4. Install the geographiclib dataset

    
    wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
    chmod +x install_geographiclib_datasets.sh
    sudo ./install_geographiclib_datasets.sh  

参考于:http://wiki.ros.org/melodic/Installation/Ubuntu

下载编译px4 Firmware

  • 安装必要的工具链

  • 下载编译firmware

安装必要的工具链

下载ubuntu.sh,requirements.txt


wget https://raw.githubusercontent.com/PX4/Firmware/master/Tools/setup/ubuntu.sh
  

wget https://raw.githubusercontent.com/PX4/Firmware/master/Tools/setup/requirements.txt  

然后运行:


source ubuntu.sh  

参考于http://dev.px4.io/master/en/setup/dev_env_linux_ubuntu.html

下载源码:


git clone https://gitee.com/bingobinlw/some  

下载编译firmware

sudo apt install python-pip

python -m pip install toml

在此目录下下载px4源码并切换v1.9.2的固件


cd some
git clone https://github.com/PX4/Firmware  

或下载码云中的px4源码


cd some
git clone https://gitee.com/bingobinlw/Firmware  

然后更新submodule切换固件并编译


cd Firmware
git submodule update --init --recursive
git checkout v1.9.2
make distclean
make px4_sitl_default gazebo  

下载gazebo模型包

在home目录下创建gazebo_models文件夹


youname@ubuntu:~$ mkdir gazebo_models  

下载gazebo模型包 https://bitbucket.org/osrf/gazebo_models/downloads/

把gazebo模型包解压出来的所有模型文件剪切至gazebo_models文件夹

编译工作空间,运行launch文件

编译之前,请先下载必要的slam包,具体请到ros_slam包中查看readme.md


dir:some/src/mid/slam/ros_slam
查看README.md  

And


sudo apt-get install ros-melodic-ar-track-alvar*  

运行demo之前请先下载3Dlidar仿真相关的插件包

for ubuntu 18.04


sudo apt-get install ros-melodic-velodyne-gazebo-plugins  

cd some
catkin_make
  

编译成功后运行source_environment.sh添加Firmware环境变量,some gazebo模型路经,gazebo_modles模型路经


source source_enviroment.sh  

运行model demo launch文件


roslaunch simulation models_demo_test_px4.launch  

Px4_command

px4控制以及上层应用模块

offboard 模式下走圆形轨迹

运行


roslaunch simulation circular_px4.launch  

同时会出现一飞机控制界面,要想使用此脚本请先查看下面路经的README.md


dir:some/src/simulation/scripts/README.md  

image 在键盘控制终端中,输入0解锁,然后输入2offboard,飞机随后会按照你给定的半径与高度飞行,完成一圈后会自动降落。

offboard 模式下进行二维VFH避障

运行demo之前,请先在QGC中添加航点,然后上传,VFH节点将读取航点信息,当作目标点。

然后重新运行


roslaunch simulation obstacle_avoidance_2Dlaser_vfh_px4.launch   

image

中间终端为GCG中各航点的平面信息,读取航点成功后,在最后一个控制终端中输入2然后回车,VFH节点将开始工作。

Slam

运行slam-Demo之前请先安装必要的功能包,具体请看


roscd ros_slam
查看README.md  

gmapping_slam

运行


roslaunch simulation gmapping_demo_px4.launch  

image

cartographer

cartographer在2019年10月份已经支持以ros包形式安装。若想运行此demo请先安装必要cartogra包。具体请看ros_slam包中的README.md

2Dlidar location

运行demo之前请先在QGC参数表中配置参数,选择EKF位置来源来自板载计算机


EKF2_AID_MASK = 24  

cartogra节点将接收2d激光雷达以及无人机的imu话题。


roslaunch simulation cartographer2Dlidar_location_demo_px4.launch  

在定位之前请在键盘控制界面用键盘的**'g'**键调整uav的允许速度为1570,降低uav的运动时的倾斜角度以及速度,以达到更好的定位效果。

结果

image

2Dlidar mapping

如果你想建立更加准确的地图,而且你的robot已经拥有里程计。那么cartogra能够生成准切而稳定的map,不会存在location模式中地图会飘的情况。

运行demo之前请先在QGC参数表中配置参数,选择EKF位置来源来自gps


EKF2_AID_MASK = 1  

cartogra节点将接收2d激光雷达以及无人机的里程计话题


roslaunch simulation cartographer2Dlidar_mapping_demo_px4.launch  

3Dlidar location

使用运行demo之前请先确保以安装3D雷达相关插件

for ubuntu 18.04


sudo apt-get install ros-melodic-velodyne-gazebo-plugins  

使用一个16线的激光雷达,以及一个imu数据,激光雷达水平安装在飞机的顶部。就其定位效果来看,没有发现2Dlidar定位时会飘的情况,而且无人机速度倾斜角度都可以大幅提高。

image

运行


roslaunch simulation cartographer3Dlidar_demo_px4.launch  

rtabmap slam

使用深度相机以及室内里程计,为了达到更好的建图效果,其中室内里程计选择用3Dcartogra. 运行demo之前请先安装必要的rtabmap ros包


sudo apt-get install ros-melodic-rtabmap-ros  

请先在QGC参数表中配置参数,选择EKF位置来源来自板载计算机


EKF2_AID_MASK = 24  

运行demo


roslaunch simulation rtabmap_depthCam_mapping_demo_px4.launch  

参考于:http://wiki.ros.org/rtabmap_ros

建图效果:

image

image

map

运行map-Demo之前请先安装必要的功能包,具体请看


roscd octomap
查看README.md  

octomap

depth camera

运行


roslaunch simulation octomap_px4.launch   

建图效果

image

3Dlidar

运行


roslaunch octomap_3Dlidar_px4.launch  

建图效果

image

image_process

vision landing

image

运行demo之前请先安装必要的ros包


sudo apt-get install ros-melodic-ar-track-alvar*  

运行


roslaunch simulation landing_px4.launch  

然后在键盘控制界面输入'0' 解锁,输入'2'切入OFFBOARD,飞机会自动起飞降落到目标板。

planning

ros navigation

运行demo之前请先安装必要的导航包


sudo apt-get install ros-melodic-navigation  

运行


roslaunch simulation ros_2Dnav_demo_px4.launch  

在键盘控制界面解锁无人机,并控制无人机起飞

然后在rviz界面使用2D Nav Goal 设置目标点,

然后在键盘控制界面输入2运行offboard模式。

image

参考于:http://wiki.ros.org/navigation

P200

待定

注:有任何疑问都可在issues提问:)

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

PX4,ROS,gazebo仿真 的相关文章

  • 【总结】浏览器 User-Agent 大全

    一 基础知识 Http Header之User Agent User Agent中文名为用户代理 xff0c 是Http协议中的一部分 xff0c 属于头域的组成部分 xff0c User Agent也简称UA 它是一个特殊字符串头 xff

随机推荐

  • Visual Studio 2017各版本安装包离线下载、安装全教程

    微软最近发布了正式版Visual Studio 2017并公开了其下载方式 xff0c 不过由于VS2017采用了新的模块化安装方案 xff0c 所以微软官方并未提供ISO镜像 xff0c 但是官方提供了如何进行离线下载的方案给需要进行离线
  • Python基础入门笔记(一)

    前言 xff08 认识Python xff09 既然学习 Python xff0c 那么至少得了解下这门语言 xff0c 知道 Python 代码执行过程吧 Python 的历史有兴趣的百度百科下就有 xff0c 这个不多说了 1 我们先来
  • Spring学习笔记1

    前言 Spring框架的学习路线 xff1a Spring第一天 xff1a Spring的IOC容器之XML的方式 xff0c Spring框架与Web项目整合Spring第二天 xff1a Spring的IOC容器之注解的方式 xff0
  • GitHub学生包的介绍与申请

    1 Github学生包介绍 1 Github学生包是什么 xff1f GitHub 学生包是一个由 GitHub 免费提供给学生的福利 xff0c 里面包括了计算机专业可能用到的很多付费资源 xff0c 其中包含一系列网站服务的打折 代金券
  • (二)GitHub的使用随记

    一 Git及GitHub的使用 1 突破GitHub单个大文件上传限制 GitHub 上新建的仓库容量大小限制在 1G xff0c 单个文件不能超过 100M xff0c 有 50M 的文件 xff0c 就会警告了 可通过以下命令查找超过
  • 总结一个月以来调试STM32底盘踩过的坑

    深坑1 xff1a 基本配置方法 xff1b 配置PWM输出 xff0c TIM4有四路PWM输出 xff0c 依葫芦画瓢开始配置 xff0c 配置完后 xff0c 开始测试 xff0c 啥都没有啊 xff0c 很是伤心 xff0c 开始查
  • Android开发60条技术经验总结

    1 全部Activity可继承自BaseActivity xff0c 便于统一风格与处理公共事件 xff0c 构建对话框统一构建器的建立 xff0c 万一需要整体变动 xff0c 一处修改到处有效 2 数据库表段字段常量和SQL逻辑分离 x
  • 无人机利用视觉slam实现位置估计

    无人机利用视觉slam实现室内位置估计 自己近期所做的以及思考的东西 我们实验室买了阿木的p200 带t265 无人机用于无人机的控制研究 xff0c 通过阿木实验室的ros功能包px4 command可以 无脑的实现飞机的悬停功能 xff
  • 学习api的使用方式

    网上有很多API教程 xff0c 但是都是针对单个API的使用来讲解 xff0c 但是如果遇到网上没有教程的API呢 xff1f 这篇教程的目的就是这样 xff1a 当遇到一个不会的API的时候 xff0c 懂得如何利用资料学会使用这个AP
  • 解决favicon.ico无法显示的问题

    今天在做站的时候发现网站favicon ico图标不显示 xff0c favicon是什么 xff1f 其实我们在浏览器看网页的时候 xff0c 在地址栏的左边 xff0c 你就可以看到一个小的图标 xff08 每个网站都不一样 xff09
  • RTK和GPS定位

    GPS定位的基本原理是 xff0c 测量出已知位置的卫星到地面GPS接收器之间的距离 xff0c 然后接收器通过与至少4颗卫星通讯 xff0c 计算与这些卫星间的距离 xff0c 就能确定其在地球上的具体位置 普通GPS的定位精度 1米 x
  • ESP8266EX 串口WIFI无线模块

    介绍 内部跑LWIP协议 xff0c 支持三种模式 xff1a AP STA AP 43 STA共存模式 简洁高效的AT指令 特点 支持无线802 11 b g n标准 支持STA AP STA 43 AP 三种工作模式 内置CTP IP协
  • Cesium球心坐标与本地坐标系经纬转换的数学原理—矩阵变换

    之前整理过 xff1a 透析矩阵 xff0c 由浅入深娓娓道来 高数 线性代数 矩阵 三维旋转笔记 欧拉角 四元数 旋转矩阵 轴角 记忆点整理 xff0c 这次转载 FuckGIS的 Cesium之球心坐标与本地坐标 xff0c 算是线性代
  • 怎么在keil官网上下载芯片固件包(*.pack)

    第一步 xff1a 登录keil官网 www keil com 第二步 xff1a 点击 Product 第三步 xff1a 点击 ARM development tools 第四步 xff1a Public software Packs
  • UCOS开发手册中关于OSQPend()函数讲

    转自 xff1a http www openedv com thread 44168 1 1 html UCOS开发手册中 第十章 UCOSIII消息传递 章节中关于等待消息队列的函数OSQPend 讲解有误 xff0c OSQPend 函
  • ucos-ii学习笔记——信号量集(事件标志组)的原理及使用

    xfeff xfeff ucos ii学习笔记 信号量集 事件标志组 的原理及使用 Created on 2012 10 8 Author zhang bin 学习笔记 for ucos ii PC redesigned by zhang
  • 低速容错CAN:ISO 11898-3 与ISO 11519-2标准两者关系

    xfeff xfeff 有关 低速容错CAN xff1a ISO 11898 3 与ISO 11519 2标准两者关系 最近有几个客户问到这个问题 xff0c 对应的产品是否兼容 于是上ISO官网查看发现并无两者的关系 xff0c 不过在网
  • CAN总线仲裁机制--对于多个节点同时发送相同ID的报文

    最近在学习CAN总线 xff0c 原先一直不太明白 xff0c 若有A xff0c B 2个节点同一时刻一起向总线上发送数据 xff0c CAN总线是怎么仲裁的 xff0c 来让A xff0c B其中一个节点退出 xff0c 保证高优先级的
  • roslaunch mavros px4.launch fcu_url=xxxx到底做了什么

    roslaunch mavros px4 launch fcu url 61 xxxx到底做了什么 一言以蔽之 xff0c roslaunch mavros px4 launch fcu url span class token opera
  • PX4,ROS,gazebo仿真

    https gitee com bingobinlw some tree master Overview Simulation Px4 command Slam map image process planning P200 AmovCar