로봇 소프트웨어

로봇 소프트웨어는 로봇으로 알려진 기계 장치 및 전자 시스템에 수행 할 작업을 알려주는 코드화 된 명령 또는 명령 세트입니다. 로봇 소프트웨어는 자율적 인 작업을 수행하는 데 사용됩니다. 많은 소프트웨어 시스템과 프레임 워크가 프로그래밍 로봇을 더 쉽게 만들도록 제안되었습니다.

일부 로봇 소프트웨어는 지능형 기계 장치를 개발하는 것을 목표로합니다. 일반적인 작업에는 피드백 루프, 제어, 길 찾기, 데이터 필터링, 데이터 찾기 및 공유가 포함됩니다.

소개
그것은 특정 유형의 소프트웨어이지만, 여전히 매우 다양합니다. 각 제조업체에는 자체 로봇 소프트웨어가 있습니다. 대다수의 소프트웨어가 데이터를 조작하고 결과를 화면 상에 표시하는 반면, 로봇 소프트웨어는 실제 세계에서 객체 나 도구를 조작하는 데 사용됩니다.

산업용 로봇 소프트웨어
산업용 로봇 용 소프트웨어는 데이터 객체와 명령어 목록으로 구성되며 프로그램 흐름 (명령어 목록)이라고합니다. 예를 들어,

Jig1로 이동

로봇이 Jig1이라는 위치 데이터로 이동하라는 지시입니다. 물론 프로그램은 암시 적 데이터를 포함 할 수도 있습니다

1 번 축을 30도 이동하십시오.

데이터와 프로그램은 일반적으로 로봇 컨트롤러 메모리의 개별 섹션에 있습니다. 하나는 프로그램을 변경하지 않고 데이터를 변경할 수 있고 그 반대도 마찬가지입니다. 예를 들어, 동일한 Jig1을 사용하여 다른 프로그램을 작성할 수도 있고, Jig1을 사용하는 프로그램을 변경하지 않고도 Jig1의 위치를 ​​조정할 수 있습니다.

산업용 로봇을위한 프로그래밍 언어의 예
로봇 소프트웨어의 독점적 특성으로 인해 대부분의 로봇 하드웨어 제조업체는 자체 소프트웨어를 제공합니다. 이것은 다른 자동화 된 제어 시스템에서는 드문 일이 아니지만, 로봇을위한 프로그래밍 방법의 표준화가 부족하다는 점에서 문제가 있습니다. 예를 들어 30 개가 넘는 산업용 로봇 제조업체가 있으므로 30 가지 로봇 프로그래밍 언어가 필요합니다. 서로 다른 로봇 사이에는 유사점이 있기 때문에 각 제조업체의 독점적 언어를 배울 필요없이 로봇 프로그래밍에 대한 광범위한 이해를 얻을 수 있습니다.

여러 제조업체에서 로봇을 제어하는 ​​한 가지 방법은 포스트 프로세서 및 오프라인 프로그래밍 (로봇) 소프트웨어를 사용하는 것입니다. 이 방법을 사용하면 Python (프로그래밍 언어)과 같은 범용 프로그래밍 언어에서 브랜드 별 로봇 프로그래밍 언어를 처리 할 수 ​​있습니다. 그러나 고정 된 오프라인 코드를 컴파일하여 로봇 컨트롤러에 업로드하면 로봇 시스템이 상태를 인식 할 수 없으므로 환경이 변화함에 따라 로봇 시스템의 동작을 적응시키고 복구 할 수 없습니다. 모든 로봇에 대한 실시간 실시간 적응 제어는 현재 액틴 (Actin)에서만 가능합니다.

다음은 게시 된 로봇 프로그래밍 언어의 몇 가지 예입니다.

일반 영어로 작업 :

P1 (일반 안전한 위치)으로 이동
P2로 이동 (P3에 접근)
P3으로 이동 (대상을 선택하는 위치)
그리퍼 닫기
P4로 이동 (P5에 접근)
P5로 이동 (오브젝트를 배치 할 위치)
열린 그리퍼
P1로 이동하여 마침
VAL은 최초의 로봇 ‘언어’중 하나였으며 Unimate 로봇에 사용되었습니다. VAL의 변종은 Adept Technology를 포함한 다른 제조업체에서 사용되었습니다. Stäubli는 현재 VAL3을 사용합니다.
예제 프로그램 :

프로그램 픽크립 스

1. 이동 P1
2. 이동 P2
3. P3 이동
4. CLOSEI 0.00
5. P4 이동
6. MOVE P5
7. OPENI 0.00
8. 이동 P1
.END
Stäubli VAL3 프로그램의 예 :

