갤러리
DART 내장 예제
Atlas Simbicon
Atlas Simbicon 데모는 Simbicon에 의해 제어되는 Atlas 인간형 로봇을 시뮬레이션합니다. Simbicon은 간단한 양 다리 보행 제어기입니다. 이 데모는 관절 역학 및 강체 충돌이 있는 완전한 3D 시뮬레이션입니다. 이 데모는 3D 렌더링을 위해 OpenSceneGraph를 사용하고 2D 화면 상 버튼에는 ImGui를 사용합니다. 소스 코드는 examples/osg/osgAtlasSimbicon 디렉토리에서 찾을 수 있습니다
이 컨트롤러에는 ‘No Control’, ‘Short-Stride Walking’ 및 ‘Normal-Stride Walking’ 세 가지 제어 모드가 있습니다. Atlas 로봇은 균형을 유지하면서 이상에도 걸을 수 있습니다. 키보드를 사용하여 상체에 외력을 가할 수 있습니다.
‘A’ 키 : Atlas의 상체를 앞쪽으로 밀기
‘S’ 키 : Atlas의 상체를 뒤쪽으로 밀기
‘D’ 키 : Atlas의 상체를 왼쪽으로 밀기
‘F’ 키 : Atlas의 상체를 오른쪽으로 밀기
‘Reset Atlas’ 버튼은 로봇을 초기 위치 및 초기 자세로 복원하는 데 사용됩니다. 로봇이 넘어지거나 땅에서 빠져 나왔을 때 유용합니다.
중력은 2D GUI의 슬라이더를 사용하여 변화시킬 수 있습니다.
Tinkertoy
Tinkertoy 데모는 다양한 관절 유형으로 연결된 블록으로 이루어진 tinkertoy의 나무를 시뮬레이션합니다. 이 데모는 관절 역학 및 강체 충돌이 있는 완전한 3D 시뮬레이션입니다. 이 데모는 3D 렌더링을 위해 OpenSceneGraph를 사용하고 2D 화면 상 버튼에는 ImGui를 사용합니다. 소스 코드는 examples/osg/osgTinkertoy 디렉토리에서 찾을 수 있습니다.
장면은 두 개의 tinkertoy 나무로 시작됩니다. 블록 중 하나를 왼쪽 클릭하여 해당 블록에 대상을 부착합니다. 시뮬레이션 중에 대상에 부착된 블록은 스프링과 같은 힘으로 대상 쪽으로 당겨집니다. 대상을 이동하려면 핸들을 클릭하여 힘의 방향을 변경합니다.
시뮬레이션이 일시 중지되면 사용자는 블록을 추가하거나 제거하여 tinkertoy의 구조를 변경할 수 있습니다. 다음 중 하나를 클릭하세요:
Weld-Joint 블록 추가
Revolute-Joint 블록 추가
Ball-Joint 블록 추가
현재 대상 위치에 지정된 관절 유형을 가진 블록을 추가합니다. 새 블록은 대상이 현재 연결된 블록에 연결됩니다. Reset Target 버튼을 사용하여 대상을 모든 블록에서 분리하여 새 tinkertoy 나무를 구성할 수 있습니다. 새 블록은 대상의 x 축 (빨간 화살표)을 따라 이동합니다. 회전 관절의 경우 관절 축은 대상의 z 축 (파란 화살표)과 일치합니다.
중력은 2D GUI에서 토글하거나 G 키를 눌러서 변경할 수 있습니다.
Examples on Gazebo
비영리 단체인 OSRF(Open Source Robotic Foundation)는 4개의 물리 엔진(ODE, Bullet, DART 및 SimBody)에 대한 성능 비교(첫 번째 비디오)를 수행했습니다. 안정적인 보행 동작을 얻기 위해 각각의 물리 엔진을 사용하여 Atlas 로봇을 시뮬레이션했습니다. RTF(실시간 요소)는 물리 엔진의 속도를 측정하는 지표입니다. RTF < 1은 실제 시간보다 느리고 RTF > 1은 실제 시간보다 빠릅니다. DART는 1.6-1.9 RTF로 ODE(1.45), Bullet(0.15) 및 SimBody(0.1)보다 빠른 속도를 달성했습니다. 두 번째 비디오에서는 성능 차이에도 불구하고, 다른 물리 엔진에 의해 시뮬레이션된 동작 궤적이 질적으로 유사하다는 것을 보여줍니다.
Physics engine benchmark: robot walking on flat ground from Steven Peters on Vimeo.
Gazebo Multi-Physics Engine Support from OSRF on Vimeo.