로봇 시뮬레이터는 실제 기계에 의존하지 않고 실제 로봇을위한 응용 프로그램을 작성하는 데 사용되므로 비용과 시간이 절약됩니다. 경우에 따라 이러한 응용 프로그램을 수정하지 않고 실제 로봇에 전송 (또는 재구성) 할 수 있습니다.
로봇 시뮬레이터라는 용어는 여러 가지 다른 로봇 시뮬레이션 응용 프로그램을 나타낼 수 있습니다.예를 들어, 모바일 로봇 애플리케이션에서 동작 기반 로봇 시뮬레이터는 사용자가 딱딱한 물체와 광원의 단순한 세계를 만들고 로봇이 이러한 세계와 상호 작용하도록 프로그래밍 할 수있게합니다. 행동 기반 시뮬레이션은 더 많은 바이너리 또는 연산 인 시뮬레이터와 비교할 때 본질적으로 생물학적 인 동작을 허용합니다. 또한, 행동 기반 시뮬레이터는 실수로부터 “배울”수 있으며, 의인화 된 의지를 증명할 수 있습니다.
로봇 시뮬레이터의 가장 보편적 인 어플리케이션 중 하나는 로봇과 그 환경의 3D 모델링과 렌더링입니다. 이 유형의 로보틱스 소프트웨어는 가상 로봇 인 시뮬레이터를 가지고 있으며, 실제 작업 엔벨로프에서 실제 로봇의 동작을 에뮬레이트 할 수 있습니다. 일부 로봇 시뮬레이터는 물리 엔진을 사용하여 로봇을보다 사실적으로 생성합니다. 실제 로봇의 사용 가능 여부에 관계없이 로봇 제어 프로그램을 개발할 때 로봇 시뮬레이터를 사용하는 것이 좋습니다. 시뮬레이터를 사용하면 실제 로봇에서 테스트 된 프로그램의 최종 버전으로 로봇 프로그램을 편리하게 작성하고 디버깅 할 수 있습니다. 오프라인 프로그래밍의 성공은 로봇의 실제 환경이 시뮬레이트 된 환경과 얼마나 유사한 지에 따라 달라지기 때문에 주로 산업용 로봇 애플리케이션에만 적용됩니다.
로봇 동작은 실제 세계에서 즉각적인 센서 판독 값에 의존하기 때문에 센서 기반 로봇 동작은 시뮬레이션 및 / 또는 오프라인 프로그래밍이 훨씬 어렵습니다.
풍모
현대 시뮬레이터는 다음과 같은 기능을 제공하는 경향이 있습니다.
빠른 로봇 프로토 타이핑
자체 시뮬레이터를 생성 도구 (Virtual Robot Experimentation Platform, Webots, R-Station, Marilou, 4DV-Sim)로 사용.
외부 도구 사용.
현실적인 움직임을위한 물리 엔진. 대부분의 시뮬레이터는 ODE (Gazebo, LpzRobots, Marilou, Webots) 또는 PhysX (Microsoft Robotics Studio, 4DV-Sim)를 사용합니다.
현실적인 3D 렌더링합니다. 표준 3D 모델링 도구 또는 타사 도구를 사용하여 환경을 구축 할 수 있습니다.
스크립팅이 포함 된 동적 로봇 몸체. C, C ++, Perl, Python, Java, URBI, Webots에서 사용되는 MATLAB 언어, Gazebo에서 사용되는 Python.
시뮬레이터
현재 프로그래밍에 사용할 수있는 최신 기술 중에는 가상 시뮬레이션을 사용하는 기술이 있습니다. 작업 환경의 가상 모델 및 로봇 자체를 사용한 시뮬레이션을 통해 회사와 프로그래머 모두에게 이점을 제공 할 수 있습니다. 시뮬레이션을 사용하면 비용이 절감되고 로봇을 오프라인으로 프로그래밍 할 수 있으므로 조립 라인의 가동 중단 시간을 줄일 수 있습니다. 프로토 타입을 제작하기 몇 달 전에 로봇 동작 및 어셈블리 파트를 3 차원 가상 환경에서 시각화 할 수 있습니다. 시뮬레이션을위한 코드를 작성하는 것은 실제 로봇에 대한 코드를 작성하는 것보다 쉽습니다. 프로그래밍 로봇의 가상 시뮬레이션을 향한 움직임은 사용자 인터페이스 설계의 한 걸음이지만, 그러한 많은 어플리케이션은 초기 단계에 불과합니다.
일반 정보
소프트웨어 | 개발자 | 개발 상태 | 특허 | 3D 렌더링 엔진 | 물리 엔진 | 3D 모델러 | 지원되는 플랫폼 |
---|---|---|---|---|---|---|---|
액틴 | 에너지 기술 | 유효한 | 소유권 | OpenGL | 소유권 | 소유권 | 윈도우, macOS, 리눅스, RTLinux, VxWorks, RTOS-32, RTX. (QNX 계획) |
ARS | RAL | 비활성 | BSD | VTK | 송시 | 없음 | 리눅스, macOS, 윈도우 |
자동 | 컨버전스 정보 기술 GmbH | 유효한 | 소유권 | OpenGL | 알 수 없는 | 내부의 | 리눅스, 윈도우 |
전망대 | 오픈 소스 로보틱스 파운데이션 (OSRF) | 유효한 | 아파치 2.0 | OGRE | ODE / 불릿 / Simbody / DART | 내부의 | 리눅스 |
모스 | 학술 커뮤니티 | 유효한 | BSD | 블렌더 게임 엔진 | 총알 | 블렌더 | 리눅스, BSD *, macOS |
OpenHRP | AIST | 유효한 | 식 | Java3D | ODE / 내부 | 내부의 | 리눅스, 윈도우 |
RoboDK | RoboDK | 유효한 | 소유권 | OpenGL | 없음 | 내부의 | 리눅스, macOS, 윈도우, 안드로이드 |
심 스파크 | O. Obst et al.(+26) | 유효한 | GNU GPL (v2) | 내부의 | 송시 | 없음 | 리눅스, macOS, 윈도우 |
브이 – Rep | 코펠리아 로보틱스 | 유효한 | 독점적 인 / GNU GPL | 내부의 | ODE / Bullet / Vortex / Newton | 내부의 | 리눅스, macOS, 윈도우 |
웹 | Cyberbotics Ltd. | 유효한 | 소유권 | 소유권 | 소유권 (ODE 기준) |
소유권 | 리눅스, macOS, 윈도우 |
4DV-Sim | 4D 버추얼 즈 | 유효한 | 소유권 | OGRE | PhysX | 내부의 | 리눅스 |
OpenRAVE | OpenRAVE 커뮤니티 | 유효한 | GNU LGPL | Coin3D / OpenSceneGraph | ODE / 글 머리 기호 | 내부의 | 리눅스, macOS, 윈도우 |
소프트웨어 | 개발자 | 개발 상태 | 특허 | 3D 렌더링 엔진 | 물리 엔진 | 3D 모델러 | 지원되는 플랫폼 |
기술적 인 정보
소프트웨어 | 주요 프로그래밍 언어 | 형식 지원 | 확장 성 | 외부 API | 로보틱스 미들웨어 지원 | 기본 사용자 인터페이스 | 헤드리스 시뮬레이션 |
---|---|---|---|---|---|---|---|
액틴 | C ++ | SLDPRT, SLDASM, STEP, OBJ, STL, 3DS, Collada, VRML, URDF, XML, ECD, ECP, ECW, ECX, ECZ, | 플러그인 (C ++), API | 알 수 없는 | 로스 | GUI | 예 (ActinRT) |
ARS | 파이썬 | 알 수 없는 | 파이썬 | 알 수 없는 | 없음 | 알 수 없는 | 알 수 없는 |
자동 | C ++, 파이썬 | 단계, IGES, STL | 플러그인 (C), API | XML, C | 소켓 | GUI | 예 |
전망대 | C ++ | SDF / URDF, OBJ, STL, Collada | 플러그인 (C ++) | C ++ | ROS, Player, Sockets (protobuf messages) | GUI | 예 |
모스 | 파이썬 | 알 수 없는 | 파이썬 | 파이썬 | 소켓, YARP, ROS, Pocolibs, MOOS | 명령 줄 | 예 |
OpenHRP | C ++ | VRML | 플러그인 (C ++), API | C / C ++, Python, Java | OpenRTM-aist | GUI | 알 수 없는 |
RoboDK | 파이썬 | STEP, IGES, STL, WRML | 플러그인 (C ++), API | C / C ++, Python, Matlab | 소켓 | GUI | 알 수 없는 |
심 스파크 | C ++, Ruby | 루비 장면 그래프 | 개조 (C ++) | 네트워크 (sexpr) | 소켓 (sexpr) | GUI, 소켓 | 알 수 없는 |
브이 – Rep | 루아 | OBJ, STL, DXF, 3DS, Collada, URDF | API, 애드온, 플러그인 | C / C ++, Python, Java, Urbi, Matlab / Octave | 소켓, ROS | GUI | 예 |
웹 | C ++ | WBT, VRML, X3D | API, PROTOs, 플러그인 (C / C ++) | C, C ++, Python, Java, Matlab, ROS | 소켓, ROS, NaoQI | GUI | 예 |
4DV-Sim | C ++ | 3DS, OBJ, 메쉬 | 플러그인 (C ++), API | FMI / FMU, Matlab | ROS, 소켓, 플러그 앤 플레이 인터페이스 | GUI | 예 |
OpenRAVE | C ++, 파이썬 | XML, VRML, OBJ, Collada | 플러그인 (C ++), API | C / C ++, Python, Matlab | 소켓, ROS, YARP | GUI, 소켓 | 예 |
소프트웨어 | 주요 프로그래밍 언어 | 형식 지원 | 확장 성 | 외부 API | 로봇 미들웨어 지원 | 기본 사용자 인터페이스 | 헤드리스 시뮬레이션 |
하부 구조
지원하다
소프트웨어 | 메일 링리스트 | API 문서 | 공개 포럼 / 도움말 시스템 | 사용자 설명서 | 이슈 트래커 | 위키 |
---|---|---|---|---|---|---|
액틴 | 아니 | 예 | 아니 | 예 | 예 (내부) | 아니 |
ARS | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 |
자동 | 예 | 예 | 아니 | 예 | 예 | 아니 |
전망대 | 예 | 예 | 예 | 예 | 예 | 예 |
모스 | 예 | 예 | 아니 | 예 | 예 | 아니 |
OpenHRP | 예 | 예 | 아니 | 예 | 예 | 아니 |
RoboDK | 예 | 예 | 아니 | 예 | 아니 | 아니 |
심 스파크 | 예 | 예 | 아니 | 예 | 예 | 예 |
브이 – Rep | 아니 | 예 | 예 | 예 | 알 수 없는 | 아니 |
웹 | 아니 | 예 | 예 | 예 | 예 | 예 |
4DV-Sim | 예 | 아니 | 예 | 예 | 예 | 아니 |
OpenRAVE | 예 | 예 | 예 | 예 | 예 | 예 |
소프트웨어 | 메일 링리스트 | API 문서 | 공개 포럼 / 도움말 시스템 | 사용자 설명서 | 이슈 트래커 | 위키 |
코드 품질
소프트웨어 | 정적 코드 검사기 | 스타일 검사기 | 테스트 시스템 | 테스트 기능 적용 범위 | 분기 커버리지 테스트 | 코드 라인 | 주석 줄 | 지속적인 통합 |
---|---|---|---|---|---|---|---|---|
액틴 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 젠킨스 |
ARS | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 |
자동 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 |
전망대 | cppcheck | 응석 | gtest 및 qtest | 46.1 % | 34.3 % | 190.7k | 60.45k | 젠킨스 |
모스 | N / A | 핀 줄기 | 파이썬 단위 테스트 | 알 수 없는 | 알 수 없는 | 31.4k | 9.0k | 젠킨스, 트래비스 |
OpenHRP | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 |
RoboDK | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 |
심 스파크 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 |
브이 – Rep | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 |
웹 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 |
4DV-Sim | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 |
OpenRAVE | 알 수 없는 | 알 수 없는 | 파이썬 코 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 젠킨스 |
소프트웨어 | 정적 코드 검사기 | 스타일 검사기 | 테스트 시스템 | 테스트 기능 적용 범위 | 분기 커버리지 테스트 | 코드 라인 | 주석 줄 | 지속적인 통합 |
풍모
소프트웨어 | CAD에서 모션 | 동적 충돌 회피 | 상대적 엔드 이펙터 | 오프라인 프로그래밍 | 하드웨어의 실시간 스트리밍 제어 |
---|---|---|---|---|---|
액틴 | 예 (도구 경로) | 예 | 예 | 예 | 예 |
ARS | 알 수 없는 | 아니 | 알 수 없는 | 아니 | 아니 |
전망대 | 알 수 없는 | 예 | 예 | 예 | 예 |
모스 | 알 수 없는 | 아니 | 알 수 없는 | 아니 | 아니 |
OpenHRP | 알 수 없는 | 아니 | 알 수 없는 | 아니 | 아니 |
RoboDK | 알 수 없는 | 아니 | 알 수 없는 | 예 | 아니 |
심 스파크 | 알 수 없는 | 아니 | 알 수 없는 | 아니 | 아니 |
브이 – Rep | 알 수 없는 | 아니 | 알 수 없는 | 아니 | 아니 |
웹 | 알 수 없는 | 예 | 예 | 예 | 예 |
4DV-Sim | 알 수 없는 | 아니 | 알 수 없는 | 아니 | 아니 |
OpenRAVE | 알 수 없는 | 아니 | 알 수 없는 | 아니 | 아니 |
소프트웨어 | CAD에서 모션 | 동적 충돌 회피 | 상대적 엔드 이펙터 | 오프라인 프로그래밍 | 실시간 스트리밍 제어 |
로봇 가족
소프트웨어 | UGV (지상 이동 로봇) | UAV (공중 로봇) | AUV (수중 로봇) | 로봇 팔 | 로봇 손 (시뮬레이션 파악) | 인간형 로봇 | 인간 아바타 | 전체 목록 |
---|---|---|---|---|---|---|---|---|
액틴 | 예 (매니퓰레이터 포함 가능) | 예 (매니퓰레이터 포함 가능) | 예 (매니퓰레이터 포함 가능) | 예 | 예 | 예 | 예 | |
ARS | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | |
전망대 | 예 | 예 | 예 | 예 | 예 | 예 | 예 | |
모스 | 예 | 예 | 부분 | 약간 | 아니 | 아니 | 예 | |
OpenHRP | 예 | 아니 | 아니 | 예 | 예 | 예 | 예 | |
RoboDK | 아니 | 아니 | 아니 | 예 | 아니 | 아니 | 아니 | |
심 스파크 | 예 | 아니 | 아니 | 아마도 | 아마도 | 예 | 아니 | |
브이 – Rep | 예 | 예 | 아니 | 예 | 예 | 예 | 예 | |
웹 | 예 | 예 | 예 | 예 | 예 | 예 | 예 | 로봇 로봇 모델 |
4DV-Sim | 예 | 예 | 아니 | 예 | 아마도 | 아니 | 예 | |
OpenRAVE | 예 | 알 수 없는 | 알 수 없는 | 예 | 예 | 예 | 예 | |
소프트웨어 | UGV (지상 이동 로봇) | UAV (공중 로봇) | AUV (수중 로봇) | 로봇 팔 | 로봇 손 (시뮬레이션 파악) | 인간형 로봇 | 인간 아바타 | 전체 목록 |
지원되는 액추에이터
소프트웨어 | 일반적인 기구학 체인 | 강제 제어 모션 | 전체 목록 | 원형 기구네 체인 | 운동 학적으로 중복 된 체인 | 두 갈래의 운동 학적 사슬 |
---|---|---|---|---|---|---|
액틴 | 예 | 예 | 모션 제약 | 예 | 예 | 예 |
ARS | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | |
전망대 | 예 | 예 | 예 | 예 | 예 | |
모스 | 예 | 예 | 모스 액츄에이터 | 알 수 없는 | 알 수 없는 | 알 수 없는 |
OpenHRP | 예 | 예 | 알 수 없는 | 알 수 없는 | 알 수 없는 | |
RoboDK | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | |
심 스파크 | 예 | 아니 | SimSpark 효과기 | 알 수 없는 | 알 수 없는 | 알 수 없는 |
브이 – Rep | 예 | 예 | 알 수 없는 | 알 수 없는 | 알 수 없는 | |
웹 | 예 | 예 | 웹 로봇 | 예 | 예 | 예 |
4DV-Sim | 예 | 예 | 알 수 없는 | 알 수 없는 | 알 수 없는 | |
OpenRAVE | 예 | 예 | 조인트, 추가 엑츄에이터 | 예 | 예 | 예 |
소프트웨어 | 일반적인 기구학 체인 | 강제 제어 모션 | 전체 목록 | 원형 기구네 체인 | 운동 학적으로 중복 된 체인 | 두 갈래의 운동 학적 사슬 |
지원되는 센서
소프트웨어 | 오도 메 트리 | IMU | 충돌 | GPS | 단안 용 카메라 | 스테레오 카메라 | 깊이 카메라 | 전 방향 카메라 | 2D 레이저 스캐너 | 3D 레이저 스캐너 | 전체 목록 |
---|---|---|---|---|---|---|---|---|---|---|---|
액틴 | 예 | 예 | 예 | 알 수 없는 | 예 | 예 | 예 | 예 | 예 | 예 | |
ARS | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | |
자동 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 예 | 예 | 예 | 알 수 없는 | 예 | 예 | |
전망대 | 예 | 예 | 예 | 예 | 예 | 예 | 예 | 예 | 예 | 예 | |
모스 | 예 | 예 | 예 | 예 | 예 | 알 수 없는 | 예 | 알 수 없는 | 예 | 예 | 모스 센서 |
OpenHRP | 알 수 없는 | 예 | 예 | 알 수 없는 | 예 | 알 수 없는 | 예 | 알 수 없는 | 예 | 예 | OpenHRP 센서 |
RoboDK | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | 알 수 없는 | |
심 스파크 | 예 | 예 | 예 | 부분 | 예 | 부분 | 알 수 없는 | 알 수 없는 | 아니 | 아니 | SimSpark 인식 자 |
브이 – Rep | 알 수 없는 | 예 | 예 | 예 | 예 | 예 | 예 | 알 수 없는 | 예 | 예 | |
웹 | 예 | 예 | 예 | 예 | 예 | 예 | 예 | 예 | 예 | 예 | 웹 센서 |
4DV-Sim | 예 | 예 | 예 | 예 | 예 | 예 | 예 | 예 | 예 | 예 | |
OpenRAVE | 예 | 예 | 예 | 예 | 예 | 예 | 예 | 알 수 없는 | 예 | 예 | |
소프트웨어 | 오도 메 트리 | IMU | 충돌 | GPS | 단안 용 카메라 | 스테레오 카메라 | 깊이 카메라 | 전 방향 카메라 | 2D 레이저 스캐너 | 3D 레이저 스캐너 | 전체 목록 |
기타 시뮬레이터
오픈 소스 시뮬레이터
breve : Python의 3D 세계 다중 에이전트 시뮬레이터.
EZPhysics : Ogre3D와 ODE 물리학의 결합, GUI는 모든 ODE의 객체 데이터, Matlab / Simulink를 통한 네트워크 폐 루프 원격 제어를 선택적으로 노출합니다.
Khepera Simulator Webot을 선행하는 Khepera 로봇을위한 오픈 소스 Windows 시뮬레이터.
Klamp’t : 2013 년에 도입 된 시뮬레이터로 안정적인 삼중 열 (trimesh-trimesh) 접촉을 전문으로합니다. 다리 걸린 운동과 조작을 지원합니다.
LpzRobots : 라이프 치히 대학교 (University of Leipzig)에서 개발 된 3D 물리 로봇 시뮬레이터.
miniBloq : Arduino 보드 용 로봇 프로그래밍 소프트웨어는 새로운 시뮬레이터를 가지고 있습니다.
Moby : C ++로 작성된 강체 동역학 라이브러리.
폭 넓은 특성을 가진 관절 및 바퀴 달린 로봇 용 OpenSim Simulator. 2006 년에는 개발이 중단되었습니다.
Robotics Toolbox for MATLAB은 포즈 (동질 변환, 오일러 및 RPY 각도, 쿼터니언), 암 로봇 (순방향 / 역동 운동, 역학, 시뮬레이션, 애니메이션) 및 이동 로봇 (제어, 로컬라이제이션, 계획 및 애니메이션)을 나타내는 기능을 제공하는 자유 소프트웨어입니다. ).
ARTE 교육용 로봇 도구 상자 (ARTE)는 Matlab을 기반으로하는 무료 소프트웨어 교육 도구입니다. 위치 및 방향을 나타내는 함수를 제공합니다. 또한 로봇 암을 시뮬레이션하는 기능 (직접 / 역 기구학, 역학, 경로 계획 등)도 포함됩니다. 도구 상자에는 로봇 셀 내부에서보고 시뮬레이션 할 수있는 대형 3D 로봇 모델 세트가 포함되어 있습니다.
Simbad 3d Robot Simulator Java 기반 시뮬레이터
SimRobot : 브레멘 대학 (Universität Bremen)과 독일 인공 지능 연구 센터에서 개발 된 로봇 시뮬레이터 소프트웨어 패키지.
스테이지 : Player / Stage 시스템을 구성하기 위해 플레이어와 자주 사용되는 2.5D 시뮬레이터. 플레이어 프로젝트의 일부
STDR 시뮬레이터 로봇 운영 시스템에서 사용하기위한 간단하고 유연하며 확장 가능한 2D 멀티 로봇 시뮬레이터입니다.
UCHILSIM : RoboCup 2004에서 소개 된 AIBO 로봇을위한 물리 기반 시뮬레이터.
UWSim : 센서, 동적 및 물리 시뮬레이션을 통합 한 해양 로봇 연구 및 개발을위한 UnderWater SIMulator.
폐쇄 형 소스 및 독점적 시뮬레이터
anyKode Marilou
ORCA-Sim : Newton Game Dynamics 물리 엔진을 사용하는 (Windows) 3D 로봇 시뮬레이터.