시작
movej (p1, tGripper, mNomSpeed)
movej (appro (p3, trAppro), tGripper, mNomSpeed)
movel (p3, tGripper, mNomSpeed)
닫기 (t 그리퍼)
movej (appro (p5, trAppro), tGripper, mNomSpeed)
movel (p5, tGripper, mNomSpeed)
열린 (tGripper)
movej (p1, tGripper, mNomSpeed)

trAppro는 데카르트 변형 변수입니다. appro 커맨드를 사용하면 P2와 P4 포인트를 가르 칠 필요가 없지만 궤도 생성을 위해 픽앤 플레이스의 위치에 대한 접근 방식을 동적으로 변환합니다.

엡손 RC + (진공 픽업 용)

기능 PickPlace
점프 P1
점프 P2
점프 P3
진공 상태에서
기다려 .1
점프 P4
점프 P5
진공 청소기
기다려 .1
점프 P1
Fend
ROBOFORTH (FORTH 기반 언어).

: PICKPLACE
P1
P3 그립 눕기
P5 UNGRIP WITHDRAW
P1
;
(Roboforth를 사용하면 장소에 대한 접근 위치를 지정할 수 있으므로 P2 및 P4가 필요하지 않습니다.)

분명히 로봇은 그리퍼가 완전히 닫힐 때까지 다음 동작을 계속해서는 안됩니다. 위의 CLOSEI 및 GRIP의 예에서는 확인 또는 허용 된 시간이 암시 적으로 표시되는 반면 On vacuum 명령은 만족스러운 흡입을 보장하기 위해 시간 지연이 필요합니다.

기타 로봇 프로그래밍 언어

비주얼 프로그래밍 언어
LEGO Mindstorms EV3 프로그래밍 언어는 사용자가 상호 작용할 수있는 간단한 언어입니다. LabVIEW로 작성된 그래픽 사용자 인터페이스 (GUI)입니다. 접근법은 데이터가 아닌 프로그램으로 시작하는 것입니다. 이 프로그램은 아이콘을 프로그램 영역으로 끌어서 시퀀스에 추가하거나 삽입하여 구성됩니다. 각 아이콘에 대해 매개 변수 (데이터)를 지정하십시오. 예를 들어, 모터 드라이브 아이콘의 경우 모터를 지정하고 이동량을 지정합니다. 프로그램이 작성되면 테스트를 위해 Lego NXT ‘벽돌'(마이크로 컨트롤러)에 다운로드됩니다.

스크립팅 언어
스크립팅 언어는 소프트웨어 응용 프로그램을 제어하는 ​​데 사용되는 고급 프로그래밍 언어이며 미리 컴파일되는 대신 실시간으로 해석되거나 “즉시 번역”됩니다. 스크립팅 언어는 범용 프로그래밍 언어이거나 응용 프로그램 또는 시스템 프로그램의 실행을 보강하는 데 사용되는 특정 기능으로 제한 될 수 있습니다. RoboLogix와 같은 일부 스크립팅 언어는 레지스터에 데이터 객체가 있고 프로그램 흐름은 로봇을 프로그래밍하는 데 사용되는 명령어 목록 또는 명령어 세트를 나타냅니다.

산업용 로봇의 프로그래밍 언어
로봇 브랜드 언어 이름
ABB RAPID
코모 PDL2
파 누크 카렐
가와사키 그대로
쿠카 쿠알라 룸푸르
스토 라비 VAL3
야스 카와 정보
프로그래밍 언어는 일반적으로 처음부터 데이터 구조와 알고리즘을 구축하기 위해 설계된 반면 스크립팅 언어는 구성 요소와 명령어를 함께 연결하거나 “붙이기”위한 것입니다. 결과적으로 스크립팅 언어 명령어 세트는 일반적으로 프로그래밍 프로세스를 간소화하고 신속한 응용 프로그램 개발을 제공하는 데 사용되는 능률적 인 프로그램 명령어 목록입니다.

병렬 언어
또 다른 흥미로운 접근 방법은 언급할만한 가치가 있습니다. 모든 로보 틱 응용 프로그램은 병렬 처리 및 이벤트 기반 프로그래밍이 필요합니다. 평행도는 로봇이 동시에 두 가지 이상을 수행하는 곳입니다. 이를 위해서는 적절한 하드웨어 및 소프트웨어가 필요합니다. 대부분의 프로그래밍 언어는 스레드 또는 복잡한 추상화 클래스를 사용하여 공유 리소스에 대한 동시 액세스와 같이 병렬성과 함께 제공되는 복잡성을 처리합니다. URBI는 병렬 처리와 이벤트를 언어 의미 체계의 핵심에 통합하여보다 높은 수준의 추상화를 제공합니다.

