Experiments

고통의 3D spacemouse UR5와 연결하기.

자월현 2022. 1. 4.

<진행중>

1. 3D space mouse 드라이버를 깐다. (맥은 잘 깔리는데, 리눅스는 안 깔린다.) https://3dconnexion.com/kr/drivers/ 맥은 Big Sur 버전이 따로 있으니 자신의 맥을 확인하자. 리눅스는 드라이버가 제대로 작동 안하니까, spacenav (http://spacenav.sourceforge.net/)라는 다른 드라이버를 깐다.

여기서 spacenav에 3가지 종류가 있는데, 일단 spacenavd 가 기본이다. - 사실 제대로 설치가 된건지 아닌건지 확인할 길이 없다.. 하지만 일단 진행하자.

2. UR5와 3D spacemouse를 연결하는 것에는 여러가지가 있는데, RLkit (robosuite) https://github.com/rail-berkeley/rlkit/tree/master/rlkit/demos/spacemouse 에도 있고, MoveIt! https://ros-planning.github.io/moveit_tutorials/doc/realtime_servo/realtime_servo_tutorial.html 에도 있다. 


3. 먼저 RL kit부터 설명하자면, 현재 mac에서만 구동 가능하다고 쓰여있긴 하다. 근데 linux에서 왜 안되는지는 알 수 없다. 이게 RL kit, robosuite에 구현되어 있는 코드가 hidapi (https://github.com/libusb/hidapi)를 쓰는데, hidapi를 파이썬에서 쓸 때 제대로 돌아가는 것은 Mac (pip install hidapi) 에서 밖에 없는듯 하다. Linux에서는 sudo apt install을 하라고 되어있는데, 뭔가 파이썬이랑 연결하는 부분을 일단 못찾겠고,, hidapi를 linux에서 깔아도 제대로 인식이 안되는 것 같달까.. (맥에서는 3D mouse, 3D mouse device, 3D keyboard 이렇게 세 부분으로 나뉘어서 인식되고, device나 keyboard를 인식시키면 되는것 같은데, 리눅스에서는 3D mouse만 인식되고 그마저도 연결은 안된다 - 이부분은 맥과 동일.)  윈도우 에서도 시도해보려했는데, 윈도우 비밀번호를 까먹음.. 하하

 

맥이 zsh가 기본이어서 bash로 바꾸는게 속편하고, M1 mac이어서, mujoco는 2.1.1부터 가능한 것 같다. - 근데 gcc 버전 관련해서,, 약간 오류가 있는데, 아무튼 메인 git에서 제안하는 대로 LLVM을 깔아서 세팅을 해주면 어느정도 설치는 되는데(https://github.com/openai/mujoco-py/issues/662 )

import 할 때 build가 안된다. 뭔가 library confidence 오류 같은데. 근데 rlkit가 제대로 maintain이 안되는지 코드가 python 3.5 기반이고, multiworld 라는걸 추가로 깔아야하는데 그것도 conda environment로 깔아야하는데 mujoco 2.1.1을 써야하는 상태에선 dependency를 맞출 수가.. 엄두가 안난다. -- 그래서 rlkit보단 maintain 잘되는 robosuite로 가는게 속편한데, 흠.. to be continued..?!

 

4. MoveIt!을 깔기 위해서는 먼저 ROS를 깔아야한다. (Ubuntu 18.04이므로 Ros melodic을 깔았다!) 
그다음 catkin을 설치한다. 그후 MoveIt을 설치하는데, ** 꼭 source에서 설치해야 spacemouse 관련 코드가 설치된다. https://moveit.ros.org/install/source/** 그다음 catkin workspace에서 앞으로의 작업이 진행되는데, 
catkin workspace에 moveit tutorial 등을 다운받고 build를 진행한다. 

 

그 후부터는 계속 다운받고, build하고, 실행하는 것의 연속인데, roslaunch를 할 때는 한 터미널에서 계속 작업이 돌아가므로 tmux를 이용해서 터미널을 나누는 것이 보기 편하다.  

 

Gazebo 시뮬레이터를 돌릴 때는 꼭 RViz가 같이 돌아가야하는 것 같은데.. 아무튼 얘네를 켰다가 끌 때 꼭 잘 꺼야 나중에 다시 킬 때 에러가 나는 것을 방지할 수 있다. 아 그리고 joystick control teleoperation 탭에서의 추가사항을 세팅해줘야 돌아가는 것 같다. https://ros-planning.github.io/moveit_tutorials/doc/joystick_control_teleoperation/joystick_control_teleoperation_tutorial.html#getting-started

 

Joystick Control Teleoperation — moveit_tutorials Noetic documentation

Version: Moveit 2 - Foxy MoveIt 1 - Noetic MoveIt 1 - Melodic

ros-planning.github.io

이렇게 하면 시뮬레이터 내에서는 3D spacemouse를 사용할 수 있는데, 실제 UR5 로봇에서 돌리기 위해서는 ROS controller를 또 추가설치 해줘야한다. (이마짚..) https://github.com/UniversalRobots/Universal_Robots_ROS_Driver 

 

GitHub - UniversalRobots/Universal_Robots_ROS_Driver: Universal Robots ROS driver supporting CB3 and e-Series

Universal Robots ROS driver supporting CB3 and e-Series - GitHub - UniversalRobots/Universal_Robots_ROS_Driver: Universal Robots ROS driver supporting CB3 and e-Series

github.com

5. 먼저 robot preparation 파트에서 externalcontrol-1.0.5.urcap을 다운받아서 로봇에 설치해줘야한다. <진행중>

 

6. 사실 속편하게 돈으로 해결하는게 빠르다. "sales@radalytica.com" 로 메일을 보내서 돈을 줄테니 가르쳐달라고 하자. 

https://www.radalytica.com/ 여기서 UR5랑 마우스를 연결해놓은걸 확인할 수 있다. 

'Experiments' 카테고리의 다른 글

git commit 할때 파일 빼기  (0) 2022.03.01
mujoco 150 설치하기. Ubuntu 18.04에서.  (0) 2022.01.19
Latex 자주 쓰는 모음 정리  (2) 2021.12.18
learning rate 결정하기  (0) 2021.08.11
data loader 속도 높이기  (0) 2021.08.09

댓글