虚拟机u22.04 + ROS2-humble + PX4-1.14 安装过程

笔记依托PX4官网,源于笔者最近学习经历,包括解决报错的过程,希望对大家有帮助。

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

PX4 开发支持的 ROS 2 平台是 Ubuntu 22.04 上的 ROS 2 “Humble”和 Ubuntu 20.04 上的 ROS 2 “Foxy”。 

PX4官网:ROS 2 用户指南 | PX4 自动驾驶用户指南 (v1.14)

安装过程

一、安装PX4(这里涉及网络问题)  笔者这里采用的阿里源

cd
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
cd PX4-Autopilot/
make px4_sitl

解决Vmware网络问题:

1.1代理开启局域网,在windows中运行cmd,输入ipconfig

 蓝色未遮盖部分为ip地址

1.2在ubuntu中,更改网络配置,把1.1的地址输入HTTP,HTTPS,Socks Host,端口部分查看自己的代理,笔者为7890

1.3  bash ./PX4-Autopilot/Tools/setup/ubuntu.sh 出现警告

 解决方案:

二、安装ROS humble(这里使用赵虚左2老师的教程,B站上有视频)

第一章·第一节 ROS2安装 (qq.com)

一些Python 依赖关系也必须安装 (使用 pip 或 apt):

pip install --user -U empy pyros-genmsg setuptools

三、安装Micro XRCE-DDS 代理(Agent)& 客户端(Client) 

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

3.1设置代理(Agent)

代理(Agent)可以通过 数种方式 安装到任务计算机上。 下面我们将演示如何从源代码构建“独立”代理(Agent),并连接到在 PX4 模拟器上运行的客户端(Client)。

设置并启动代理:

  1. 打开一个终端。

  2. 输入以下命令从仓库获取源代码并构建代理(Agent):

  3. 启动代理并设置以连接运行在模拟器上的 uXRCE-DDS客户端(Client):  

        代理正在运行,但在我们启动PX4 (下一步)之前,您不会看到太多。

3.2启动客户端(Client)

PX4 模拟器自动启动 uXRCE-DDS客户端,连接到本地主机上的 UDP 8888 端口。

启动模拟器(和客户端Client):

在上面安装的 PX4 Autopilot 存储库的根目录中打开一个新终端。

使用以下方法开始 PX4 Gazebo 模拟:

代理(Agent)和客户端(Client)现在将运行并建立连接。

PX4 终端显示 NuttShell/PX4 系统控制台 PX4 启动和运行。 代理(Agent)连接后输出应该包含 显示创建数据写入的消息:INFO

Micro XRCE-DDS代理(Agent)终端也应开始显示输出,因为DDS网络中创建了相同的主题:

四、构建 ROS 2 工作区

px4_ros_com (打开新窗口)px4_msgs (打开新窗口)软件包克隆到一个工作区文件夹,然后使用 工具来构建工作区。该示例使用 运行。colconros2 launch

#4.1构建工作区

要创建和构建工作区,请执行以下操作:

  1. 打开一个新终端。

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

  3. 克隆示例存储库并px4_msgs (打开新窗口)到目录(默认情况下会克隆分支,对应我们正在运行的 PX4 版本):/srcmain

  4. 将 ROS 2 开发环境源到当前终端中,并使用以下命令编译工作区:colcon这将使用源工具链构建所有文件夹。/src

colcon报错 

解决方案:解决setuptools version版本问题

   pip install --upgrade pip wheel pip-tools
   pip install --upgrade setuptools==70.0.0
   pip-compile requirements-dev.in
链接如下:https://github.com/pypa/setuptools/issues/4501

#4.2运行示例

要运行刚刚构建的可执行文件,您需要源 .这提供了对当前工作区的“环境钩子”的访问。换句话说,它使刚刚构建的可执行文件在当前终端中可用。local_setup.bash

注解

ROS2 初学者教程 (打开新窗口)建议您打开一个新终端来运行可执行文件。

在新航站楼中:

  1. 导航到工作区目录的顶层并获取 ROS 2 环境(在本例中为“Humble”)

  2. 来源 .local_setup.bash

   3.现在启动示例。请注意,这里我们使用 ,如下所述。ros2 launch

 

 ​​​​​​​4.如果这可行,您应该会在启动 ROS 侦听器的终端/控制台上看到打印数据:

参考:

ROS 2 用户指南 | PX4 自动驾驶用户指南 (v1.14)

PX4-user_guide/tr/ros2/user_guide.md at main · PX4/PX4-user_guide · GitHub

ROS2+PX4 开发笔记_ros2 px4-CSDN博客

[BUG] TypeError: canonicalize_version() got an unexpected keyword argument 'strip_trailing_zero' with setuptools 71.x · Issue #4501 · pypa/setuptools · GitHub

  • 29
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值