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.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f745fb4441f37778a0a881f20465fdaf6ba1478104d3d4ab1b15d0742a4448c9 |
|
MD5 | 232285dfc422823f4a38f2088cfb6b20 |
|
BLAKE2b-256 | ea3ecf771a974dc8f8a9b56f4c7d57bfab98100dc612e8f0d75f8237bf8d2af9 |
Hashes for vive_tracker_apiserver-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aecf7ae5b94014b6275c8739c28117e3d61830a616fbad9eb460ba677bd867ce |
|
MD5 | 737fdfb6adb68ef8cebaabb0f3b002b8 |
|
BLAKE2b-256 | 25f6938bcdeb08e828153d901ee9963411bfb6ece493e511a497e43236fc3cb4 |