언제든지 (face.visible)
{
headPan.val + = camera.xfov * face.x
& amp;
headTilt.val + = camera.yfov * face.y
}

위의 코드는 headPan 및 headTilt 모터를 병렬로 이동시켜 로봇 헤드가 로봇이 얼굴을 볼 때마다 카메라로 찍은 비디오에서 볼 수있는 인간의 얼굴을 따르도록합니다.

로봇 애플리케이션 소프트웨어
어떤 언어가 사용 되든간에 로봇 소프트웨어의 최종 결과는 사람들을 돕거나 즐겁게하는 로봇 응용 프로그램을 만드는 것입니다. 응용 프로그램에는 명령 및 제어 및 작업 소프트웨어가 포함됩니다. 명령 및 제어 소프트웨어에는 원격 조작 로봇 용 로봇 제어 GUI, 자율 로봇 용 포인트 앤 클릭 방식 명령 소프트웨어 및 공장에서 이동 로봇 용 소프트웨어 스케줄링이 포함됩니다. Tasking 소프트웨어는 배송 경로, 보안 순찰 및 방문자 둘러보기 설정을위한 간단한 드래그 앤 드롭 인터페이스를 포함합니다. 또한 특정 응용 프로그램을 배포하기 위해 작성된 사용자 지정 프로그램을 포함합니다. 범용 로봇 애플리케이션 소프트웨어는 널리 분산 된 로봇 플랫폼에 배치됩니다.

안전 고려 사항
프로그래밍 오류는 특히 큰 산업용 로봇에서 심각한 안전 고려 사항입니다. 산업용 로봇의 크기와 크기는 잘못 프로그래밍되거나 안전하지 않은 방식으로 사용되면 심각한 부상을 입힐 수 있음을 의미합니다. 산업용 로봇의 대량 및 고속으로 인해 자동 작업 중에 로봇의 작업 영역에 사람이 머무르는 것은 항상 안전하지 않습니다. 시스템은 예상치 못한 시간에 동작을 시작할 수 있으며 인간은 그렇게 할 준비가되어 있더라도 많은 상황에서 충분히 빠르게 반응 할 수 없습니다. 따라서 소프트웨어에 프로그래밍 오류가 발생하지 않아도 부품로드 / 언로드, 부품 걸림 제거 또는 유지 보수 작업과 같은 인간 작업자 또는 작업자가 산업 로봇을 안전하게 만들 수 있도록 세심한주의를 기울여야합니다. 로봇 산업 협회 (Robotic Industries Association)의 ANSI / RIA R15.06-1999 미국 산업 표준 로봇 표준 및 로봇 시스템 – 안전 요구 사항 (ANSI / RIA R15.06-1992 개정)은 로봇 안전에 대한 표준으로 인정 받고 있습니다. 여기에는 산업용 로봇의 설계 및 공장 현장에서의 산업용 로봇의 구현 또는 사용에 대한 지침이 포함됩니다. 안전 컨트롤러, 티치 인 최단 속도 및 물리적 장벽 사용과 같은 수많은 안전 개념이 설명됩니다.

로보틱스 소프트웨어 프로젝트
다음은 로봇 프로젝트를위한 오픈 소스 및 무료 소프트웨어 목록입니다.

