Vive Tracker APIServer
Project description
Vive Tracker APIServer
Get Started
pip install vive-tracker-apiserver
From source:
git clone https://github.com/mvig-robotflow/vive-tracker-apiserver
cd vive-tracker-apiserver
python setup.py install
Usage
Set up the SteamVR
First, install SteamVR. Configure and pair the trackers with HMD or receiver.
Then run the configuration command:
python -m vive_tracker_apiserver configure
This will automatically detect all trackable devices and generate a config.yaml
file under $pwd
. It looks like this
vive_tracker_apiserver:
api:
interface: 0.0.0.0
port: 8080
data_path: ./tracker_data
debug: false
trackers:
- name: tracker_1
uid: LHR-656F5409
- name: tracker_2
uid: LHR-6A736404
The screen might blink during this configuration
After the configuration. Run the apiserver with configuration
python -m vive_tracker_apiserver serve --config=config.yaml
...
INFO:apiserver.app:loading openvr components
...
INFO:apiserver.app:server is tarted!
INFO:apiserver.app:vive tracker service listen at 8080
INFO:apiserver.app:vive tracker config Config(path='./config.yaml', trackers=[TrackerConfig(uid='LHR-656F5409', name='tracker_1'), TrackerConfig(uid='LHR-6A736404', name='tracker_2')], api_port=8080, api_interface='0.0.0.0', debug=False, data_path='./tracker_data', valid=True)
Here is a minimal working example:
import time
from vive_tracker_apiserver.client import Client
def get_description(data):
return str([f'id:{item.meta.uid} x: {item.pos_x:.2f} y: {item.pos_y:.2f} z: {item.pos_z:.2f}' for item in data.payload])
def test_server():
endpoint = "localhost:8080"
c = Client(endpoint)
response = c.get_group()
print("GetTrackerGroup client received: " + str(response))
stream = c.open_group_stream()
print("GetTrackerGroupStream client received: " + str(response))
try:
while True:
data = stream.read()
if data.meta.valid == False:
time.sleep(0.05)
continue
print('\r'+get_description(data), end="")
except KeyboardInterrupt as e:
stream.close()
if __name__ == '__main__':
test_server()
gRPC Server
Run this command
python -m vive_tracker_apiserver serve
Testing with cli tools
python -m vive_tracker_apiserver test.server
You will be asked to input API endpoint.
Testing with Open3D visualization
python -m vive_tracker_apiserver test.visualize
You will be asked to input API endpoint.
Generate Client
First run cd vive_tracker_apiserver/grpc
, then run:
# cd vive_tracker_apiserver/grpc
python -m grpc_tools.protoc -I../../manifests/protos --python_out=. --pyi_out=. --grpc_python_out=. ../../manifests/protos/tracker_packet.proto
You might need to replace line 5 of vive_tracker_apiserver/grpc/tracker_packet_pb2_grpc.py
with import vive_tracker_apiserver.grpc.tracker_packet_pb2 as tracker__packet__pb2
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for vive-tracker-apiserver-0.0.7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75621a6c3f2bf7176d977ebe209f80d7bb4bbe6c85bcfb38056615eacf3d9ccb |
|
MD5 | e849084ba69fa6c99391b6bd29247e08 |
|
BLAKE2b-256 | d9bd429d0bd13f222cde80c7dde82d2c8549cffdc676f981d01ddc4c70f8f02e |
Hashes for vive_tracker_apiserver-0.0.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15ecc2c2b5ad67313881f42bdfb3df55693dfc9f60fd4fa2498e7b2076f884a4 |
|
MD5 | b3797d3ea96dbbcdd0e56a7702390800 |
|
BLAKE2b-256 | 915f339366d9a20c3d9563c9670cd93baab837e710f5c4edda1938efe07cf046 |