< >
Home » ROS2与STM32入门教程 » ROS2与STM32入门教程-micro-ROS在Crazyflie上应用

ROS2与STM32入门教程-micro-ROS在Crazyflie上应用

说明

  • 该演示旨在展示 micro-ROS 的低资源消耗及其可扩展和模块化通信系统的优势。
  • 特别是,它专注于 micro-ROS 的中间件层,其中 eProsima Micro XRCE-DDS 是默认实现。
  • 该软件基于DDS-XRCE有线协议,为micro-ROS客户端-服务器通信提供以下特性:
Multi-transport protocol support (UDP, TCP and Serial).
Peer-to-peer communication.
Server discovery.
Best-effort and reliable communication.
Message fragmentation

构想

  • MAV(微型飞行器)飞行操作员通过 GCS(地面控制站)指挥飞越给定区域。
  • 整个区域分布各种远程传感器用于采集环境数据(温度、压力和湿度)。
  • 飞行操作员应命令 MAV 朝向远程传感器,一旦位于远程传感器上方,MAV 应与远程传感器建立连接以收集其数据。
  • 最后,飞行操作员应命令 MAV 飞向起始位置。

参与者与话题

  • 在此演示中,有三个不同的micro-ROS参与者(MAV、GCS 和远程传感器),它们发布/订阅六个主题:
/drone/odometry: MAV’s odometry.
/drone/attitude: MAV’s attitude.
/flight/cmd: flight commands.
/sensor/temperature: Remote Sensors’ temperature.
/sensor/pressure: Remote Sensors’ pressure.
/sensor/humidity: Remote Sensors’ humidity.

MAV

  • MAV是微型飞行器Crazyflie 2.1 :它运行一个micro-ROS客户端应用程序,负责发布其姿态和里程计,并订阅飞行命令和远程传感器数据。

GCS

  • GCS是地面站:运行micro-ROS-Agent 应用程序的通用计算机,负责发布飞行命令,并订阅 MAV 的姿态和里程数据。

Remote Sensors

  • Remote Sensors是远程传感器:SparkFun 气象站连接到 Raspberry Pi 3A+,该 Raspberry Pi 3A+ 运行 micro-ROS-Agent 和 micro-ROS-Client 应用程序,负责发布远程传感器的数据。

  • 下图展示了这个demo的当前状态。

通讯

  • 在这个演示中,参与者之间有两种不同类型的通信。

  • 一方面,GCS 和 MAV 之间的链路遵循客户端-服务器通信模式。 GCS 使用 micro-ROS-Agent 应用程序作为服务器,而 MAV 通过 micro-ROS-Client 应用程序作为客户端。

  • 另一方面,MAV 和远程传感器之间的链接遵循点对点模式。 两个参与者都充当客户端,通过在远程传感器端运行的微型 ROS-Agent 应用程序进行通信。 在这种情况下,micro-ROS-Agent应用程序充当集中式代理,MAV 和远程传感器在其中交换其话题,而无需 ROS 2 输出。 该应用程序还允许 MAV 动态发现远程传感器。

硬件

1 x Crazyflie 2.1,
1 x Crazyradio PA,
1 x Flow deck v2,
1 x Crazyflie-compatible remote controller

刷固件

  • 运行构建的docker
docker-compose run cf_builder
  • 配置和编译固件
ros2 run micro_ros_setup configure_firmware.sh crazyflie_position_publisher
ros2 run micro_ros_setup build_firmware.sh

ros2 run micro_ros_setup flash_firmware.sh

使用

docker-compose up -d
  • 无人机通电,连接PA
  • 停止应用
docker-compose down

项目目的

  • 该软件尚未准备好用于生产用途。 它既没有针对特定用例进行开发也没有进行测试。
  • 但是,适用的开源许可证的许可条件允许您根据您的需求调整软件。
  • 在安全相关设置中使用该软件之前,请确保该软件满足您的要求并根据任何适用的安全标准(例如 ISO 26262)进行调整。

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2与stm32入门教程