본문 바로가기
기계공학부 시절의 기록/ROS일기

9월 4째주. ROS 진행상황

by juhyeonglee 2021. 9. 30.
728x90
반응형

목표

myo armband에 장착된 자이로센서로부터 위치정보와 속도, 가속도 정보를 이용해 로보티즈 Openmanipulator-x 구동

 

참고자료

- 논문 : 전 세 윤, 박 범 용, "근전도센서를 이용한 기반의 산업용 로봇 원격제어", 2020 https://www.koreascience.or.kr/article/JAKO202013562120000.pdf

- 블로그 : 오로카 https://cafe.naver.com/openrt/24070

- 코드 : 깃허브 https://github.com/robotpilot/ros2-seminar-examples

           myo코드 : https://github.com/uts-magic-lab/ros_myo 

           myo to ur3 코: https://github.com/IRaCLab/IRaC_remotecontrolUR/blob/master/RemoteControl_UR3_2to3t.py

 

개발환경

OS : ubuntu 20.04

SW : ROS2 foxy

HW : myo armband, Openmanipulator-x, PC

 

현재진행상황

전체적으로는 참고중인 논문(하단에 기재)을 follow up하며 UR3가 아닌 OpenManipulator-x로 적용하려고 하고 있다.

기본적인 데이터 통신을 위한 패키지, 빌드파일, 소스코드작성법 공부이며 (파이썬 활용)

이를 통해서 myo 패키지, Open-Manipulator패키지를 ROS2에 맞게, OpenManipulator에 맞게 수정할 계획이다.

 

다음 공부 (Objects : 나에게 맞는 데이터 flow 만들기)

서비스, 액션 통신 실습

패키지, 빌드파일 관리

 

확인해야 할 사항

- 참고논문에서 myo의 어떤 데이터를 가져오는지

- myo에서 어떤 데이터로, UR3 7개 모터 모두를 제어하는지?

- 6 DOF인 UR3에서 4DOF인 OpenManipulator로 바꿀 때, 위의 내용을 바탕으로 어떻게 수정해야하는지

- myo 패키지가 ROS2에서 동작하는지

- Openmanipulator-x ROS2 패키지 있는지

 

 


 

디렉토리 생성과 패키지 생성은 생략하였다. (오로카 블로그 참고 https://cafe.naver.com/openrt/24070)

 

 

 

지난번에는 ROS1환경에서 Moveit을 통해 Openmanipulator를 구동시켜보았었다. 

 

지금까지 한 것 목차정리

너무 정신없이 링크만 정리해 놓으면서 글이 혼잡해졌다. 지금까지의 상황과 방향을 정리해본다. 로봇에 관심을 갖다보니 ROS를 알게되었고 Modern robotic를 공부하며 로봇에서 configuration을 위해서

needs-searcher.tistory.com

 

이번에는 myo센서 데이터를 활용해야한다. 데이터간 통신흐름을 만들어 내고 패키지간의 종속성을 만드는 능력이 필요하고 깃허브의 소스코드를 읽고 수정할 수 있어야 한다. 때문에 다시 기초부터, 패키지 관리는 어떻게 하는지, 빌드 관리는 어떻게 하는지부터 공부한다. 노드작성법을 공부하며 필요한 패키지를 수정할 것이다.

 

 

 이번주에는 ROS2 책을 통해서 기본 내용들을 파악하고 Helloworld 메시지를 publish, subscribe하는 실습을 통해 통신에 필요한 기초구성, 문법을 공부하였다. 

 

 


 

 

package.xml파일을 통해서 패키지의 중요 내용(패키지 이름, 종속 파일들 선언)들을 작성하고

빌드에 필요한 setup.py, setup.cfg를 작성한다.

ROS1과 달리 ROS2에서는 python을 완전히 독립시켜 관리한다. 때문에 python으로 작성시 CMakeList파일이 존재하지 않는다.

package.xml 작성
setup.py 작성
setup.cfg 작성
pub, sub 노드 소스코드 작성
각 노드 실행

 

 

파이썬 언어 문법 관련 참고 블로그들

class

https://engineer-mole.tistory.com/190

 

role of super()

https://velog.io/@gwkoo/%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%83%81%EC%86%8D-%EB%B0%8F-super-%ED%95%A8%EC%88%98%EC%9D%98-%EC%97%AD%ED%95%A0

 

code detail review

https://hostramus.tistory.com/113

 

about formating

https://blockdmask.tistory.com/424

 

if __name__ ==  '__main__':

https://medium.com/@chullino/if-name-main-%EC%9D%80-%EC%99%9C-%ED%95%84%EC%9A%94%ED%95%A0%EA%B9%8C-bc48cba7f720

728x90
반응형

댓글