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

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

<think>好的,用户想在Ubuntu 22.04上安装和配置uxrce,也就是Micro XRCE-DDS Agent。我需要先回忆一下相关步骤,并结合提供的引用内容来确保信息的准确性。 首先,用户提供的引用中提到了一些安装PX4ROS的环境,比如引用[3]提到了Ubuntu 22.04和ROS2 Humble,还有使用pip安装相关工具。虽然uxrce可能不直接涉及PX4,但Micro XRCE-DDS通常用于ROS2中的DDS通信,特别是在资源受限的设备上。因此,安装uxrce可能需要ROS2的环境支持。 接下来,我需要确定uxrce的具体安装步骤。通常,Micro XRCE-DDS Agent可以通过源码编译安装,或者使用包管理器。由于Ubuntu 22.04的软件源可能没有最新版本,所以可能需要从源码构建。此外,引用[2]中的更新系统步骤也很重要,确保系统是最新的,避免依赖问题。 然后,配置部分需要指导用户如何运行Agent,设置不同的传输方式,比如UDP或串口,并创建服务文件以便后台运行。引用[3]中提到的pip安装可能涉及Python依赖,但uxrce主要是C++项目,可能需要CMake等构建工具。此外,检查ROS2环境是否已经正确安装,因为用户可能已经按照引用[3]的步骤安装了ROS2 Humble。 最后,生成相关问题时要考虑用户可能的后续需求,比如测试通信、集成到ROS2项目,或处理常见错误。需要确保引用相关的资料,比如官网文档和GitHub仓库,如引用[3]提到的链接可能对用户有帮助。</think>### 如何在 Ubuntu 22.04 上安装和配置 Micro XRCE-DDS Agent (uxrce) Micro XRCE-DDS Agent(简称`uxrce`)是用于支持资源受限设备与DDS网络通信的中间件代理,常用于ROS 2嵌入式系统开发。以下是安装和配置步骤: --- #### **1. 系统环境准备** - **更新系统包** 首先确保系统已更新至最新状态: ```bash sudo apt update && sudo apt upgrade -y # 参考引用[2] ``` - **安装必要依赖** 安装编译工具和依赖库: ```bash sudo apt install -y git cmake g++ python3-pip wget ``` --- #### **2. 安装 Micro XRCE-DDS Agent** - **从源码编译安装** ```bash 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 # 安装到系统目录 ``` - **验证安装** 运行以下命令检查是否成功: ```bash MicroXRCEAgent --version ``` --- #### **3. 配置与运行** - **启动Agent** 默认使用UDP协议,监听端口`2018`: ```bash MicroXRCEAgent udp4 -p 2018 ``` 若需其他协议(如串口),可通过参数调整: ```bash MicroXRCEAgent serial --dev /dev/ttyUSB0 # 示例:串口通信 ``` - **后台服务配置(可选)** 创建systemd服务文件`/etc/systemd/system/microxrce.service`: ```ini [Unit] Description=Micro XRCE-DDS Agent [Service] ExecStart=/usr/local/bin/MicroXRCEAgent udp4 -p 2018 Restart=always [Install] WantedBy=multi-user.target ``` 启用服务: ```bash sudo systemctl daemon-reload sudo systemctl enable microxrce sudo systemctl start microxrce ``` --- #### **4. 与ROS 2集成** 若需在ROS 2中使用,需确保已安装ROS 2环境(如Humble版本,参考引用[3]): 1. 在ROS 2节点中配置DDS域ID,确保与Agent的域ID一致(默认为0)。 2. 使用`ros2 topic list`验证通信是否正常。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值