로봇 시뮬레이션
이 장에서는 Gazebo 시뮬레이터를 사용하여 Indy 로봇 모델을 시뮬레이션 환경에서 실행하는 방법을 설명합니다. 이를통해 물리적 로봇 없이 로봇을 테스트하고 개발하는 용도로 사용할 수 있습니다.
패키지 구성
이 섹션에서는 indy_gazebo와 indy_moveit 두 패키지를 사용합니다. indy_gazebo 패키지는 시뮬레이션 로봇에 대한 설명을 포함하고 있으며, indy_moveit은 시뮬레이션 로봇과 함께 moveit을 사용하기 위한 moveit 구성을 포함합니다.
실행
아래 명령을 통해 Indy7 로봇 모델이 로드된 Gazebo 시뮬레이터를 실행합니다.
명령어를 실행하면 아래와 같이 Gazebo 창과 Rviz 창이 실행됩니다.
Gazebo 시뮬레이터에서 Moveit 및 Servoing 기능을 사용하기 위해서 이전 실행한 명령을 종료하고 아래와 같이 RViz 없이 Gazebo를 실행하십시오.
이후 다른 터미널을 열고 Moveit을 실행하십시오.
아래 그림에서 Goal State를 선택하면, 2개의 사전 정의된 목표(HomePos, ZeroPos)가 있습니다. Plan & Execute 버튼을 누르면 로봇이 목표 위치로 이동합니다.
Servoing 모드에서는 키보드를 사용하여 로봇을 제어할 수 있습니다. 아래 터미널 명령어를 통해 spacenav
를 실행하십시오.
rosservice call /controller_manager/switch_controller
"start_controllers: ['joint_group_position_controller']
stop_controllers: ['joint_trajectory_controller']
strictness: 0
start_asap: false
timeout: 0.0"
새 터미널을 열고 키보드 노드를 사용하여 Servoing 모드를 수행할 수 있습니다.
- ↑, ↓ : x 방향 작업공간 조그 이동
- ←, → : y 방향 작업공간 조그 이동
- . , ; : z 방향 작업공간 조그 이동
- N, M, ,: 작업공간 UVW 이동
- W, E: 전역좌표계 (W) 및 툴좌표계 (E) 기준 작업공간 조그모션 전환
- 1, 2, 3, 4, 5, 6, 7: 관절공간 조그모션
- R: 조그방향 전환
- -, +: 관절공간 모션 속도 조절
- 9, 0: 작업공간 모션 속도 조절
- Q: 종료
```