UnderAutomation
    • 홈페이지
  • 제품
    • Universal Robots SDK
    • Fanuc SDK
    • Yaskawa SDK
    • Staubli SDK
      • 개요
      • 다운로드
      • 문서
        • Overview
        • Get started with .NET
        • Get started with Python
        • SOAP Overview
        • Licensing
    • 견적 • 주문
    • 라이선스
질문이요?

[email protected]

문의하기
UnderAutomation
  • 홈페이지
  • 제품
      • 개요
      • 다운로드
      • 문서
      • 개요
      • 다운로드
      • 문서
      • 개요
      • 다운로드
      • 문서
      • 개요
      • 다운로드
      • 문서
  • 견적 • 주문
  • 문의하기
⌘Q
This page is only available in English.
Staubli SDK documentation
Documentation home
SOAP Overview

Get started with Python

Staubli Python SDK provides a simple and efficient way to control Staubli robots using Python. No additional installations are required on the robot controller.

  • Introduction
  • Installation
  • Features
    • Connect to Your Controller
    • Explore System Information
    • Track Positions & Joints
    • Kinematics Helpers
    • Motion Control Lifecycle
    • Physical & Logical I/O Management
    • Application & Project Control
    • Task Supervision
  • Compatibility
  • License
  • Contributing

🚀 Introduction

✅ Install the SDK with pip install UnderAutomation.Staubli.
✅ Connect to Staubli controllers via the native SOAP protocol.
✅ Control motion, read/write I/O, monitor robots, and manage applications directly from Python.

Highlights:

  • ⚡ Real-time SOAP communication through the embedded UnderAutomation.Staubli.dll
  • 🐍 Pythonic wrappers for controllers, parameters, and data objects
  • 🔁 Full motion lifecycle & kinematics helpers
  • 📡 Access to physical & logical I/Os
  • 📦 VAL 3 project and task management

📦 Installation

pip install UnderAutomation.Staubli

The package bundles the required .NET assemblies and depends on pythonnet to bridge Python and .NET. Make sure the target machine has a compatible .NET runtime installed.


✨ Features

🔌 Connect to Your Controller

from underautomation.staubli.staubli_controller import StaubliController
from underautomation.staubli.connection_parameters import ConnectionParameters
controller = StaubliController()
parameters = ConnectionParameters("192.168.0.1")
parameters.soap.enable = True
parameters.soap.user = "default"
parameters.soap.password = "default"
controller.connect(parameters)

UnderAutomation Staubli communication SDK


🔍 Explore System Information

  • List robots: controller.soap.get_robots()
  • Inspect controller parameters: controller.soap.get_controller_parameters()
  • Retrieve DH parameters: controller.soap.get_dh_parameters(robot=0)
robots = controller.soap.get_robots()
controller_params = controller.soap.get_controller_parameters()
dh = controller.soap.get_dh_parameters(robot=0)

UnderAutomation Staubli communication SDK


📍 Track Positions & Joints

  • Cartesian pose + joints: controller.soap.get_current_cartesian_joint_position()
  • Joint-only feedback: controller.soap.get_current_joint_position()
cartesian = controller.soap.get_current_cartesian_joint_position(robot=0)
print(cartesian.joints_position)

UnderAutomation Staubli communication SDK


🧠 Kinematics Helpers

  • Forward kinematics: controller.soap.forward_kinematics(robot, joints)
  • Inverse kinematics: controller.soap.reverse_kinematics(robot, joints, target, config, joint_range)
joints = controller.soap.get_current_joint_position(robot=0)
forward = controller.soap.forward_kinematics(0, joints)
joint_range = controller.soap.get_joint_range(robot=0)
reverse = controller.soap.reverse_kinematics(0, joints, forward.position, forward.config, joint_range)

UnderAutomation Staubli communication SDK


⚙️ Motion Control Lifecycle

  • Power management: controller.soap.set_power(True)
  • Motion primitives: move_l, move_jc, move_jj, move_c
  • Lifecycle control: stop_motion, reset_motion, restart_motion
from underautomation.staubli.soap.data.motion_desc import MotionDesc
from underautomation.staubli.soap.data.frame import Frame
mdesc = MotionDesc()
mdesc.velocity = 250
frame = Frame()
frame.px, frame.py, frame.pz = 300, 0, 450
controller.soap.set_power(True)
controller.soap.move_l(0, frame, mdesc)

UnderAutomation Staubli communication SDK


📡 Physical & Logical I/O Management

  • Discover I/Os: controller.soap.get_all_physical_ios()
  • Read states: controller.soap.read_ios([...])
  • Write outputs: controller.soap.write_ios([...], [...])
physical_ios = controller.soap.get_all_physical_ios()
controller.soap.write_ios(["out1"], [1.0])

UnderAutomation Staubli communication SDK


📦 Application & Project Control

  • Load projects: controller.soap.load_project("Disk://project.pjx")
  • Inspect VAL apps: controller.soap.get_val_applications()
  • Control lifecycle: stop_application(), stop_and_unload_all()
controller.soap.load_project("Disk://project.pjx")
applications = controller.soap.get_val_applications()
controller.soap.stop_and_unload_all()

UnderAutomation Staubli communication SDK


🔁 Task Supervision

  • List VAL tasks: controller.soap.get_tasks()
  • Control execution: task_suspend, task_resume, task_kill
tasks = controller.soap.get_tasks()
controller.soap.task_kill(tasks[0].name, tasks[0].created_by)

✅ Compatibility

  • Controllers: CS8, CS9
  • Operating Systems: Windows, Linux, macOS
  • Python: 3.7+
  • Dependency: pythonnet 3.0+

📜 License

⚠️ Commercial license required
🔗 View EULA

Register your license at runtime with:

from underautomation.staubli.staubli_controller import StaubliController
license_info = StaubliController.register_license("Your Company", "XXXX-XXXX")
print(license_info.state)

🤝 Contributing

You're welcome to:

  • Submit issues & pull requests
  • Share feature suggestions
  • Help improve documentation & samples

👉 Contribute on GitHub

Documentation home
SOAP Overview

Universal Robots, Fanuc, Yaskawa 또는 Staubli 로봇을 .NET, Python, LabVIEW 또는 Matlab 애플리케이션에 쉽게 통합

UnderAutomation
문의하기Legal
제품
Universal Robots SDKFanuc SDKYaskawa SDKStaubli SDK
enEnglish
frFrançais
deDeutsch
esEspañol
zh中文
ja日本語
ko한국어

© All rights reserved.