< >
Home » ROS1与lighthouse定位系统教程 » lighthouse定位系统入门教程-测试单台无人机起飞和降落

lighthouse定位系统入门教程-测试单台无人机起飞和降落

说明

  • 介绍如何通过crazyswarm测试单台无人机起飞和降落
  • 通过单无人机执行helloworld程序来测试集群是否安装正常
  • 本测试基于无人机集群主机配置,如果是自己配置,请参考官方文档
  • Crazyflie无人机集群套件,采购地址

仿真飞行

  • 在真机测试之前,我们先做以下仿真
  • 进入目录
roscd crazyswarm/scripts/
  • 仿真运行,然后通过python3 启动 hello_world.py,加上一个 --sim参数
 python3 hello_world_simple.py --sim
  • 执行效果如图:

请输入图片描述

真机测试

  • 通过调节定位器基站的倾斜角度,使得无人机接收到的数据更稳定

  • 断开 客户端cfclient 与 无人机crazyflie 的连接

  • 1号无人机放置在基站测试区域中心

  • 进入crazyswarm/ros_ws/src/crazyswarm/launch,修改配置文件allCrazyflies.yaml。修改无人机的初始位置initialPosition,这里的单位是米,(0.4,0.4,0)代表x轴为0.4米,y轴为0.4米,Z轴为0。以及修改无人机的id,id:1代表无人机的地址0xE7E7E7E701,id:2代表无人机的地址0xE7E7E7E702,如此类推。Crazyradio PA的channel频道(默认为80)

crazyflies:
  - id: 1
    channel: 80
    initialPosition: [0.0, 0.0, 0.0]
    type: default
  - id: 2
    channel: 90
    initialPosition: [0.4, -0.4, 0.0]
    type: default    
  - id: 3
    channel: 100
    initialPosition: [0.4, 0.4, 0.0]
    type: default
  - id: 4
    channel: 80
    initialPosition: [-0.4, 0.4, 0.0]
    type: default
  - id: 5
    channel: 80
    initialPosition: [0.0, 0.0, 0.0]
    type: default
  - id: 6
    channel: 100
    initialPosition: [0.8, -0.8, 0.0]
    type: default
  - id: 7
    channel: 80
    initialPosition: [0.8, 0.8, 0.0]
    type: default        
  - id: 8
    channel: 90
    initialPosition: [-0.8, 0.8, 0.0]
    type: default   
  - id: 9
    channel: 100
    initialPosition: [-0.8, -0.8, 0.0]
    type: default   
  - id: 10
    channel: 80
    initialPosition: [0, -0.8, 0.0]
    type: default   
  • 进入目录
roscd crazyswarm/scripts/
  • 通过choose.py配置无人机,打开choose.py。先点击Clear清除,然后勾选使用1号无人机,点击battery 查看无人机的电压
python3 chooser.py 
  • 效果图如下,这里是按照配置文件allCrazyflies.yaml的x,y,z位置来排版的。因为排版的拥挤问题,所以有些数字没有显示出来

请输入图片描述

  • 进入crazyswarm/ros_ws/src/crazyswarm/launch,看到新生成的配置文件crazyflies.yaml(注意:这个配置文件crazyflies.yaml,不需要手动修改。通过打开choose.py,点击battery,就会自动生成配置文件crazyflies.yaml)。运行启动无人机程序时,会读取crazyflies.yaml配置文件里面的参数
crazyflies:
- channel: 80
  id: 1
  initialPosition:
  - 0.0
  - 0.0
  - 0.0
  type: default
  • 终端下启动launch文件
roslaunch crazyswarm hover_swarm_cmd.launch
  • 启动后,会弹出rviz,并显示对应的位置
  • 新终端,启动脚本。参数targetHeight:crazyflie飞行的高度
 python3 hello_world.py 
  • 无人机会自动起飞,然后降落

  • 如果无人机起飞后,飘来飘去不稳定,说明无人机crazyflie接受基站的数据不稳定,需要调整一下基站的倾斜角度

演示视频:在lighthouse定位系统中实现1架crazyflie无人机方形飞行

演示视频:在lighthouse定位系统中实现4架crazyflie无人机方形飞行

演示视频:在lighthouse定位系统中实现6架crazyflie无人机方形飞行

演示视频:在lighthouse定位系统中实现10架crazyflie无人机方形飞行

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

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


标签: lighthouse定位系统入门教程