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

[진행중]10월 1째주. ROS 진행상황

by juhyeonglee 2021. 10. 1.
728x90
반응형

금주 목표

- 자문을 통해 

ROS1 패키지 ROS2에서 쓰는 것 가능여부 파악

패키지 통신구조 확인 (myo - UR3_move - ur_driver)

- ROS2 통신 심화 공부

 

참고자료

- 논문 

 https://www.koreascience.or.kr/article/JAKO202013562120000.pdf

- myo-rawNode.py

 https://github.com/uts-magic-lab/ros_myo 

- UR3_2to3t.py https://github.com/IRaCLab/IRaC_remotecontrolUR/blob/master/RemoteControl_UR3_2to3t.py

- /ur_driver

https://github.com/IRaCLab/Industrial_Robot_Cnn/blob/master/Universal_Robots_ROS_Driver/ur_robot_driver/src/ur/ur_driver.cpp

 

 

 

 

 

1. 지난주의 궁금증들

 

9월 4째주. ROS 진행상황

목표 myo armband에 장착된 자이로센서로부터 위치정보와 속도, 가속도 정보를 이용해 로보티즈 Openmanipulator-x 구동 개발환경 OS : ubuntu 20.04 SW : ROS2 foxy HW : myo armband, Openmanipulator-x, PC 현..

needs-searcher.tistory.com

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

/myo_ori

IMU센서로부터의 Roll, Pitch, Yaw 값을 radian단위로 가져옴을 확인.

/myo_gest_str

EMG센서로부터 총 6개의 제스처 인식.

REST, FIST, WAVE_IN, WAVE_OUT, SPREAD_FINGER, THUMB_TO_PINY

추가적으로) /myo_raw/myo_imu로부터 quaternion pose, accelerometer and gyro axes 값을 가져올 수 있다.

 

- myo에서 어떤 데이터로, UR3 6개 모터 모두를 제어하는지?(해결)

모두 제어하지 않고 최하단 2개의 모터(base, shoulder motor)만을 제어.

/myo_ori에서 Roll값을 base motor에, Pitch값을 shoulder motor에 전송

 

- 6DOF인 UR3에서 4DOF인 OpenManipulator로 바꿔적용할 때, 어떻게 수정해야할지(해결)

Step1) 모터들의 초기 configuration과 myo밴드의 초기 방향 설정

1안

사람 팔과 유사한 포즈. 하지만 이때는 elbow 모터가 사람팔과는 반대로 바깥방향으로만 회전이 가능함. 또, 바닥판을 세우기 위해 추가적인 구조물제작이 필요함. 

2안

오른쪽 이미지와 같은 포즈. elbow모터도 활용할 수 있다.

2안이 추가적 구조물이 필요없고 더 다양한 경로를 만들 수 있을 것으로 보인다.

 

Step2) 논문과 같이 Openmanipulator의 base, shoulder 모터에 myo의 Roll, Pitch값 전송하면 된다.

추가로 생각할 수 있는 것 1) 2개의 myo 밴드 사용하기. 더 다양한 경로생성을 위해

myo밴드를 두개 착용하여 두 myo밴드의 Pitch값 차이를 계산하여 elbow모터로 전달하면 elbow모터도 추종시킬 수 있다. 이를 위해서는 myo두개의 밴드로부터 각각 데이터를 다른 토픽으로 보내고 추가적인 노드에서 모두 받아 계산하여야한다.

 

추가로 생각할 수 있는 것 2) myo로부터 RPY데이터 뿐만 아니라 가속도계값도 받아 이를 추종시키기

공을 던지거나, 받을 때 다양한 모터속도를 구현할 필요가 있다.

 

추가로 생각할 수 있는 것 3) 다수의 로봇팔 구동

ROS2의 특징은 여러대의 로봇을 동시에 구동, Real-time의 장점이 있다. 이를 시험해보는 것도 좋을 것이다.

 

 

 

- 논문상에서 정확히 어떤 패키지들로 데이터흐름을 만들었는지, 나는 어떻게 변경해야 하는지

출처 : 전 세 윤, 박 범 용, "근전도센서를 이용한 기반의 산업용 로봇 원격제어", 2020

총 4개의 노드가 있다.

/myo_raw : RPY의 라디안 값 생성. 이를 UR3_move에 토픽 형식으로 전송

/UR3_move : myo와 UR3 동기화? myo와 UR3 통신 가능케함. 손 제스처 데이터를 분류기로 처리. RPY데이터를 모터에 맞게 처리. 이를 ur_driver로 전달.

/ur_driver : UR3로봇이 pc로부터 보내지는 입력을 받을 수 있게 함.

/robot_state_publisher

 

이 패키지들을 ROS2에서 그대로 쓸 수 있을까?

어떤부분들을 수정해야할까?

OpenManipulator-X 제어 패키지는 ROS2에서 쓸 수 있는가?

- EMG 센서를 통해서 샘플 데이터들을 실험을 통해 만들고 분류기를 만들어야 하는지, 이미 분류기가 존재하는지(myo_raw 노드 확인해보자.)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

댓글