테크/ROS

[ROS] 로봇팔 시뮬레이션 제어 및 통신

2023. 3. 18. 15:57
목차
  1. 1. 개발환경
  2. 2. 로봇팔 시뮬레이션 하기
  3. 3. 통신 확인
  4. 4. 코드분석

1. 개발환경

OS : Ubuntu 20.04
ROS : Noetic
OpenSource : OpenMANIPULATOR-X

2. 로봇팔 시뮬레이션 하기

※주의※
모든 개발환경이 구성되어 있어야 하며 자세한 사항은 다음 링크를 참고할것
https://emanual.robotis.com/docs/en/platform/openmanipulator_x/quick_start_guide/#install-ros-on-pc

1) 오픈매니퓰레이터 가제보 실행

roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch

- 가제보가 open되면 플레이버튼 누르기

2) 컨트롤러도 시뮬레이션으로 진행하기 위해 use_platform설정 false로 바꿔주기

roslaunch open_manipulator_controller open_manipulator_controller.launch use_platform:=false

3) GUI 시뮬레이션 프로그램 실행

roslaunch open_manipulator_control_gui open_manipulator_control_gui.launch

- Timer Start 실행


3. 통신 확인

단순히 시뮬레이션 하는것으로 끝내는 것이 아니라 실제로 통신이 어떻게 이루어지는지 직접 확인해 보자.

 

1) rostopic list 확인

rostopic list
  • 다음과 같은 토픽을 확인 할 수 있다. 그러나 토픽이 너무 많고 감이 잘 안와서 두번째 방법으로 확인해보자

2) rqtgraph로 직관적으로 확인하기

rqt_graph

  • rostopic list보다 보기 편하고 어떤 node에서 topic이 publish 되는지 subscribe되는지 확인 할 수 있다.
  • 특정 노드나 토픽에 마우스 커서를 올리면 해당 통신이 하이라이트 되면서 연관된 요소를 확인 할 수 있다.
  • GUI컨트롤러에서 가제보까지 어떻게 통신이 이루어지는지 확인하기 위해 해당 부분을 하이라이트 하면 위와 같다.

  • 사용자가 GUI컨트롤러에서 명령을 주면 /controm_gui라는 노드에서 /option 이라는 토픽이 publish되고 /open_manipulator_controller 라는 노드가 받고 이 컨트롤러가 다시 /gripper_position/command라는 토픽으로 가제보에게 전달한다.
  • 그러나 위의 rqt_graph에는 그리퍼에 대한 정보만 있을 뿐 로봇팔의 위치에 대한 정보는 표현이 되어있지 않다. 로봇팔이 움직이는 위치값도 확인하기 위해 rqt_graph의 표현을 다음과 같이 바꿔보자

  • /open_manipulator_controller에서 /joint#_position 토픽이 발행되는것을 확인 할 수 있게 되었으니 이를 확인해보자

3) rostopic echo /joint1_position

rostopic echo /joint1_position
rostopic echo /joint2_position
rostopic echo /joint3_position
rostopic echo /joint4_position
  • 우측 터미널창을 보면 4개의 조인트 위치를 움직이면서 확인 할 수 있다. 


4. 코드분석

위의 프로그램이 어떻게 동작하는지 코드를 분석해보자.

openmanipulator controller가 가제보 시뮬레이션으로 신호를 전송하는 파일은 다음과 같은 경로에 있다.

catkin_ws > src > open_manipulator > open_manipulator_control_gui > src > main_window.cpp

이러한 경로는 roslaunch <패키지 이름> <파일.launch> 에서 패키지 이름에 맞는 디렉토리를 확인해 보면 금방 찾을 수 있다.

소스코드를 보면 다음과 같이 짜여져 있으니 이를 참고해서 개발해보자!

저작자표시 (새창열림)

'테크 > ROS' 카테고리의 다른 글

[ROS] 기본 용어 및 컨셉  (0) 2022.02.25
[ROS] 초기 설정 및 에러 폭탄  (0) 2022.02.10
  1. 1. 개발환경
  2. 2. 로봇팔 시뮬레이션 하기
  3. 3. 통신 확인
  4. 4. 코드분석
'테크/ROS' 카테고리의 다른 글
  • [ROS] 기본 용어 및 컨셉
  • [ROS] 초기 설정 및 에러 폭탄
시그널보내
시그널보내
삽질을 통해 깊게 공부하는 Electronic Engineer 연락 및 문의사항은 'donghyun9904@naver.com' 으로 부탁드립니다!
시그널보내삽질을 통해 깊게 공부하는 Electronic Engineer 연락 및 문의사항은 'donghyun9904@naver.com' 으로 부탁드립니다!
시그널보내
시그널보내
시그널보내
전체
오늘
어제
  • 분류 전체보기 (86)
    • 감상평 (0)
    • 테크 (4)
      • Network (2)
      • C | C++ (3)
      • MATLAB (12)
      • OSEK ⁄ VDX (4)
      • AVR(Microchip Studio) (9)
      • STM32 (1)
      • PcB (2)
      • [verilog | VHDL] (6)
      • 라즈베리파이 (4)
      • 아두이노 (6)
      • ML | DL (5)
      • ROS (3)
      • 리눅스 (12)
      • 프로젝트 (3)
      • 예제 (3)
    • 연수 ⁄ 교육 (4)
    • 대회 ⁄ 공모전 (3)
    • 취준 (4)
    • 사담 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • osekos
  • MSE
  • 마이크로프로세서
  • 현대오토에버
  • AVR
  • 라즈베리파이
  • VHDL
  • 현대오토에버 모빌리티 임베디드 SW스쿨
  • 경사하강법
  • osek
  • vhdl문법
  • 매트랩
  • 머신러닝
  • 차량용운영체제
  • 아두이노avr
  • 선형회귀
  • 아두이노
  • 아트멜스튜디오
  • 리눅스
  • IDEC

최근 댓글

최근 글

hELLO · Designed By 정상우.
시그널보내
[ROS] 로봇팔 시뮬레이션 제어 및 통신
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.