涛声依旧在 发表于 2025-4-6 23:18:51

ubuntu20.04+PX4+Gazebo+QGC 无人机模仿仿真

一、ubuntu的安装

有关ubuntu的安装以及情况配置 推荐B站上的课程以及对应文档
【Autolabor初级教程】ROS机器人入门_哔哩哔哩_bilibili
第 1 章 ROS概述与情况搭建 · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程
二、PX4+gazebo


先下载PX4的代码,用git clone 方式举行
1.git clone源码
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
 2.下载PX4并安装依赖
cd PX4-Autopilot
bash ./Tools/setup/ubuntu.sh
3.source,相称于设置情况变量,让体系知晓这个功能包的存在。
   source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd):$(pwd)/Tools/sitl_gazebo
打开终端输入gedit .bashrc。在弹出的txt文件最后一行,加入上述内容。值得注意的是,$(pwd)是要替换成对应的目录路径(PX4固件所在目录),我的路径是 /home/ros-a/PX4-Autopilot(ros-a是我的电脑名字,PX4-Autopilot是默认存放固件的文件夹名字)。于是我的修改内容如下:
   source /home/ros-a/PX4-Autopilot/Tools/simulation/gazebo-classic/setup_gazebo.bash /home/ros-a/PX4-Autopilot /home/ros-a/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/ros-a/PX4-Autopilot:/home/ros-a/PX4-Autopilot/Tools/simulation/gazebo-classic/sitl_gazebo-classic
在官网上关于这部分source是没有更新的,我自己在安装时发现setup_gazebo.bash的安装路径是在Tools/simulation/gazebo-classic 下的,所以在输入之前,最好都查抄一下自己setup_gazebo.bash的路径在哪里,不要照搬。
4.编译gazebo,编译通过的话最后就会打开gazebo
make px4_sitl_default gazebo  5.以后想重新打开gazebo,无需通过以上的步骤直接在终端运行:

   roslaunch px4 posix_sitl.launch

三、mavros的安装

mavros能够将ros和mavlink连接起来,实现ROS与无人机(px4)之间的通讯,可以在终端运行下述指令对mavros和其拓展包举行安装,以免后续使用mavros时出错。

   sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras

四、QGC安装

QGC官方的安装路径为 Download and Install | QGC Guide (master)
官方内容写的很清楚,按照步骤来就行
https://i-blog.csdnimg.cn/direct/d576a758bdf64094a17eb33d6983863e.png
其中的QGroundControl.AppImage要放在你自己定名的电脑名字的文件夹内,再运行终端命令举行安装
如果下次想要打开QGC的话,就在终端运行
   ./QGroundControl.AppImage
 https://i-blog.csdnimg.cn/direct/c153ab58ae3a4be99365d500eb996de7.png
在gazebo里打开QGC后,大抵是如许的界面
这时间我们要运行mavros 让QGC能够对无人机举行操控和参数的监视 
这里fcu_url 的地址是在我们电脑文件夹 PX4-Autopilot/launch/mavros_posix_sitl.launch
   roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"
这部分内容可以参考ROS+Gazebo+PX4仿真步骤_gazebo仿真肯定要先学ros吗-CSDN博客 

如果想要举行多无人机仿真,在终端输入
   roslaunch px4 multi_uav_mavros_sitl.launch
同样需要mavros连接到对应无人机的PX4上
可以在 PX4-Autopilot/launch/multi_uav_mavros_sitl.launch中查询和更改
   roslaunch mavros px4.launch fcu_url:="udp://:14540@localhost:14580"
roslaunch mavros px4.launch fcu_url:="udp://:14541@localhost:14581"
roslaunch mavros px4.launch fcu_url:="udp://:14542@localhost:14582"
如果想要增加无人机数量,在multi_uav_mavros_sitl.launch中,将这一整块代码复制到最后一组无人机背面 (开头有</group>)
   
 </group>
    <!-- UAV1 -->
    <group ns="uav1">
        <!-- MAVROS and vehicle configs -->
        <arg name="ID" value="1"/>
        <arg name="fcu_url" default="udp://:14541@localhost:14581"/>
        <!-- PX4 SITL and vehicle spawn -->
        <include file="$(find px4)/launch/single_vehicle_spawn.launch">
            <arg name="x" value="1"/>
            <arg name="y" value="0"/>
            <arg name="z" value="0"/>
            <arg name="R" value="0"/>
            <arg name="P" value="0"/>
            <arg name="Y" value="0"/>
            <arg name="vehicle" value="$(arg vehicle)"/>
            <arg name="mavlink_udp_port" value="14561"/>
            <arg name="mavlink_tcp_port" value="4561"/>
            <arg name="ID" value="$(arg ID)"/>
            <arg name="gst_udp_port" value="$(eval 5600 + arg('ID'))"/>
            <arg name="video_uri" value="$(eval 5600 + arg('ID'))"/>
            <arg name="mavlink_cam_udp_port" value="$(eval 14530 + arg('ID'))"/>
        </include>
        <!-- MAVROS -->
        <include file="$(find mavros)/launch/px4.launch">
            <arg name="fcu_url" value="$(arg fcu_url)"/>
            <arg name="gcs_url" value=""/>
            <arg name="tgt_system" value="$(eval 1 + arg('ID'))"/>
            <arg name="tgt_component" value="1"/>
        </include>
同时新添加的无人机需要对有颜色部分举行修改,例如: 
<group ns="uav1"> 中 “uav1”改成“uav3”
<arg name="ID" value="1"/> 中 将“value”改成对应的无人机编号“3”
<arg name="fcu_url" default="udp://:14541@localhost:14581"/>中将“default”最后的值改成”14583“或不与其他无人机相同的通信接口
<arg name="mavlink_udp_port" value="14561"/>
 <arg name="mavlink_tcp_port" value="4561"/>  ”value“分别改成”14563“ ”456“
修改的部分在下面这篇博客开头讲的比较清楚基于gazebo和mavros实现两台无人机的位姿跟踪实验_gazebo怎么改端标语-CSDN博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: ubuntu20.04+PX4+Gazebo+QGC 无人机模仿仿真