로봇 자율성을위한 CLARaty – Coupled-Layer 아키텍처. NASA 제트 추진 연구소, NASA 에임스 연구 센터, 카네기 멜론 및 미네소타 대학교와 같은 네 기관의 공동 노력입니다.
dLife – Robotics, AI 및 Vision 용 무료 / 오픈 소스 Java 라이브러리. Pioneer, Khepera II & amp; II, Hemission, Aibo 및 Finch 로봇뿐만 아니라 플레이어 / 스테이지 시뮬레이션을 제공합니다.
Experimental Robotics Framework – Player / Stage 및 Open / CV의 맨 위에있는 최신 기술 지원을 통해 3D로 여러 로봇과 실험을하는 소프트웨어입니다.
MARIE – Mobile and Autonomous Robotics 통합 환경 – 기존의 소프트웨어 구성 요소와 새로운 소프트웨어 구성 요소를 통합하여 로보틱스 소프트웨어 시스템을 구축하기위한 구성 요소 기반 접근 방식을 사용하는 자유 소프트웨어입니다.
Microsoft – Microsoft Robotics 개발자 스튜디오
OpenRDK – 느슨하게 결합 된 모듈을 개발하기위한 로봇 용 오픈 소스 소프트웨어 프레임 워크입니다. 그것은 투명한 동시성 관리, 프로세스 간 (소켓을 통한) 및 내부 프로세스 (공유 메모리를 통한) 칠판 기반 통신 및 입 / 출력 데이터 포트 개념 시스템 설계를 허용하는 연결 기술을 제공합니다. 시뮬레이터 및 일반 로봇 드라이버에 연결하기위한 모듈이 제공됩니다.
OpenRTM-aist – RT 미들웨어 표준을 기반으로 개발 된 소프트웨어 플랫폼. 일본의 산업 기술 종합 연구소에 의해 개발되었습니다.
OROCOS – 개방형 로봇 제어 소프트웨어 프로젝트는 실시간 로봇 암 및 공작 기계 제어를위한 무료 소프트웨어 툴킷을 제공합니다.
OPRoS – Open Platform Robotic Services는 로봇 개발을위한 오픈 소스 프로젝트입니다. 로봇 플랫폼 구성 요소의 소스 코드와 함께 로봇 플랫폼 및 GUI 개발 도구를 포함한 솔루션을 제공합니다.
RoboDK – 산업용 로봇을 시뮬레이트하는 로봇 개발 키트 플랫폼입니다. RoboDK를 사용하면 Python을 사용하여 로봇을 프로그래밍 할 수 있으며 로봇 컨트롤러에 따라 브랜드 별 구문을 처리 할 수 ​​있습니다.
Robotics Library는 여러 로봇의 기구학, 계획, 시각화 및 하드웨어 드라이버를 다루는 오픈 소스 C ++ 라이브러리입니다.
MATLAB 용 Robotics Toolbox – 포즈 (동질 변환, 오일러 및 RPY 각도, 쿼터니언), 암 로봇 (순방향 / 역 기구학 및 역학) 및 모바일 로봇 (제어, 현지화 및 계획)을 나타내는 기능을 제공하는 무료 소프트웨어입니다.
Rossum Project, G.W. 루카스, 오픈 소스 로봇 공학 프로젝트
Player / Stage Project – 세계적으로 유명한 로봇 연구 및 교육에 사용되는 매우 인기있는 자유 소프트웨어 로봇 인터페이스 및 시뮬레이션 시스템입니다.
Pyro, Python Robotics – 인기있는 로봇 소프트웨어 대학이나 대학에서 사용되는 자유 소프트웨어.
RoboMind – 로봇 및 프로그래밍의 기초를 배우는 교육용 소프트웨어입니다.
로봇 운영 시스템 – 로봇 운영 시스템은 Python 및 C ++을 사용하는 로봇 프로그래밍을위한 오픈 소스 플랫폼입니다. Java, Lisp, Lua 및 Pharo는 지원되지만 아직 실험 단계입니다.
로봇 지능 커널

오프라인 프로그래밍
Visual Components는 하나의 플랫폼에서 재료 흐름과 로봇 시뮬레이션을 가능하게하는 상용 3D 이산 이벤트 시뮬레이션 소프트웨어입니다. 기능은 오프라인 프로그래밍 기능 및 PLC 연결로 확장 될 수 있습니다.
“기본 – 로봇 소프트웨어”. 시애틀 로봇 학회.
“모바일 자율 로봇 소프트웨어 (MARS)”. 조지아 테크 리서치 코퍼레이션
“기술 데이터베이스” robot.spawar.navy.mil.
아이다 호 국립 연구소의 적응 형 로봇 소프트웨어

온라인 제어
Energid Technologies는 Jacobian 기반 운동학을 사용하여 모든 유형의 로봇에 대한 성능을 최적화하는 C ++로 작성된 로봇 툴킷, 최적화 엔진 및 제약 조건 관리 시스템 인 Actin SDK를 개발 및 판매합니다. Actin은 SDK로 판매되므로 다른 로봇 제어 소프트웨어 패키지에 흰색 레이블 또는 OEM 제품을 사용할 수 있습니다. 이 접근법을 통해 사용자는 GUI를 통해 오프라인 모드에서 알려진 시스템의 제어를 개발 한 다음 액틴이 고수준 온라인 제어를 처리하여 실시간으로 업데이트 된 조인트 레벨 명령을 실시간으로 스트리밍하여 적응시킴으로써 충돌을 피할 수 있습니다 감지 된 환경 변화에.