h-signature
Library for computing the h-signature as defined by https://www.roboticsproceedings.org/rss07/p02.pdf
Science Score: 75.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
✓Institutional organization owner
Organization um-arm-lab has institutional domain (arm.eecs.umich.edu) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.8%) to scientific vocabulary
Repository
Library for computing the h-signature as defined by https://www.roboticsproceedings.org/rss07/p02.pdf
Basic Info
- Host: GitHub
- Owner: UM-ARM-Lab
- License: mit
- Language: C++
- Default Branch: master
- Size: 84 KB
Statistics
- Stars: 0
- Watchers: 10
- Forks: 0
- Open Issues: 0
- Releases: 3
Metadata Files
README.md
H-Signature
A C++ or Python Library for computing the h-signature as defined by Bhattacharya, Likhachev, and Kumar in their RSS Paper.
What is the H-signature? In the simplest case, it tells you whether two closed 3D curves are linked, or unlinked. The figure below shows some examples.

In the general case, the H-signature is computed between one closed curve $\tau$ and a skeleton of closed curves $S={S1,\dots,Sm}$. In code, each curve is a matrix of 3xN or Nx3 where N is the number of points in the curve. The H-signature is a vector (ordered list) of integers, where each element correspond to the h-signature of $\tau$ with respect to one curve in $S$.
Installation
For python:
```shell pip install h-signature
```
For C++:
```shell
The only option we offer is building from source with cmake
git clone git@github.com:UM-ARM-Lab/h-signature.git cd h-signature mkdir build
The only dependency is Eigen3
sudo apt install libeigen3-dev
Build and run tests
cd build cmake .. make ctest ```
API
There is only one function!
```python
Python with numpy
from hsignature.hsignaturenp import geth_signature
Tau is an [Nx3] numpy array and skeleton is a dict of [3xN] numpy arrays
hsig = gethsignature(tau, skeleton) print(hsig) ```
```c++ // C++ with Eigen
include
// The above header has these typedefs
// typedef Eigen::Matrix3Xd Loop;
// typedef std::map
// And this is the function, that's it! HSignature gethsignature(Loop const &loop, Skeleton const & skeleton); ```
Reference
If you use this package in your research, consider citing
@software{mitrano_hsignature_2023,
author = {Peter Mitrano},
title = {{h-signature library}},
year = {2023}
}
Owner
- Name: The Autonomous Robotic Manipulation Lab
- Login: UM-ARM-Lab
- Kind: organization
- Location: University of Michigan
- Website: arm.eecs.umich.edu
- Repositories: 128
- Profile: https://github.com/UM-ARM-Lab
The Autonomous Robotic Manipulation Lab studies motion planning, manipulation, and human-robot collaboration.
Citation (CITATION.cff)
cff-version: 1.1.0
message: "If you use this software, please cite it as below."
authors:
- family-names: Mitrano
given-names: Peter
orcid: https://orcid.org/0000-0002-8701-9809
title: H-Signature
doi: 10.5281/zenodo.8374620
version: v0.0.5
date-released: 2023-10-25
GitHub Events
Total
Last Year
Issues and Pull Requests
Last synced: over 1 year ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0