ROS2+PX4 开发笔记

一、背景

笔记脱胎于官网文档,讲解较为清楚。存在部分坑,写下来给自己之后使用提供便利

ROS 2-PX4架构提供了ROS 2和PX4之间的深度集成,允许ROS 2订阅者或发布者节点直接与PX4 uORB主题接口。

使用ROS 2-PX4可以方便完成应用程序开发。所以对无人机控制方向的学习很有必要。

本文为2023年7月,PX4版本为v1.14,对于低版本可跳转到官网切换版本。

从PX4 v1.14开始,ROS 2使用uXRCE-DDS中间件,取代了1.13版本中使用的FastRTPS中间件(v1.13不支持uXRCE-DDS)。  

二、安装

1、安装版本

Ubuntu20.04
ROS 2Foxy
PX4v1.14

2、安装流程

(1)安装PX4

官网给的教程很简单,几行代码即可。但是实际操作问题很多,网络问题为最大问题。

解决网络问题后会很简单

cd  
git clone https://github.com/PX4/PX4-Autopilot.git --recursive 
#下载px4源码,注意--recursive,起到作用是把所有代码都下载下来,编译的时候不会出现依赖缺失
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
cd PX4-Autopilot/
make px4_sitl
#编译px4代码,时间比较久也可能会出错
#编译过程出错绝大部分是因为在git 下载的时候没有把代码下载完全出现错误
#我安装了很多次,发现只要下载的内容都有一般不会出错。

(2)安装ROS 2

此处推荐小鱼的一键安装ROS2

根据提示安装ROS2 Foxy版本即可

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

(3)设置Micro XRCE-DDS代理和客户端

为了使ROS 2与PX4通信,uXRCE-DDS客户端必须在PX4上运行,并连接到在配套计算机上运行的微型XRCE-DDS代理。

所以需要安装DDS代理以及客户端

git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
cd Micro-XRCE-DDS-Agent
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig /usr/local/lib/

使用连接到模拟器上运行的uXRCE-DDS客户端的设置启动代理:

MicroXRCEAgent udp4 -p 8888

(4)构建并运行ROS 2工作区

构建工作区

若要创建和生成工作区,请执行以下操作:

  1. 打开一个新终端。

  2. 使用以下方法创建并导航到新的工作区目录:

mkdir -p ~/ws_sensor_combined/src/
cd ~/ws_sensor_combined/src/

3. 克隆示例存储库和px4_msgs 到目录(分支默认克隆,对应我们运行的PX4版本):

git clone https://github.com/PX4/px4_msgs.git
git clone https://github.com/PX4/px4_ros_com.git

4、将 ROS 2 开发环境源到当前终端中,并使用以下命令编译工作区:

cd ..
source /opt/ros/foxy/setup.bash
colcon build
运行示例

1.导航到工作区目录的顶层并获取 ROS 2 环境

cd ~/ws_sensor_combined/
source /opt/ros/foxy/setup.bash

2.更新源

source install/local_setup.bash

3.启动示例

ros2 launch px4_ros_com sensor_combined_listener.launch.py

如果这有效,您应该看到在启动 ROS 侦听器的终端/控制台上打印的数据:

RECEIVED DATA FROM SENSOR COMBINED
================================
ts: 870938190
gyro_rad[0]: 0.00341645
gyro_rad[1]: 0.00626475
gyro_rad[2]: -0.000515705
gyro_integral_dt: 4739
accelerometer_timestamp_relative: 0
accelerometer_m_s2[0]: -0.273381
accelerometer_m_s2[1]: 0.0949186
accelerometer_m_s2[2]: -9.76044
accelerometer_integral_dt: 4739

至此安装完成,下一步编写代码控制无人机运动+接受无人机信息

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值