ubuntu20.04系统 PX4仿真环境配置教程-超简单[ros、mavros、px4、QGC、OFFBOARD模式走点]

1 ROS

小鱼yyds,按照指示,把ros和rosdepc都安装一下,一般都没啥问题。

wget http://fishros.com/install -O fishros && . fishros

2 PX4仿真环境配置

2.1 下载

可以下载最新版本

git clone https://github.com/PX4/PX4-Autopilot.git

也可以下载老版本:

git clone -b v1.13.3 https://github.com/PX4/PX4-Autopilot.git

2.2 配置环境

需要注意网络状况,否则会失败,可以试着用手机流量开热点,可能会快一点

cd PX4-Autopilot
bash ./Tools/setup/ubuntu.sh

2.3 编译

make px4_sitl gazebo

上一步编译好之后在该终端直接输入:

commander takeoff
commander land

这个环境是没有接入ros的,只能看看,除了终端那几条命令还有地面站,就没有其他接口了,如果想使用电脑控制无人机,还需要接入ros。

2.4 添加环境变量bashrc

nano ~/.bashrc

在bashrc中加入下面的内容就可以在任意终端打开PX4的launch了。但是注意,因为px4在1.14改动很大,把代码的好多结构都改了,位置变了,所以1.13与1.14有很大的不同。

如果你下载的最新版本1.15或者1.14版本请用这一条内容。

source ~/PX4-Autopilot/Tools/simulation/gazebo-classic/setup_gazebo.bash ~/PX4-Autopilot ~/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/simulation/gazebo-classic/sitl_gazebo-classic

如果用的是1.13请用这一条

source ~/PX4-Autopilot/Tools/setup_gazebo.bash ~/PX4-Autopilot/ ~/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/sitl_gazebo

2.5 安装mavros

mavros是无人机与ros通信的工具,所以要使用电脑控制无人机的话,大部分都是要安装这个mavros的。

sudo apt install ros-noetic-mavros ros-noetic-mavros-extras
sudo /opt/ros/noetic/lib/mavros/install_geographiclib_datasets.sh

其中“noetic”替换成相应ubuntu的ros版本号,比如ubuntu20.04是noetic,ubuntu18.04是melodic,但是大概率执行最后一步都会花费很长时间,所以可以直接去从其他配置好的设备中拷下来,然后移动到/usr/share里面。

git clone https://gitee.com/lulese/geographic-lib.git
sudo cp -r GeographicLib /usr/share/

运行带有mavros的px4仿真环境

roslaunch px4 mavros_posix_sitl.launch

2.6 更换gazebo版本(如果上一步不能正确加载飞机)

如果加载不出来模型,请检查bashrc,以及gazebo版本,好像有些时候gazebo11.15不能运行,11.14可以,查看gazebo版本:

gazebo -v

更换版本到11.14,源码编译

# 先卸载gazebo,注意别把ros卸载了
sudo apt-get remove gazebo11 gazebo11-plugin-base libgazebo11 libgazebo11-dev

安装gazebo11.14

# 下载gazebo11.14
https://github.com/gazebosim/gazebo-classic/releases/tag/gazebo11_11.14.0
cd gazebo11_11.14.0
mkdir build 
cmake ..
make -j4
sudo make install

安装gazebo_ros

sudo apt install ros-noetic-gazebo-ros-pkgs ros-noetic-gazebo-ros-control

3 安装QGC地面站

地面站有很多种,QGC、MIssion-planner、betaflight等等,我感觉界面好看的、适配px4的还是QGC好一点。

点击链接下载QGC

chmod +x ./QGroundControl.AppImage
./QGroundControl.AppImage

4 控制无人机offboard模式走点、正方形、圆形

直接去下载项目无人机基础OFFboarrd项目,按照readme走就行了。

