当前位置: 首页 > article >正文

MoCap 动作捕捉开源库教程

系列文章目录


前言


一、motion_capture_tracking

该资源库是一个 ROS 2 软件包,可接收来自各种运动捕捉系统的数据:

  • VICON
  • Qualisys
  • OptiTrack
  • VRPN
  • NOKOV
  • FZMotion
  • Motion Analysis

对于大多数系统,有三种不同的跟踪模式可供选择:

  • 通过官方软件(如 Vicon Tracker)使用独特的标记排列跟踪刚体姿势。
  • 通过自定义坐标系跟踪刚体姿势,使用相同的标记排列。
  • 使用自定义的坐标系到坐标系跟踪技术跟踪无标记的标记位置。

数据通过 tf2 和支持不同 QoS 设置的 /poses 主题直接发布。

该软件包最初是为 Crazyswarm 开发的,用于跟踪多达 50 个飞行机器人。

1.1 构建

要从源代码编译,请从该版本库克隆最新版本到 ROS 2 工作区,然后使用以下命令编译软件包

cd ros_ws/src
git clone --recurse-submodules https://github.com/IMRCLab/motion_capture_tracking
cd ../
colcon build

1.2 使用方法

ros2 launch motion_capture_tracking launch.py

各种选项可在 config/cfg.yaml 中进行配置。

1.2.1 Optitrack: 特定供应商说明

有两种可能的后端。

  • “Optitrack "使用直接 Depacketizers 选项。它适用于所有平台,但往往与未经测试的 Motive 版本存在兼容性问题,而且不支持所有功能。
  • “optitrack_closed_source" 使用官方 SDK(版本 4.1.0)(仅适用于 x64 Linux;以二进制库形式发布)

确保在 Motive 中进行了以下设置:

菜单 “编辑/设置/流媒体”:

  • 启用 NatNet
  • 使用 “传输类型 ”组播
  • 启用无标记 Markers 和刚体
  • 使用 “向上轴”: Z 轴
  • 使用默认端口(1510 命令,1511 数据)

我们建议您先试用 “optitrack”,如果遇到任何问题,再切换到 “optitrack_closed_source”。

1.2.2 NOKOV: 供应商特定说明

由于 SDK 不公开,因此需要添加 SDK 并从源代码构建。

  • 将 SDK 放入 motion_capture_tracking/deps/libmotioncapture/deps/nokov_sdk(例如文件 motion_capture_tracking/deps/libmotioncapture/deps/nokov_sdk/lib/libSeekerSDKClient.so)。
  • 在 motion_capture_tracking/CMakeLists.txt 中,将 set(LIBMOTIONCAPTURE_ENABLE_NOKOV OFF) 更改为 set(LIBMOTIONCAPTURE_ENABLE_NOKOV ON)

使用 colcon build 重新构建

1.3 技术背景

ROS 软件包是对 libmotioncapture 和 librigidbodytracker 的封装。前者是一个 C++ 库,提供了不同运动捕捉 SDK 的统一接口,用于收集刚体的姿态信息和/或无标记点云。后者是一个 C++ 库,需要以下输入:i) 一阶动力学模型;ii) 刚体的初始姿态;iii) 每一帧的点云。它为每一坐标系输出机器人姿势的最佳估计值。

有关刚体姿态跟踪的更多信息,请参见

@inproceedings{crazyswarm,
  author    = {James A. Preiss* and
               Wolfgang  H\"onig* and
               Gaurav S. Sukhatme and
               Nora Ayanian},
  title     = {Crazyswarm: {A} large nano-quadcopter swarm},
  booktitle = {{IEEE} International Conference on Robotics and Automation ({ICRA})},
  pages     = {3299--3304},
  publisher = {{IEEE}},
  year      = {2017},
  url       = {https://doi.org/10.1109/ICRA.2017.7989376},
  doi       = {10.1109/ICRA.2017.7989376},
  note      = {Software available at \url{https://github.com/USC-ACTLab/crazyswarm}},
}

无标签标记跟踪采用的是每一帧最小成本最大流量公式的最优分配。

1.4 相关工作

如果不需要定制跟踪,这些是当前的替代方案:

  • https://github.com/MOCAP4ROS2-Project (VRPN、Vicon、Optitrack、Qualisys、Technaid 各为独立软件包)
  • https://github.com/ros-drivers/mocap_optitrack (仅 Optitrack;Direct Depacketizers)
  • https://github.com/alvinsunyixiao/vrpn_mocap (仅 VRPN)
  • https://github.com/ros-drivers/vrpn_client_ros (仅 VRPN)


http://www.kler.cn/a/370102.html

相关文章:

  • OGG 19C 集成模式启用DDL复制
  • Flink Gauss CDC:深度剖析存量与增量同步的创新设计
  • 26考研资料分享 百度网盘
  • 经验收录/用复盘的心态去学习
  • 初始SpringBoot:详解特性和结构
  • 如何在 Pytest 中使用命令行界面和标记运行测试
  • RNN与Self-Attention
  • 设计模式(五)原型模式详解
  • python之爬虫遇到返回内容乱码
  • 2024年10月28日练习(双指针算法)
  • 了解VGG网络并利用PyTorch实现VGG网络
  • 计算服务器:开启科学计算新变革的强大引擎
  • 论文 | PROMPTING GPT-3 TO BE RELIABLE
  • Vue.js 入门指南:从基础知识到核心功能
  • Git 标签管理
  • 安康旅游网站:SpringBoot设计与实现详解
  • .NET使用Moq开源模拟库简化单元测试
  • 数据分析-33-时间序列特征工程及feature-engine库的应用
  • 微信小程序 setData数据量过大的解决与分页加载的实现
  • 目标跟踪算法-卡尔曼滤波详解
  • 洗牌算法(Shuffle Algorithm)Fisher-Yates 洗牌算法详细解读
  • 【ChatGPT】如何通过反向思维改进Prompt的编写
  • GAN原理及代码实现
  • 51单片机完全学习——DS18B20温度传感器
  • 医院信息化与智能化系统(12)
  • 极狐GitLab 发布安全补丁版本17.5.1, 17.4.3, 17.3.6