Universal Robots

.NET, Python, Labview 또는 Matlab에서 유니버설 로봇 코봇과 통신하는 애플리케이션을 빠르게 만들 수 있습니다.

특징

이 라이브러리는 유니버설 로봇 코봇의 모든 기본 프로토콜을 여러 언어로 구현하여 컴퓨터에서 로봇 팔을 원격으로 동기화하고 제어할 수 있습니다.

원격 제어

대시보드 서버 프로토콜은 TCP/IP를 통해 원격으로 로봇에 명령을 전송할 수 있게 해줍니다. 예를 들어 로봇 팔을 켜거나 끄고, 브레이크를 해제하고, 프로그램을 로드하고, 실행하거나 중지할 수 있습니다.

// Create a new robot instance
var robot = new UR();
// Connect to the robot
robot.Connect("192.168.0.1");
// Power on the robot arm and release brakes
robot.Dashboard.PowerOn();
robot.Dashboard.ReleaseBrake();
// Load program file to polyscope
robot.Dashboard.LoadProgram("fast_bin_picking.urp");
// Start the program
robot.Dashboard.Play();
// Get program name and state
var state = robot.Dashboard.GetProgramState();
Console.WriteLine($"Program name : {state.Value.Name}");
Console.WriteLine($"Stopped, Playing or Paused ? : {state.Value.State}");
// Display a popup on the pendant
robot.Dashboard.ShowPopup("I just remote-controlled my robot!");

측정값 교환

"기본 인터페이스"와 "실시간 데이터 교환"(RTDE)을 사용하면 로봇으로부터 위치, 상태, 입력 및 출력, 프로그램 변수 값 등 다양한 정보가 포함된 측정 스트림을 최대 500Hz로 수신할 수 있습니다. 그런 다음 애플리케이션을 로봇과 동기화할 수 있습니다. 또한 로봇에 공유 레지스터를 고속으로 쓸 수도 있습니다.

// Display robot TCP pose
var pose = robot.Rtde.OutputDataValues.ActualTcpPose;
// pose.X, pose.Y, pose.Z, pose.Rx, ...
// Display robot TCP force
var force = robot.Rtde.OutputDataValues.ActualTcpForce;
// Write data in robot controler
var inputs = new RtdeInputValues();
inputs.StandardAnalogOutput0 = 0.2;
inputs.InputBitRegisters.X64 = true;
robot.Rtde.WriteInputs(inputs);
// Display all program and installation variables
var variables = robot.PrimaryInterface.GlobalVariables.GetAll();
string name = variables[0].Name;
Pose value = variables[0].ToPose();
GlobalVariableTypes type = variables[0].Type;

스크립트 및 프로그램

  • TCP/IP 소켓에서 실행할 URScript 스크립트 줄을 전송할 수 있습니다.
  • 함수를 사용하면 *.urp 프로그램 파일을 로컬에서 빌드하고 편집한 다음 UR 컨트롤러로 전송하여 실행할 수 있습니다.

// Ask robot to execute a movej
robot.PrimaryInterface.Script.Send("movej([-1.5,-1.5,-2,-0.5,1.8,0], a=1.4, v=1.05, t=0, r=0)");
// Enumerates files and folder
SftpFile[] items = robot.Sftp.ListDirectory("/home/ur/ursim-current/programs/");
// Download program file prg.urp to your local disk
robot.Sftp.DownloadFile("/home/ur/ursim-current/programs/prg.urp", @"C:\temp\prg.urp");
// Send a local file to the robot
robot.Sftp.UploadFile(@"C:\temp\prg.urp", "/home/ur/ursim-current/programs/prg.urp");
// Manipulate files and directories
robot.Sftp.RenameFile("/home/ur/prg.urp", "/home/ur/prg2.urp");
robot.Sftp.Delete("/home/ur/prg.urp");
bool exists = robot.Sftp.Exists("/home/ur/prg.urp");
robot.Sftp.WriteAllText("/home/ur/file.txt", "Hello robot !");
// ...

맞춤형 소켓

소프트웨어가 서버가 되어 로봇이 서버에 연결하여 정보를 검색할 수 있도록 허용할 수 있습니다:

  • XML-RPC: 로봇은 "rpc_factory" 함수를 사용하여 연결하고 프로그램에서 원격 인수를 사용하여 값을 반환할 수 있는 메서드를 호출할 수 있습니다.
  • 소켓: 로봇이 "소켓_개방" 함수를 사용하여 연결한 다음 애플리케이션과 양방향으로 통신할 수 있는 클래식 TCP/IP 서버입니다.

// Robot connects with URScipt function socket_open()
robot.SocketCommunication.SocketClientConnection += (o, e) =>
{
// Reply to the robot
e.Client.SocketWrite("Hello cobot <3");
};
// Event raised when the robot sends a message with socket_write()
robot.SocketCommunication.SocketRequest += (o, e) =>
{
string robotMessage = e.Message;
};
// Send a message to all connected clients
robot.SocketCommunication.SocketWrite("123456");

오프라인 도구 상자

이 라이브러리는 네트워크에 UR 로봇이 없어도 사용할 수 있는 기능을 제공합니다. 예를 들어 위치 유형을 변환할 수 있습니다. 또한 소프트웨어에서 기본 *.urp 프로그램 및 *.installation 파일을 열고 해당 내용을 편집할 수도 있습니다.