下载
cd ~/ 
git clone https://gitee.com/lulese/uavoffbard-frame_ws.git
cd UAVOffbardFrame_ws/
//编译
catkin_make
//更新环境变量,可以把刚才编译的功能包路径添加到环境中,那么本终端就可以运行本工作空间的功能包,也可以在~/.bashrc里面添加source语句,那么所有终端都可以使用本工作空间功能包
source ./devel/setup.bash
<think>好的,我现在需要帮助用户找到关于PX4ROS结合进行无人机仿真的教程配置运行步骤。首先,我得回忆一下PX4ROS无人机仿真中的常见用法。PX4是一个广泛使用的自动驾驶仪软件,而ROS机器人操作系统)常用于机器人控制和仿真。它们的结合通常通过ROS包如MAVROS来实现通信。 用户需要的是教程配置运行的相关资料,所以应该先列出官方资源,因为通常最可靠。我记得PX4官方文档里有一个关于ROS与仿真的部分,可能包括Gazebo仿真和MAVROS配置。需要确认链接是否正确,比如指向PX4ROS仿真页面。 然后是配置步骤。安装PX4ROS的步骤可能涉及使用Ubuntu系统,因为ROS主要支持Ubuntu。需要提到安装PX4固件、ROS Melodic或Noetic,以及MAVROS。可能还需要安装Gazebo仿真环境,因为PX4常与Gazebo一起使用。 接下来是运行仿真的步骤。启动Gazebo仿真,然后启动MAVROS节点,这样ROS就可以和PX4通信了。用户可能需要运行特定的launch文件,比如通过roslaunch启动mavros节点并连接到本地的PX4实例。 示例应用部分,可以举一个简单Offboard控制示例,说明如何通过ROS发布目标位置。这需要编写一个ROS节点,发布设置模式的消息和目标位置的pose。同时要提醒用户切换模式Offboard,并确保有位置信息输入。 常见问题可能包括MAVROS连接失败,这时候需要检查端口和防火墙设置。Gazebo仿真崩溃的话可能需要更新驱动或降低图形设置。Offboard模式无法切换可能是因为没有收到足够的信息流,比如需要先发送几次消息才能切换。 相关资源部分,除了官方文档,可能还有PX4的GitHub仓库,ROSMAVROS包,以及一些社区教程,比如Dronecode或Auterion的博客文章,或者YouTube上的视频教程。这些都需要验证链接是否有效,或者至少提供正确的名称让用户搜索。 最后生成相关问题,要考虑用户可能的后续问题,比如PX4与其他仿真器的集成,硬件在环测试,MAVROS的高级功能,或者性能优化等。这些问题应该覆盖用户深入学习时可能遇到的障碍。 需要确保所有步骤清晰,命令准确,并且注意事项中提到常见错误,帮助用户避免陷阱。同时,引用官方文档作为参考,增加可信度。</think># PX4ROS结合的无人机仿真配置教程 ## 一、基础环境配置 1. **安装PX4开发环境** 使用Ubuntu系统执行: ```bash git clone https://github.com/PX4/PX4-Autopilot.git --recursive bash ./PX4-Autopilot/Tools/setup/ubuntu.sh ``` 2. **安装ROS框架** 根据Ubuntu版本选择: ```bash # Ubuntu 18.04 sudo apt install ros-melodic-desktop-full # Ubuntu 20.04 sudo apt install ros-noetic-desktop-full ``` 3. **MAVROS扩展包安装** ```bash sudo apt install ros-<distro>-mavros ros-<distro>-mavros-extras ``` ## 二、仿真环境搭建流程 $$ \begin{cases} \text{Gazebo启动命令} & : \quad make px4_sitl gazebo \\ \text{MAVROS节点启动} & : \quad roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557" \end{cases} $$ **关键配置验证**: 通过`rostopic echo /mavros/state`检查连接状态,当`connected`显示`True`时表示通信成功[^1]。 ## 三、典型应用示例 ```python # Offboard控制示例(Python节点) import rospy from geometry_msgs.msg import PoseStamped def control_drone(): pose_pub = rospy.Publisher('/mavros/setpoint_position/local', PoseStamped, queue_size=10) # 设置目标位置(三维坐标) target_pose = PoseStamped() target_pose.pose.position.x = 5 target_pose.pose.position.y = 3 target_pose.pose.position.z = 10 while not rospy.is_shutdown(): pose_pub.publish(target_pose) ``` **模式切换要求**: 需要先通过QGC地面站或MAVCMD指令将无人机切换至`OFFBOARD`模式,且必须保持至少2Hz的消息发送频率[^2]。 ## 四、故障排除指南 | 故障现象 | 解决方案 | |---------|----------| | MAVROS连接时 | 检查14540/14557端口占用情况,关闭防火墙 | | Gazebo模型加载失败 | 执行`make clean`后重新编译 | | Offboard模式拒绝切换 | 确认已持续发送目标信息过5秒 | ## 五、进阶配置建议 1. **多机仿真** 修改`~/PX4-Autopilot/launch/multi_uav_mavros_sitl.launch`文件实现多无人机协同 2. **传感器模拟** 在Gazebo模型配置中添加`<imu>`,`<gps>`等传感器插件 3. **HIL测试** 通过`make px4_sitl_default none_iris`命令连接真实飞控 [^1]: PX4官方文档-ROS集成章节 [^2]: MAVROS Wiki-Offboard控制说明
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值