Spot.NET 0.1.0

dotnet add package Spot.NET --version 0.1.0
NuGet\Install-Package Spot.NET -Version 0.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Spot.NET" Version="0.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Spot.NET --version 0.1.0
#r "nuget: Spot.NET, 0.1.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Spot.NET as a Cake Addin
#addin nuget:?package=Spot.NET&version=0.1.0

// Install Spot.NET as a Cake Tool
#tool nuget:?package=Spot.NET&version=0.1.0

Spot .NET logomark

npm version npm downloads npm downloads

Spot​​ .NET

Spot .NET is a lightweight C# SDK for controlling Boston Dynamics robots.

Functionality

  • Easily connect and authenticate to multiple robots of different types over grpc connection
  • Support for commands for standing, sitting, walking and more!
  • Containerised and easily extensible commands for adding new functionality
  • Full C# compiled Boston Dynamics protobufs, for building out your own commands
  • Exposes authenticated Spot Channel to add your own functionality such as receiving data from Spot

Usage:

nuget install @sharks-interactive/spot.net

Quick Examples:

Connecting to Spot
using Sharks.Spot;

// Or whatever your entrypoint/function is
public static int main()
{
	// Create Spot Robot object with credentials to authenticate with it
	Robot Spot = new Robot(
		new Credentials()
		{
			Username = "SpotUsername",
			Password = "SpotPassword",
			Address = "192.168.0.0.2:443"
		}
	);

	// When your ready call connect to create the authenticated channel
	Spot.Connect();

	// Calling this will aquire a lease if we haven't already
	Sit(Spot); // Call a sit command on the Robot we've connected to
}

Walk (with callback)

using Sharks.Spot;

// Or whatever your entrypoint/function is
public static int main()
{
	// Create Spot Robot object with credentials to authenticate with it
	Robot Spot = new Robot(
		new Credentials()
		{
			Username = "SpotUsername",
			Password = "SpotPassword",
			Address = "192.168.0.0.2:443"
		}
	);

	Spot.Connect();

	// Api subject to change
	Walk(Spot, 5.0f, Direction.Forwards, WalkFinishedCallback);
}

private void WalkFinishedCallback()
{
	Console.WriteLine("Done walking!");
}

Features:

  • .Connect() authenticates and connects to a Robot
  • AquireLease(Robot) Gets a lease for the given robot
  • Sit(Robot) sends a command for a Robot to sit
  • Stand(Robot) sends a command for a Robot to stand
  • Walk(Robot, Distance, Direction, Callback(optional)) sends a command for a Robot to walk
  • .Shutdown() disconnects from a Robot and cleans up all channels
  • .ContactInfo struct with all the information you need to contact a Robot for custom commands

Options (Required)

Option Type Description
Creds Credentials A struct containing all the necessary credentials to authenticate with the Robot.

How it works:

This library opens an authenticated GRPC channel to a Robot and contains Boston Dynamics protobufs compiled to C#, allowing you to send whatever commands you want to it.

Read the wiki for extra documentation.

Project created and maintained by Sharks Interactive.

Developing:

  • Commit to staging and pr to prod for changes

Code Style:

  • Continuous Integration will handle formatting for you.. Eventually. Do your best to adhere to what's already there if you're contributing.

Acknowledgements:

README.MD and general SDK structure, styling, practices etc, modelled after and taken from the excellent Toucan-JS

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.1.0 209 6/1/2022

Initial Release:
- Connect to Spot
- Send a sit command