基于 NOKOV 动捕系统的无人机蜂群开发

基于 NOKOV 动捕系统的无人机蜂群开发

基础环境安装

需要安装 ROS2 和 MavRos 功能包及相关依赖

请参考PX4 开发之旅

NOKOV 动捕系统的安装及配置

NOKOV 动捕系统功能包安装

记得提前将 python 环境切换至 px4 环境

  • 创建工作空间

    1
    mkdir -p ~/px4nokov_ws/src
  • 安装 MavLink 和 MavRos 功能包

  • 安装 Nokov 官方功能包

    1
    2
    cd ~/px4nokov_ws/src
    git clone -b ros2 git@github.com:NOKOV-MOCAP/mocap_nokov.git
  • 编译

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 修改文件权限
    sudo chmod -R 777 /home/orangepi/px4nokov_ws

    # 编译
    cd ~/px4nokov_ws/
    colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

    # 激活环境
    source ~/px4nokov_ws/install/setup.sh

    # 自启动环境(可选)
    sudo vim ~/.bashrc

    # 在最下方添加
    source /home/orangepi/px4nokov_ws/install/setup.sh
    # /home/orangepi/ 为板载目录

NOKOV 动捕系统基础使用及配置

  • 标定

  • 启动 SDK

    在动捕软件数据广播中,选择主机上与机载电脑同网段的地址。将模式选为组播,骨骼坐标选为全局,启用 SDK 流

    1

  • 配置 mocap.yaml 文件

    修改 mocap.yaml 文件

    1
    vim ~/px4nokov_ws/src/mocap_nokov/config/mocap.yaml

    mocap.yaml 文件的修改方式

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    # 这里的数字标识符(如 1, 2)必须对应 NOKOV Seeker 软件中设置的 Rigid Body ID
    mocap_node:
    ros__parameters:
    # 刚体配置
    rigid_bodies:
    1: # 在 NOKOV Seeker 软件里,第一架飞机的 ID 必须设为 1
    # 将位置坐标发布到哪个话题上
    # 可以直接将其改成 mavros话题,省去中间的数据转发节点
    # 如:/uav1/mavros/vision_pose/pose
    pose: "Robot_1/pose"
    # 将刚体投影到二维平面上形成的二维坐标
    # 不需要的话可以删除
    pose2d: "Robot_1/ground_pose"
    # 刚体的几何中心
    child_frame_id: "Robot_1/base_link"
    # 世界坐标,蜂群必须采用统一的世界坐标
    parent_frame_id: "world"
    2: # 在 NOKOV Seeker 软件里,第一架飞机的 ID 必须设为 2
    pose: "Robot_2/pose"
    pose2d: "Robot_2/ground_pose"
    child_frame_id: "Robot_2/base_link"
    parent_frame_id: "world"
    nokov_config:
    server_address: "10.1.1.198" # 改为与在数据广播中选择的地址一致