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

基于 NOKOV 动捕系统的无人机蜂群开发
Aya基于 NOKOV 动捕系统的无人机蜂群开发
NOKOV 动捕系统配置
网络配置
无人机板载、动捕主机、动捕系统摄像头、PC 主机处于同一 10.1.1.1 网段下
在动捕主机上将网络 IP 网关改为 10.1.1.1,并关闭防火墙
再使路由器连接动捕主机,动捕主机连接交换机,交换机连接动捕系统
并在路由器内对 IP 进行设置,改为 10.1.1.1
无人机板载和 PC 主机连接 WIFI
并在配置内将 IP 改为 10.1.1.*(如 10.1.1.2),注意不要和已存在的 IP 重复
注:该套配置下仅为了使无人机、动捕主机、动捕系统摄像头、PC 主机能够进行交互,没有上网功能,如需网络,则需要给路由器连接上网口
系统配置
需要进行 L 型和 T 型标定,再将无人机标定创建为刚体
无人机朝向动捕系统中的 x 轴,再在系统中打开 SDK 流
并确保无人机刚体 ID 和 ROS 中配置相同
PS:无人机使用 mavros 时:X 轴为机头方向,Y 轴为机头左边,Z 轴朝上
基础环境安装
需要安装 ROS2 和 MavRos 功能包及相关依赖
请参考PX4 开发之旅
NOKOV 动捕系统的安装及配置
NOKOV 动捕系统功能包安装
记得提前将 python 环境切换至 px4 环境
创建工作空间
1
mkdir -p ~/px4nokov_ws/src
安装 MavLink 和 MavRos 功能包
安装 Nokov 官方功能包
1
2cd ~/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 流
配置 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"
# 世界坐标,蜂群必须采用统一的世界坐标,正常情况下填 map
parent_frame_id: "map"
2: # 在 NOKOV Seeker 软件里,第二架飞机的 ID 必须设为 2
pose: "Robot_2/pose"
pose2d: "Robot_2/ground_pose"
child_frame_id: "Robot_2/base_link"
parent_frame_id: "map"
nokov_config:
server_address: "10.1.1.198" # 改为与在数据广播中选择的地址一致(动捕主机地址)








