bvh_broadcaster: broadcasting bvh motion capture as tf in ROS
This package broadcasts BVH files (a motion capture data format) as TF transfromations.
Input contains two string parameters:
- A path to BVH file, e.g., example.bvh
- A name of frame for motion capture to be loaded on, e.g., "world" frame, or "odom" frame.
You can find relevant BVH-formatted CMU MoCap from this post. Get BVH-formatted motion capture data from here.
python bvh_broadcaster.py [-h] [-n NAME] [-l] bvh_file base_frame
positional arguments:
bvh_file A path to bvh file that you want to broadcast
base_frame An existing frame in rviz on which the skeleton will
be loaded
optional arguments:
-h, --help show this help message and exit
-n NAME, --name NAME Node name, default: BVHBroadcaster
-l, --loop Loop broadcasting
For example:
# add execution access
chmod +x scripts/bvh_broadcaster.py
# loop broadcasting bvh to world frame
python scripts/bvh_broadcaster.py example/13_14.bvh world -l
Now, you can view the result in rviz:
The original actor and BVH file are as follows:
CMU provides a lot of useful motion capture data, see CMU MoCap. Nevertheless, these data are not presented in BVH format. You can find relevant BVH-formatted CMU MoCap from this post.