// Create X, Y, Z, RX, RY, RZ pose
var pose = new Pose(0.1, 0.2, -0.1, 0, 0.05, 0.1);
// Convert cartesian pose type to RPY or rotation vector
var rpy = pose.FromRotationVectorToRPY();
var vectorPose = pose.FromRPYToRotationVector();
// Decompile program and installation files and access inner XML
URInstallation installation = URInstallation.Load("C:\\temp\\default.installation");
URProgram prg = URProgram.Load("C:\\temp\\prg.urp");
XElement internalXml = prg.XML;

그리고 더...

  • Primary / Secondary interface
  • RTDE (Real-Time Data Exchange)
  • Dashboard server
  • Interpreter Mode
  • Sockets
  • XML-RPC
  • SSH
  • SFTP
  • ...

UR+ 인증

유니버설로봇의 기술 및 영업 팀이 이 라이브러리를 감사했습니다. 이 라이브러리가 규정을 준수하고 로봇 및 에코시스템과 완벽하게 통합된다는 것을 인증했습니다.

가격 책정

이 라이브러리는 사용자 라이선스가 필요한 산업용 소프트웨어 라이브러리입니다. 라이선스를 구매하면 개발자 수에 관계없이 제공되는 모든 언어로 개발할 수 있으며, 반복 비용 없이 무제한의 소프트웨어 패키지를 무제한의 고객에게 배포할 수 있습니다.

일반 이용약관 보기

무료

  • 30일 동안 모든 기능에 액세스
  • Python, Winforms, 콘솔(Windows, Linux 및 MacOS용) 및 LabVIEW를 포함한 여러 플랫폼에 대한 예제가 제공됩니다.
  • 요청 시 평가판 기간 연장

사이트 라이선스

990 €

모든 통화를 지원하므로 맞춤형 견적을 원하시면 문의하세요.

  • 완전하고 영구적인 SDK: 반복 구독이 필요하지 않습니다.
  • 라이선스를 보유한 조직 내에서 지정된 우편 주소로 사용할 수 있습니다.
  • 표시된 우편 주소에서 여러 개발자가 사용할 수 있습니다.
  • SDK를 사용하여 개발한 모든 애플리케이션은 고객 수에 제한 없이 무료로 제공할 수 있습니다.
  • 1년 유지 관리 포함(업데이트 액세스)
  • 은행 송금으로 결제하려면 당사에 문의하세요. 이 SDK의 라이선스를 구매하면 라이선스 번호와 인보이스를 이메일로 받게 됩니다.

대학 연구용 라이선스 사이트

  • 40% 할인된 사이트 라이선스
  • 대학 또는 연구 프로젝트 전용 할인

소스 라이선스

9900 €

모든 통화를 지원하므로 맞춤형 견적을 원하시면 문의하세요.

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

자주 묻는 질문

이러한 소프트웨어 라이브러리의 장점은 무엇인가요?

이 소프트웨어 라이브러리는 개발 시간을 절약하고 로봇의 모델과 펌웨어에 관계없이 작동을 보장합니다.

테스트는 어떻게 하나요?

다운로드 페이지에서 원하는 프로그래밍 언어로 최신 버전을 다운로드할 수 있습니다.

코봇과의 통신 소프트웨어를 개발하는 데 도움이 필요합니다.

유니티는 이 분야의 전문가로서 이 SDK에 포함된 기술 지원의 일부로 무료로 도움을 드릴 수 있습니다. 또한 산업용 소프트웨어 개발 전반에 대한 문의도 가능합니다. 모든 메시지에 응답하며 기꺼이 도와드리겠습니다.

라이브러리를 테스트하려면 어떻게 하나요?

이 웹사이트의 다운로드 페이지에서 원하는 언어로 된 예제를 제공합니다. 그런 다음 설명서를 참조하여 라이브러리에 대해 알아볼 수 있습니다.

견적을 받을 수 있나요?

이 웹사이트의 주문 페이지에서 바로 견적을 요청할 수 있습니다. 당사에 문의하실 수도 있습니다.

일부 예제는 작동하지 않습니다.

다운로드한 아카이브의 속성에서 Windows가 파일을 잠그지 않았는지 확인하세요. 예제가 올바르게 실행되면 로봇에서 PING 명령이 성공적으로 실행되었는지 확인하세요. 또한 방화벽과 바이러스 백신 소프트웨어가 로봇과의 연결을 허용하는지 확인하세요. 마지막으로 로봇의 보안 설정을 확인합니다.

각 버전의 새로운 기능은 무엇인가요?

각 버전에는 패치와 새로운 기능이 포함되어 있습니다. 버전 히스토리와 변경사항은 GitHub에서 확인할 수 있습니다. 개발 아이디어가 있으면 주저하지 말고 문의해 주세요.

업데이트 후 애플리케이션이 더 이상 컴파일되지 않습니다.

라이브러리는 조금씩 새로운 기능으로 풍부해졌습니다. 버전 5까지는 모든 함수와 프로토콜이 같은 클래스에서 개발되어 혼란을 야기했습니다. 버전 6부터는 모든 함수가 독립적으로 별도의 클래스에서 개발되었습니다. 마이그레이션을 도와드리기 위해 저희에게 문의하시거나, 이전 버전과 호환되는 최신 버전 5.X.X.X를 GitHub에서 다운로드하세요.