Skip to content

실제 로봇 제어

이 장에서는 실제 Indy와 함께 ROS를 실행하는 방법에 대해 설명합니다.

패키지 구성

├── indy_driver
    ├── indy_driver ── indy_driver.py
    └── launch ── indy_bringup.launch.py
├── indy_moveit
    ├── ...
    └── launch ── indy_moveit_real_robot.launch.py

이 섹션은 indy_driverindy_moveit 두 패키지를 사용합니다. indy_driver 패키지는 Indy 로봇과 ROS2를 연결하는 통신 스크립트를 포함하며, indy_moveit은 Indy 로봇과 함께 moveit을 사용하기 위한 moveit 구성을 포함합니다.

실행

아래 명령어 실행을 통해 Indy7 로봇 모델의 드라이버를 실행하여 ROS2을 통해 실제 로봇을 제어할 수 있도록 합니다.

ros2 launch indy_driver indy_bringup.launch.py indy_type:=indy7 indy_ip:=192.168.xxx.xxx
  • indy_ip: 로봇 컨트롤박스의 IP 주소를 입력합니다 (192.168.xxx.xxx는 예시입니다).


아래 명령을 통해 Moveit과 함께 Indy 로봇을 실행할 수 있습니다. 이는 실제 로봇을 제어하기 위한 인디 드라이버와 Moveit을 함께 실행합니다.

ros2 launch indy_moveit indy_moveit_real_robot.launch.py indy_type:=indy7 indy_ip:=192.168.xxx.xxx


실제 로봇에서 Servoing 기능을 하용하기 위해서는 다음 명령을 사용하십시오.

ros2 launch indy_moveit indy_moveit_real_robot.launch.py indy_type:=indy7 indy_ip:=192.168.xxx.xxx servo_mode:=true

키보드를 이용한 Servoing 모드

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

ros2 run indy_driver servo_keyboard_input.py --ros-args -p is_sim:=false
  • , : x 방향 작업공간 조그 이동
  • , : y 방향 작업공간 조그 이동
  • . , ; : z 방향 작업공간 조그 이동
  • N, M, ,: 작업공간 UVW 이동
  • W, E: 전역좌표계 (W) 및 툴좌표계 (E) 기준 작업공간 조그모션 전환
  • 1, 2, 3, 4, 5, 6, 7: 관절공간 조그모션
  • R: 조그방향 전환
  • -, +: 관절공간 모션 속도 조절
  • 9, 0: 작업공간 모션 속도 조절
  • Q: 종료
  • H: 홈 위치 이동
  • Z: 제로 위치 이동
  • S: 복구 (Recover)
  • P: Teleoperation 모드 정지

조이 컨트롤러 (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 모션 제어
  • LS Click: 홈 위치 이동
  • RS Click: 제로 위치 이동
  • XBOX: 복구 (Recover)
  • HOME: Teleop 모드 시작/정지