ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 21/10/05 IRaC Lab 방문
    ROS일기 2021. 10. 5. 12:19
    728x90
    반응형

    오늘은 금오공과대학교 IRaC연구실로부터 도움을 받기 위한 미팅이 있었다.

    미팅 전에 간단히 Openmanipulator를 다시 구동시켜보았다.

     

    이전에는 Moveit을 통한 다른 컨트롤러를 통해서 제어를 하였지만 이번에는 로보티즈에서 제공하는 OpenManipulator 컨트롤러를 활용하고 teleop를 통해 명령어를 송신하였다.

     

    그 과정에서 이러한 패키지를 ROS2에서 사용할 수 있는지에 대한 질문을 커뮤니티에 올렸다.

    Q&A)

    https://cafe.naver.com/openrt/26184?boardType=L

    https://www.robotis.com/service/forum_view.php?slg=&page_type=&bbs_no=2591690

     

     

    package : https://github.com/ROBOTIS-GIT/open_manipulator/tree/master/open_manipulator_controller

    e-manual : https://emanual.robotis.com/docs/en/platform/openmanipulator_x/ros_operation/

     

     

     

    $ roscore

    $ roslaunch open_manipulator_controller open_manipulator_controller.launch usb_port:=/dev/ttyACM0 baud_rate:=1000000

    $ roslaunch open_manipulator_control_gui open_manipulator_control_gui.launch

     

     

     

    $ roscore

    $ roslaunch open_manipulator_controller open_manipulator_controller.launch usb_port:=/dev/ttyACM0 baud_rate:=1000000

    $ roslaunch open_manipulator_teleop open_manipulator_teleop_keyboard.launch

     

     


     

    미팅을 통해서 논문에 대한 더욱 자세한 설명과 핵심고민사항, 내가 해야할 것들을 알 수 있었다.

     

    핵심은 myo의 imu센서가 생성해내는 방향벡터를 어떻게 처리하여 로봇을 움직이느냐였다.

    이는 매시간의 방향벡터를 가지고 내적을 통해 사잇값을 구하는 방법으로 해결하였으며 이것이 해당 논문의 핵심이었다. 또, 이것이 바로 논문에서 이야기한 UR3_move는 myo데이터를 UR3에 맞게 변형한다는 의미였다.

     

    참고한 논문의 총 4개 노드 설명 및 나는 어떻게 변형할 것인가

    1) myo_raw

    - 해당 소스코드는 리눅스에서 myo를 구동시키기 위해 해외대학에서 개발한 것

    - 설명서에 하드웨어를 자체적으로 구동시키는 방법이 있음

    - ros2에 맞는 퍼블리시 문법으로 수정해보자

     

    2) UR3_move

    - 초기에는 간단한 경로를 따르는 코드를 테스트함

    - 이후에 그 경로를 myo로부터 생성하기 위한 고민을 함.

    - UR3_test 파일(/ur_driver에 명령을 내릴 수 있게 짜여진 코드)을 활용하여 subscriber를 만들고(myo데이터 수신) 

    - myo의 imu를 통해서 실시간으로 모터에 어떤값을 전달하는가? myo에서 생성된 방향벡터를 가지고 시간에 따라 변하는 방향벡터 간의 사이각도값을 송신

    https://darkpgmr.tistory.com/121

    - OpenManipulator-x에 명령을 내릴 수 있는 코드를 활용하여 myo subscriber를 추가시키고 내적을 통한 사잇값 계산방법으로 델타값 추출. 컨트롤러에 송신하게끔 수정.

     

    3) /ur_driver

    - OpenManipulator 컨트롤러로 변경

     

    4) robot_state

    - myo값을 컨트롤러로 송신하는 과정에서 생길 것?

     

     

    <지금 할 일>

    open_manipulator_teleop_keyboard.cpp에서 myo 데이터 subscriber, IMU값으로 사잇값 추출, 이 값으로 컨트롤러에 가는 데이터 대체

     

     

     

    * 전체적으로 ROS2에 맞게 패키지파일 등을 만들자.

    * 현업에서는 c++이 쓰인다.

    * 깃헙을 통해서 협업을 잘하기 위해 fork.

     

     

     

    미팅요청에 흔쾌히 많은 것을 알려주신 IRaC 김은수님께 감사하다.

    https://iraclab.kumoh.ac.kr/

     

    IRaC Lab

    welcome !

    iraclab.kumoh.ac.kr

    728x90
    반응형

    댓글 0

Designed by Tistory.