Unitree quadruped and humanoid robots
Where a Tallyfy process fits beside Unitree robots
Section titled “Where a Tallyfy process fits beside Unitree robots”Unitree Robotics ↗[1] builds four-legged and humanoid robots. Some inspect sites such as substations and refineries ↗[2], and send their readings to a control center. Tallyfy could track what your people do next: who checks an odd reading, who signs it off, and by when.
Nothing connects the two today. Your developer would write a small program that runs beside the robot and talks to both. Unitree also sells its own inspection system, covered below.
What Unitree sells, and which editions you can program
Section titled “What Unitree sells, and which editions you can program”The model names here are Unitree’s own, as of October 2026. Only some editions accept outside software, which Unitree calls “secondary development”.
Four-legged robots:
- Go2 ↗[3] is a consumer and education model, sold as AIR, PRO, X and EDU. The EDU is programmable, and the X partly.
- As2 ↗[4] comes in the same four editions. The X and EDU are programmable.
- B2 ↗[5] is an industrial model for inspection and rescue work. There’s an explosion-proof B2-Ex ↗[6] too.
- A2 ↗[7] is a programmable industrial model for logistics, inspection and rescue. It carries about 25kg while walking, or about 100kg standing still.
- Wheeled versions are the Go2-W ↗[8], As2-W ↗[9], B2-W ↗[10] and A2-W ↗[11].
Humanoid robots:
- R1 ↗[12], G1 ↗[13], G1+ ↗[14] and H2 ↗[15] each have an EDU edition. It’s the only one you can program.
- Unitree also lists the H2 Plus ↗[16], announced for academic research ↗[17], and the H1 and H1-2 ↗[18].
As of October 2026, two low-priced editions you can’t program are the Go2 AIR, from $1600 ↗[19], and the base G1, at $13.5K ↗[20].
One reseller, STEMfinity, adds names of its own for G1 EDU versions, such as EDU Standard (U1) ↗[21], EDU Plus (U2) ↗[22] and EDU Ultimate A ↗[23]. Unitree’s G1 page ↗[24] lists only G1 and G1 EDU.
What outside software can and can’t do
Section titled “What outside software can and can’t do”On a programmable edition, your own program can use Unitree’s developer kit (SDK). It can read the robot’s state, such as battery voltage ↗[25] or position and speed ↗[26]. It can also send movement commands. On the Go2 those include move at a set speed, stand up, sit and stop ↗[27].
As of October 2026, the SDK has two limits:
- No calls from the internet. The SDK reaches the robot over the robot’s own network ↗[28], and its GitHub pages describe no web interface. Unitree doesn’t say so itself, but that means a cloud service such as Tallyfy can’t call a robot directly. A program beside the robot has to make every call.
- No single call for a whole job. The Python SDK ↗[29] describes movement and service calls, so your program has to break a job into those. In July 2026 Unitree added a separate navigation interface ↗[30] with example scripts ↗[31] such as MoveToAction and GoHomeAction.
What Unitree already covers
Section titled “What Unitree already covers”Unitree sells an inspection system ↗[32] for the B2, B2-Ex, A2 and As2. As of October 2026, Unitree says it:
- Runs scheduled inspections on its own, with remote manual control.
- Schedules several robots from one place.
- Writes inspection reports and keeps past data to compare.
Unitree also has an app platform called UniStore ↗[33], and it sends software updates over the air ↗[34].
If scheduled rounds and reports are all you need, Unitree’s system covers them without Tallyfy.
Where Tallyfy could fit
Section titled “Where Tallyfy could fit”Unitree’s tools run the robot. Tallyfy tracks work that people do.
Say a robot reads a high temperature on its round. Your program could launch a Tallyfy process from a template you wrote for that case. Tallyfy then assigns each task to a person with a deadline, collects what they find in form fields, and shows progress in the Tracker view.
When the procedure changes, you edit the template once. Every process launched after that uses the new steps.
This diagram follows one finding from the robot to your team.
What to notice:
- Only your own program talks to the robot.
- Tallyfy starts work for people. It doesn’t steer the robot.
- The program and the template are yours to build and maintain.
For developers
Section titled “For developers”(Skip this unless you’re setting up the technical side.)
This section is an example. Tallyfy doesn’t publish or support a Unitree connector, and the code is an untested sketch.
As of October 2026, Unitree’s SDKs are on GitHub:
- unitree_sdk2 ↗[35] is the C++ SDK, built on CycloneDDS ↗[36]. Its example folders ↗[37] cover a2, as2, b2, b2w, g1, go2, go2w, h1, h2 and r1.
- unitree_sdk2_python ↗[38] needs Python 3.8 or later and imports as
unitree_sdk2py↗[39]. - unitree_ros2 ↗[40] is for ROS 2, tested on foxy and humble.
- unitree_legged_sdk ↗[41] is the older SDK for the Go1 generation. Skip it for the models above.
The Go2 takes high-level commands through SportClient ↗[42], with calls such as Move(vx, vy, vyaw), StandUp, Sit and StopMove. The G1 humanoid uses LocoClient ↗[43].
Unitree’s examples run from a computer connected to the robot’s network ↗[44]. Yours also needs internet access to reach Tallyfy. Use a Tallyfy API application token, because a personal token stops working when that user logs out.
This sketch stops a Go2 and launches a Tallyfy process. It leaves out the SportClient setup, which Unitree’s examples show.
# Example only: an untested sketch. Tallyfy doesn't ship a Unitree connector.import os
import requestsfrom unitree_sdk2py.go2.sport.sport_client import SportClient
ORG_ID = os.environ["TALLYFY_ORG_ID"]ACCESS_TOKEN = os.environ["TALLYFY_ACCESS_TOKEN"]TEMPLATE_ID = "TEMPLATE_ID_TO_LAUNCH"READING_FIELD_ID = "KICKOFF_FIELD_TIMELINE_ID"
def hand_over_to_people(sport_client: SportClient, reading: str) -> str: """Stop the Go2, then launch a Tallyfy process for the finding.
Pass in a SportClient you've already set up. That setup isn't shown. """ sport_client.StopMove()
response = requests.post( f"https://go.tallyfy.com/api/organizations/{ORG_ID}/runs", headers={ "Authorization": f"Bearer {ACCESS_TOKEN}", "Accept": "application/json", "X-Tallyfy-Client": "APIClient", "Content-Type": "application/json", }, json={ "checklist_id": TEMPLATE_ID, "name": "Robot finding - substation round", "prerun": {READING_FIELD_ID: reading}, }, timeout=15, ) response.raise_for_status() return response.json()["data"]["id"] # ID of the new processThe request is the standard launch process call, and each prerun key is a kick-off form field’s timeline ID. Update task and complete task write a result back and close the task.
Related articles
Section titled “Related articles”Robotics > Apptronik Apollo humanoid robots
Robotics > Universal Robots collaborative arms
Robotics > KUKA industrial robots and cobots