728x90
반응형
지난 글에서 myo를 착용한 팔의 움직임을 추종하는 작업을 완료하였다. 또, 주먹을 쥠에 따라 그리퍼가 닫히고 손가락을 모두 폄에 따라 그리퍼가 열리는 기능도 추가하였다.
한 가지 문제점은 센서를 착용할 때마다 센서가 인식하는 roll=pitch=yaw=0의 초기위치가 다르다는 점이다. myo를 다시 착용했을 때 똑같이 정면으로 팔을 뻗어도 이전에 로봇이 가리키는 방향이 달라졌다.
이를 해결하기 위해서 캘리브레이션 기능을 추가하였다. 내가 정면으로 팔을 뻗었을 때, 그 때의 로봇의 roll, pitch, yaw값을 모두 0으로 초기화하도록 하였다. 이는 중지와 약지를 엄지와 두번 맞닿는 동작을 했을 때 작동하도록 하였다.
두 개의 메소드(checkCalibration, getCalibration), 3개의 멤버변수(calibration_roll_, calibration_pitch_, calibration_yaw_)를 만들었으며 모두 헤더파일에서 선언하였다. 그리고 cpp본문의 생성자 구현에서 멤버변수 = 0으로 초기화하였다. 마지막으로 실시간으로 myo_ori값을 모터로 전달하는 realtime()을 수정하였다. 캘리브레이션 작동시의 myo_ori값을 현재의 ori값에서 뺀 값을 모터로 전달하게하여 구현하였다.
[연구노트]
728x90
반응형
'기계공학부 시절의 기록 > ROS일기' 카테고리의 다른 글
결과데이터 그래프화하기 (0) | 2021.11.17 |
---|---|
vector error : out of range (0) | 2021.11.13 |
Myo로 OpenManipulator 동작시키기 성공!!! (1) | 2021.10.28 |
또다시 포트연결문제 발생 : ttyACM0 -> ttyACM1 (0) | 2021.10.27 |
Myo센서에서 Orientation의 의미 (0) | 2021.10.27 |
댓글