UnderAutomation
질문이요?

[email protected]

문의하기
UnderAutomation
⌘Q

소프트웨어 라이브러리

Staubli

스토브리 산업용 로봇과 통신하는 .NET 애플리케이션을 빠르게 만들 수 있습니다.

Staubli Communication Library

Staubli 로봇에서 기본적으로 사용할 수 있는 이더넷 프로토콜 구현
100% managed assembly
CS8 및 CS9 컨트롤러와의 신속한 통합
현대적이고 잘 문서화된 라이브러리
실제 USB 키 라이선스 필요 없음

기능 개요

로봇 이동

원격으로 전원을 켜고 조인트 또는 데카르트 좌표로 모션 명령을 전송할 수 있습니다.
// Power on the controller
PowerReturnCode powerOnStatus = controller.Soap.SetPower(power: true);
// Move linear to cartesian position
IMoveResult moveLResult = controller.Soap.MoveL(
robot: 0,
position,
motionDesc
);
// Move joints to cartesian position
IMoveResult moveJCResult = controller.Soap.MoveJC(
robot: 0,
position,
motionDesc
);
// Move joints to joint position
IMoveResult moveJResult = controller.Soap.MoveJJ(
robot: 0,
joints,
motionDesc
);
// Move Circular
IMoveResult moveCResult = controller.Soap.MoveC(
robot: 0,
position,
position2,
motionDesc
);
// Stop motion
MotionReturnCode stopStatus = controller.Soap.StopMotion();
// Reset motion
MotionReturnCode resetStatus = controller.Soap.ResetMotion();
// Restart motion
MotionReturnCode restartStatus = controller.Soap.RestartMotion();

애플리케이션 처리

작업의 로드, 시작, 중지, 일시 중지 및 실행을 감독합니다.
// Load project from disk
controller.Soap.LoadProject("Disk://myProject/myProject.pjx");
ValApplication[] applications = controller.Soap.GetValApplications();
foreach (var application in applications)
Console.WriteLine($"Application: {application.Name}, Running: {application.IsRunning}");
// Unload all applications
controller.Soap.StopAndUnloadAll();
// Stop running application
controller.Soap.StopApplication();
// Get tasks
ControllerTask[] tasks = controller.Soap.GetTasks(); // Get all tasks
foreach (var task in tasks)
{
Console.WriteLine($"Task: {task.Name}");
Console.WriteLine($"reated by: {task.CreatedBy}"); // i.e. Disk://myProject/myProject.pjx
Console.WriteLine($"Line: {task.ProgramLine}");
Console.WriteLine($"State: {task.State}");
}
// Kill task
controller.Soap.TaskKill(tasks[0].Name, tasks[0].CreatedBy);
// Suspend task
controller.Soap.TaskSuspend(tasks[0].Name, tasks[0].CreatedBy);
// Resume task
controller.Soap.TaskResume(tasks[0].Name, tasks[0].CreatedBy);

현재 위치

데카르트 좌표와 관절 각도를 포함한 로봇의 현재 위치를 가져옵니다.
// Get the current flange position of the first robot in world coordinates
CartesianJointPosition position = controller.Soap.GetCurrentCartesianJointPosition(robot: 0, tool: null, frame: null);
double[] jointPosition1 = position.JointsPosition; // Joint position in radians
CartesianPosition cartesianPosition = position.CartesianPosition;
Console.WriteLine($"X: {cartesianPosition.X}, Y: {cartesianPosition.Y}, Z: {cartesianPosition.Z}");
Console.WriteLine($"Rx: {cartesianPosition.Rx}, Ry: {cartesianPosition.Ry}, Rz: {cartesianPosition.Rz}");
// ---------------
// Get only the current joint position of the first robot
double[] jointPosition2 = controller.Soap.GetCurrentJointPosition(robot: 0);
// ---------------
// Get the joint ranges (min/max angle of each joint)
controller.Soap.GetJointRange(robot: 0);

조인트 각도에서 직교 위치를 계산하고 그 반대의 경우도 마찬가지입니다.

조인트 각도에서 직교 위치를 계산하고 그 반대의 경우도 마찬가지입니다.
// Get forward kinematics
IForwardKinematics fk = controller.Soap.ForwardKinematics(
robot: 0, // Index of the robot (0 for the first robot)
joints // double[] of joint positions in radians
);
// Position matrix
Frame position = fk.Position;
// Position configuration
Config config = fk.Config; // i.e. Righty/Lefty, Elbow Positive/Negtive, ...
// -----------------
// Get inverse kinematics
IReverseKinematics ik = controller.Soap.ReverseKinematics(
robot: 0, // Index of the robot (0 for the first robot)
joints,
position,
config,
range
);
if (ik.Result == ReversingResult.Success)
foreach (double joint in ik.Joint) Console.WriteLine(joint);

정보

