Viam provides an open source robot architecture that provides robotics functionality via simple APIs
Website: viam.com
Documentation: docs.viam.com
Cloud App: app.viam.com
- Community Slack: join
- Support: https://support.viam.com
- Install
make
. - Run
make setup
to install dev environment requirements.
- Build:
make server
. Then run./bin/<your architecture>/server [parameters]
- Run without building:
go run web/cmd/server/main.go [parameters]
Example with a dummy configuration: go run web/cmd/server/main.go -config etc/configs/fake.json
. Then visit http://localhost:8080 to access remote control.
- SimpleServer - example for creating a simple custom server.
- MySensor - example for creating a custom sensor,
- MyComponent - example for creating a custom resource subtype.
Multiple SDKs are available for writing client applications that interface with the Viam RDK.
- Go: Provided by this repository here. Documentation can be found here
- Python: Docs, Repository
- Rust: Repository
Sign the Contribution Agreement before submitting pull requests.
The API is defined with Protocol Buffers/gRPC which can be found at https://github.com/viamrobotics/api.
- Write tests!
- Follow this Go Style Guide.
- Run
make lint
andmake test
. - Run
make build
and commit resulting frontend artifacts. - Use imperative mood for commits (see Git Documentation).
- Prefer metric SI prefixes where possible (e.g. millis) https://www.nist.gov/pml/weights-and-measures/metric-si-prefixes. The type of measurement (e.g. meters) is not necessary if it is implied (e.g. rulerLengthMillis).
To start the client development environment, first run the same go run
command mentioned in Building and Using, but with the environmental variable ENV=development
(e.g. ENV=development go run web/cmd/server/main.go -debug -config etc/configs/fake.json
).
Then navigate to web/frontend
and run npm start
in a new terminal tab. Visit localhost:8080
to view the app, not localhost:5173
. The latter is a hot module replacement server that rebuilds frontend asset changes.
We run LicenseFinder in CI to verify 3rd-party libraries have approved software licenses.
If you add a 3rd-party library to this project, please run make license
to verify that it can be used.
Copyright 2021-2022 Viam Inc.
AGPLv3 - See LICENSE file