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)

猜你喜欢

转载自blog.csdn.net/weixin_46300916/article/details/142898717