모델, 소프트웨어 버전, 전원 상태 등 컨트롤러와 제어 중인 로봇의 특성을 파악할 수 있습니다.
Robot[] robots = controller.Soap.GetRobots(); // Get all robots driven by the controller
foreach (var robot in robots)
{
Console.WriteLine($"Arm: {robot.Arm}"); // i.e. TX2-140
Console.WriteLine($"Mount type: {robot.MountType}"); // i.e. Floor, Ceiling, Wall
Console.WriteLine($"Kinematic: {robot.Kinematic}"); // i.e. ANTHROPOMORPH6, SCARA, ...
// see Robot class for more properties
}
// ---------------
Parameter[] controllerParams = controller.Soap.GetControllerParameters(); // Get controller parameters
foreach (var param in controllerParams)
Console.WriteLine($"{param.Name} = {param.Value}"); // i.e. CycleTime = 0.004s
// ---------------
DhParameters[] dhParameters = controller.Soap.GetDhParameters(robot: 0); // Get DH parameters of the first robot
foreach (var dh in dhParameters)
Console.WriteLine($"{dh.Alpha} - {dh.Beta} - {dh.Theta} - {dh.A} - {dh.D}");

입력/출력

컨트롤러 입력 및 출력 목록, 읽기 및 쓰기
// Get all physical I/O ports of the controller
PhysicalIo[] ios = controller.Soap.GetAllPhysicalIos();
foreach (var io in ios)
{
Console.WriteLine($"Name: {io.Name}");
Console.WriteLine($"Type: {io.Description}");
Console.WriteLine($"Lockable: {io.Lockable}"); // i.e. true, false
Console.WriteLine($"Description: {io.TypeStr}"); // i.e. din, dout, ain, serial
}
// -----------------
// Read I/Os value
PhysicalIoState[] values = controller.Soap.ReadIos(new[] { @"Socket\test", @"Serial\0", @"FastIO\fOut1", @"CpuUsage\val3" });
foreach (var value in values)
{
Console.WriteLine("Value: " + value.Value);
Console.WriteLine("Locked: " + value.Locked);
Console.WriteLine("Simulated: " + value.Simulated);
}
// -----------------
// Write I/Os value
PhysicalIoWriteResponse[] response = controller.Soap.WriteIos(new[] { "my_io_1", "my_io_2" }, new double[] { 1.0, 0.0 });
foreach (var res in response)
Console.WriteLine($"Success: {res.Success} - Found: {res.Found}");

문서 찾아보기

문서 찾아보기

설명서를 통해 라이브러리로 빠르게 개발을 시작할 수 있습니다. 지원되는 모든 언어에서 동일한 기능을 사용할 수 있습니다.

다운로드 및 테스트

Nuget을 통해 다운로드하십시오
Nuget을 통해 다운로드하십시오

Nuget 패키지 관리자를 통해이 SDK를 Visual Studio 프로젝트에 쉽게 추가하십시오.

Nuget를 참조하십시오
Github의 예
Github의 예

이 SDK의 사용 예는 Github에서 사용할 수 있습니다.

Windows 응용 프로그램 예제
Windows 응용 프로그램 예제

간단한 인터페이스로 SDK의 모든 기능을 테스트 할 수 있습니다. 이 예제는 .NET 8을 사용하여 "자체 포함 된"및 "단일 파일"으로 편집되어 있습니다. 응용 프로그램은 설치없이 휴대용입니다.

다운로드하면 일반적인 사용 조건을 수락합니다.
일반 이용약관 보기
UnderAutomation.Staubli.Showcase.Forms.exe (139 MB)

견적 요청 및 주문

가장 인기있는

사이트 라이선스

990 € (EUR)$1090 (USD)

$

1090

평생 동안

$

654

대학용 (40% 할인)

완전하고 영구적 인 SDK : 반복 구독이 필요하지 않으며 라이센스는 영원히 귀하의 것이며 로봇 브랜드의 모든 프로그래밍 언어로 작동합니다.
명시된 우편 주소에서 라이센스를 보유한 조직에서만 사용할 수 있습니다. 모든 팀 개발자는 개발 기계의 수에 관계없이 동일한 라이센스를 공유합니다.
SDK를 사용하여 개발 된 모든 응용 프로그램은 연결 로봇 수에 관계없이 추가 비용없이 무제한 수의 고객에게 전달할 수 있습니다.
라이센스는 기능을 잠금 해제하는 코드에서 호출하는 일종의 암호입니다. 설치할 추가 소프트웨어가 없습니다. USB 키가 없습니다.
1년 유지 관리 포함(업데이트 액세스)
은행 송금으로 결제하려면 당사에 문의하세요. 이 SDK의 라이선스를 구매하면 라이선스 번호와 인보이스를 이메일로 받게 됩니다.
견적 • 주문

소스 라이선스

9900 € (EUR)$11 900 (USD)

$

11 900

평생 동안

$

7140

대학용 (40% 할인)

C#으로 라이브러리의 내부 코드 완성
수년에 걸쳐 개발된 110,000줄의 코드로 구성된 Visual Studio 솔루션
귀하는 일반 이용 약관에 정의된 한도 내에서 이 소스 코드를 수정하여 애플리케이션에 사용할 수 있습니다.
견적 • 주문

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

UnderAutomation
문의하기가격 • 대리점견적 • 주문Legal

© All rights reserved.