Skip to content

로봇 시뮬레이션

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

패키지 구성

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

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

실행

Gazebo에서 Indy 로봇을 시작하기 위해 다음 명령을 사용할 수 있습니다. 이 명령은 Gazebo 시뮬레이터를 Indy7 로봇 모델과 함께 실행합니다.

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

명령이 실행되면 Gazebo 창과 Rviz 창이 실행되며, 결과는 아래 이미지와 같이 표시됩니다.


Gazebo 시뮬레이터에서 Moveit과 서보 기능을 사용하려면 두 가지 옵션이 있습니다: Moveit 사용 또는 서보 사용. Moveit을 사용하려면 다음 명령을 사용할 수 있습니다. 이 명령은 Gazebo 시뮬레이터를 Indy7 로봇 모델과 Moveit이 로드된 상태로 실행합니다.

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

결과는 아래 이미지와 같이 표시됩니다.


목표 상태를 선택하세요, 사전 정의된 목표(HomePos와 ZeroPos)가 2개 있습니다. 그런 다음, Plan & Execute 버튼을 누르세요. 로봇은 목표 위치로 이동할 것입니다.


서보 모드에서는 조이스틱(엑스박스 원 S 컨트롤러로 테스트됨)이나 키보드 또는 다른 장치를 사용하여 로봇을 제어할 수 있습니다. 먼저 장치를 PC에 연결하고 필요한 경우 드라이버를 설치하세요(키보드나 엑스박스 컨트롤러는 드라이버 설치가 필요 없습니다) 그리고 다음 명령을 사용하세요.

이 명령은 Indy7 로봇 모델이 있는 Gazebo 시뮬레이터를 실행합니다.

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

새 터미널을 열고 서보 제어를 위한 컨트롤러를 시작하세요.

  • 키보드로 서보 모드 키보드로 서보 모드를 사용하는 경우, 화살표 키와 '.' 및 ';' 키를 사용하여 Cartesian 조그를 할 수 있습니다. 'W'는 월드 프레임에서 Cartesian 조그를 하고, 'E'는 엔드 이펙터 프레임에서 사용합니다. 'N', 'M', ','는 UVW 작업 이동에 사용됩니다. 1, 2, 3, 4, 5, 6, 7 키는 조인트 조그에 사용되며, 'R'은 조깅 방향을 반대로 합니다. '-'와 '+'는 조인트 속도를 조절하고, '9'와 '0'은 작업 속도를 조절합니다. 'Q'를 누르면 종료합니다.

    ros2 run indy_driver servo_keyboard_input.py --ros-args -p is_sim:=true
    

  • 조이 컨트롤러로 서보 모드(엑스박스 원 S 게임패드로 테스트됨) 조이 컨트롤러로 서보 모드를 사용하는 경우, D패드를 사용하여 조인트 1과 조인트 2를 제어할 수 있고, B와 X는 조인트 4를, Y와 A는 조인트 3를 제어합니다. 왼쪽 조이스틱, 오른쪽 조이스틱, LB, RB, LT, RT는 TCP를 제어하는 데 사용됩니다.

    ros2 run indy_driver servo_joy_input.py --ros-args -p is_sim:=true