Skip to content

Python library for communicating with Yaskawa Motoman robots. Control, monitor, and automate Yaskawa robots via High-Speed Ethernet Server (HSES). ✅ Real-time motion control, IO/register access, alarm handling, job management & more.

Notifications You must be signed in to change notification settings

underautomation/Yaskawa.py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Yaskawa Communication SDK for Python

UnderAutomation Yaskawa communication SDK

Python 3.7+ Platform License

🤖 Communicate effortlessly with Yaskawa robots using Python

The Yaskawa SDK for Python enables real-time control and data exchange with Yaskawa Motoman robots via the High-Speed Ethernet Server (HSES) protocol.

Ideal for automation, research, and integration projects, it provides high-speed UDP communication, motion control, robot monitoring, job handling, and more.

🔗 More Info: https://underautomation.com/yaskawa
🔗 Also available in 🟦 .NET and 🟨 LabVIEW


⭐ Star the project
👁️ Watch for updates


🚀 TL;DR

  • 📡 High-Speed Ethernet Server
  • 🤖 Move robot in Cartesian or joint space
  • 🛠️ Access robot status, alarms, and I/O
  • 💾 Read/write registers and data types
  • 🧠 Control and monitor jobs
  • ✍️ Send pendant messages, reset alarms, manage files

No Yaskawa options or additional hardware required.


✨ Example Usage (Python)

from underautomation.yaskawa import YaskawaRobot

robot = YaskawaRobot()
robot.connect("192.168.0.1")

# Check connection
if robot.high_speed_e_server.connected:
    print("Connected!")

# Move in Cartesian
robot.high_speed_e_server.move_cartesian(
    x=1000, y=10, z=0,
    rx=0, ry=0, rz=0,
    speed=10,
)

# Get current joint position
joint_position = robot.high_speed_e_server.get_robot_joint_position()
print(joint_position.axes)

# Read and write register
reg = robot.high_speed_e_server.read_register(10, count=2)
robot.high_speed_e_server.write_register(10, [1234, 5678])

# Reset alarm
robot.high_speed_e_server.alarm_reset(AlarmResetType.reset)

🔧 Robot Configuration (Required)

✅ Enable Remote Control

  • IN/OUT > PSEUDO INPUT SIGNAL
  • Set #82015 CMD REMOTE SEL via INTERLOCK + SELECT

✅ Key Position for Commands

  • Use physical pendant key in remote position
  • Optional Ladder setup: copy #80011 to #40042

✅ Job Select

  • SETUP > FUNCTION ENABLE
  • Set JOB SELECT WHEN REMOTE AND PLAY to PERMIT

✅ File Overwrite Permissions

  • PARAMETER > RS
  • Set RS029 = 1, RS214 = 1

🛠 Installation

1. Clone the SDK

git clone https://github.com/underautomation/yaskawa.py.git

2. Connect to your robot

from yaskawa import YaskawaRobot

robot = YaskawaRobot()
robot.connect("192.168.0.1")

✅ Compatibility

  • Robots: DX200, YRC1000, YRC1000 Micro
  • OS: Windows, Linux, macOS
  • Python: 3.7+

🙌 Contributing

We welcome contributions!

  • Report bugs via Issues
  • Submit pull requests
  • Share feature ideas

📜 License

⚠️ Commercial license required
🔗 Details: UnderAutomation Licensing


📬 Need Help?

About

Python library for communicating with Yaskawa Motoman robots. Control, monitor, and automate Yaskawa robots via High-Speed Ethernet Server (HSES). ✅ Real-time motion control, IO/register access, alarm handling, job management & more.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published