ROS 2¶
可通过以下方式扩展 ArduPilot 的功能 ROS (又名机器人操作系统)。
ROS ROS 提供库、工具、硬件抽象、设备驱动程序、可视化程序、消息传递、包管理等,帮助软件开发人员创建机器人应用程序。ROS 已被以下软件取代 ROS2现在,ArduPilot 通过其库原生支持该功能 AP_DDS.
先决条件¶
首先学习使用 ArduPilot,方法是查看相关维基站点的 无人车UGV, 旋翼飞行器 或 固定翼飞行器.尤其是,在尝试使用 ROS 之前,请确保载具在手动和自主模式(如 "引导 "和 "自动")下运行良好。
了解如何使用 ROS 2,请阅读 初学者教程.如果在使用 ROS 时遇到问题,最好先在 ROS 社区论坛上询问(或在谷歌上搜索您的错误)。
我们非常希望改进 ArduPilot 对 ROS 2 的支持,因此如果您发现问题(例如似乎不支持的命令),请在 ArduPilot 问题列表.维护者可以将 ROS 标签
首先,确保您已成功安装 ROS 2 谦卑 .目前,ROS 2 Humble 是唯一支持的版本。
创建一个 ROS 2 工作区.本页假定您的工作区名为 ros2_ws.
在做任何事情之前,请确保您已经 创建 ROS 2 环境 并检查它是否 正确配置.
按照 安装构建依赖项 部分 AP_DDS的 README 安装 MicroXRCEDDSGen。
最后,确保您有 设置 ArduPilot 构建环境.
安装(Ubuntu)¶
为了方便安装,我们将使用 vcs 和一个 ros2.repos 文件
CD ~/ros2_ws vcs 舶来品 --递归 --输入 https://raw.githubusercontent.com/ArduPilot/ardupilot/master/Tools/ros2/ros2.repos 来源
现在更新所有依赖项:
CD ~/ros2_ws sudo 适切 更新 更新
消息来源 /opt/ros/humble/setup.bash rosdep 安装 --从路径 来源 --忽略源代码
# 忽略最后的 rosdep 警告(如果有的话
安装构建依赖项
苏都 适切 安装 default-jre
CD ~/ros2_ws git 复制 --子模块 https://github.com/ardupilot/Micro-XRCE-DDS-Gen.git
CD Micro-XRCE-DDS-Gen ./gradlew 组装
回响 export PATH=\$PATH:$PWD/scripts"; >>; ~/.bashrc
测试 microxrceddsgen 安装:
消息来源 ~/.bashrc microxrceddsgen -版本
# openjdk version "11.0.18" 2023-01-17
# OpenJDK 运行环境(构建 11.0.18+10-post-Ubuntu-0ubuntu122.04)
# OpenJDK 64 位服务器虚拟机(构建 11.0.18+10-post-Ubuntu-0ubuntu122.04,混合模式,共享)
# microxrceddsgen 版本:1.0.0beta2
- ::
⚠️ 如果您在系统中全局安装了 FastDDS 或 FastDDSGen:在这种情况下,eProsima 的库和 Ardupilot 中的打包系统不是确定的。您可能会遇到引入错误版本的库或运行时故障。目前,请避免同时进行本地安装和全局安装。如果您按照 全球安装 部分,应将其移除并转为本地安装。
最后,建立自己的工作空间:
CD ~/ros2_ws colcon 构建 --包至 测试
如果构建失败,当您请求帮助时,请在 "verbose(详细说明)"模式下像这样重新运行构建:
胶管 构建 --包至 测试 --事件处理程序=console_cohesion+
如果您想测试安装,请运行
CD ~/ros2_ws
消息来源 ./install/setup.bash colcon 测试 --软件包--选择 addupilot_dds_tests科尔康 测试结果 --全部 --verbose
安装(MacOS)¶
为了方便安装,我们将使用 vcs 和一个 ros2_macos.repos 文件
CD ~/ros2_ws vcs 舶来品 --递归 --输入 https://raw.githubusercontent.com/ArduPilot/ardupilot/master/Tools/ros2/ros2_macos.repos 来源
现在更新所有依赖项:
CD ~/ros_ws
消息来源 /{path_to_your_ros_distro_workspace}/install/setup.zsh
生成 microxrcedds_gen:
CD ~/ros2_ws/src/microxrcedds_gen ./gradlew 组装
出口 路径=$PATH:$(pwd)/脚本
最后,建立自己的工作空间:
CD ~/ros2_ws colcon 构建 --symlink-install --cmake-args \
-dbuild_testing=关于 \
-dcmake_build_type(构建类型=RelWithDebInfo \
-dcmake_macosx_rpath=假 \
-duagent_socketcan_profile(代理插座可配置文件=关闭 \
-duagent_logger_profile(监控程序配置文件=关闭 \
-使用系统日志=关闭 \
-duagent_use_system_fastdds(使用系统快显=关于 \
-使用系统快显=关于 \
--事件处理程序=桌面通知
如果您想测试安装,请运行
CD ~/ros2_ws colcon 测试 \
--参数 -s -v \
--事件处理程序 console_cohesion+ 桌面通知 \
--软件包--选择 测试
安装(Docker)¶
克隆 ArduPilot docker 项目:
git 复制 https://github.com/ArduPilot/ardupilot_dev_docker.git
建造集装箱
CD ~/ardupilot_dev_docker/docker docker 构建 -t ardupilot/ardupilot-dev-ros -f Dockerfile_dev-ros .
以交互模式启动容器:
装卸工 运行 -它 --名称 ardupilot-dds ardupilot/ardupilot-dev-ros
将另一个 bash 进程连接到运行中的容器:
装卸工 集装箱 执行 -它 ardupilot-dds /bin/bash
其余步骤与 Ubuntu 相同。如果容器上没有 MAVProxy,则可能需要安装。
核心 安装 -U MAVProxy