Skip to content

로봇 시뮬레이션

이 장에서는 Gazebo 시뮬레이터를 사용하여 시뮬레이션 환경에서 Indy 로봇 모델을 실행하는 명령을 제공합니다. 이는 물리적 로봇이 필요 없이 로봇 응용 프로그램을 테스트하고 개발하는 데 유용할 수 있습니다.

패키지 구성

├── indy_gazebo
    └── indy_gazebo.launch.py
├── indy_moveit
    ├── ...
    └── launch ── indy_moveit_gazebo.launch.py

이 섹션은 indy_gazeboindy_moveit 두 패키지를 사용합니다. indy_gazebo 패키지는 시뮬레이션 로봇에 대한 설명을 포함하며, indy_moveit은 시뮬레이션 로봇과 함께 moveit을 사용하기 위한 moveit 구성을 포함합니다.

실행

아래 명령을 통해 Indy7 로봇 모델이 로드된 Gazebo 시뮬레이터를 실행합니다.

ros2 launch indy_gazebo indy_gazebo.launch.py indy_type:=indy7

명령어를 실행하면 아래와 같이 Gazebo 창과 Rviz 창이 실행됩니다.

ROS2 Humble


ROS2 Jazzy


Gazebo 시뮬레이터에서 Moveit 사용하게 위해 아래 명령어를 입력하십시오.

ros2 launch indy_moveit indy_moveit_gazebo.launch.py indy_type:=indy7

ROS2 Humble


ROS2 Jazzy


아래 그림에서 Goal State를 선택하면, 2개의 사전 정의된 목표(HomePos, ZeroPos)가 있습니다. Plan & Execute 버튼을 누르면 로봇이 목표 위치로 이동합니다.


Servoing 모드에서는 조이스틱(엑스박스 원 S 컨트롤러로 테스트됨)이나 키보드 또는 다른 장치를 사용하여 로봇을 제어할 수 있습니다.

먼저 장치를 PC에 연결하고 필요한 경우 드라이버를 설치하십시오 (키보드나 엑스박스 컨트롤러는 드라이버 설치가 필요 없습니다).

다음 명령을 통해 Indy7의 Gazebo 시뮬레이터를 실행하십시오.

ros2 launch indy_moveit indy_moveit_gazebo.launch.py indy_type:=indy7 servo_mode:=true

키보드를 이용한 Servoing 모드

아래 명령어를 통해 서보 제어를 위한 컨트롤러를 시작하십시오.

ros2 run indy_driver servo_keyboard_input.py --ros-args -p is_sim:=true
  • , : x 방향 작업공간 조그 이동
  • , : y 방향 작업공간 조그 이동
  • . , ; : z 방향 작업공간 조그 이동
  • N, M, ,: 작업공간 UVW 이동
  • W, E: 전역좌표계 (W) 및 툴좌표계 (E) 기준 작업공간 조그모션 전환
  • 1, 2, 3, 4, 5, 6, 7: 관절공간 조그모션
  • R: 조그방향 전환
  • -, +: 관절공간 모션 속도 조절
  • 9, 0: 작업공간 모션 속도 조절
  • Q: 종료

조이 컨트롤러 (Xbox One S pad)를 이용한 Servoing 모드

아래 명령어를 통해 서보 제어를 위한 컨트롤러를 시작하십시오.

ros2 run indy_driver servo_joy_input.py --ros-args -p is_sim:=true
  • D-pad : 1축, 2축 관절 모션 제어
  • Y, A : 3축 관절 모션 제어
  • B, X : 4축 관절 모션 제어
  • LS , RS, LB, RB, LT, RT : 작업공간 TCP 모션 제어