Edit on GitHub

예제

장치 설정(RH-P12-RN)

예제 실행을 위해 아래와 같이 장치의 컨트롤 테이블 값을 변경해야 함.

: 장치의 컨트롤 테이블 값을 변경하기 위해서, R+ Manager 2.0 (윈도우) 또는 다이나믹셀 위자드 2.0 (윈도우, 리눅스, 맥OS)을 사용하세요.

통신포트 설정

윈도우의 경우 예제의 통신 포트가 기본값으로 “COM4“로 되어 있음.
연결된 통신 장치가 COM4 가 아닐 경우 설정에서 통신 포트를 COM4 로 변경하거나, 소스 상의 DEVICE_NAME 값을 변경해야 함.
리눅스의 경우 예제의 통신 포트가 “/dev/ttyUSB0“로 되어 있음.
연결된 통신 장치가 /dev/ttyUSB0 가 아닐 경우 소스 상에서 DEVICE_NAME 값을 변경해야 함.

RH-P12-RN_Example/rh-p12-rn.cpp

...

#if defined(__linux__)
#define DEVICE_NAME             "/dev/ttyUSB0"
#elif defined(_WIN32) || defined(_WIN64)
#define DEVICE_NAME             "COM4"
#endif

...

윈도우즈 예제

다운로드

GIT client 프로그램으로 https://github.com/ROBOTIS-GIT/RH-P12-RN_Example 다운로드 혹은 https://github.com/ROBOTIS-GIT/RH-P12-RN_Example/archive/master.zip 파일 다운로드 후 압축 해제

빌드 및 실행

윈도우 예제는 Visual Studio 2017 로 작성되었음.
Visual Studio 를 설치하고, RH-P12-RN_Example\win64\RH-P12-RN-Example.sln 파일을 더블클릭하여 솔루션을 열고, 솔루션 빌드 후 실행.

Windows SDK 버전이 달라서 아래와 같은 에러가 발생할 경우

error MSB8036: Windows SDK 버전 10.0.14393.0을(를) 찾을 수 없습니다.  
필요한 버전의 Windows SDK를 설치하거나,  
솔루션을 마우스 오른쪽 단추로 클릭하고 [솔루션 대상 변경]을 선택하거나  
프로젝트 속성 페이지에서 SDK 버전을 변경하세요.

프로젝트의 속성 페이지에서 아래와 같이 Windows SDK 버전을 설치된 버전으로 변경 후 다시 빌드 후 실행.

img

윈도우 예제를 실행하면 아래와 같이 연결된 장치의 포트 이름과 Baudrate 가 표시되며 실행 됨.
실행에 실패할 경우 실패 메시지를 확인하고, 장치 설정 혹은 통신 포트 설정을 변경해야 함.

img

장치(RH-P12-RN)가 전류기반 위치 제어 모드로 실행 중일 경우 아래와 같은 화면이 표시 됨.

img

장치가 전류제어 모드로 실행 중일 경우 아래와 같은 화면이 표시 됨.

img

각 입력란의 동작은 아래와 같음.

++ MODE ++

++ TORQUE ++

++ CONTROL ++

++ PARAMETERS ++

리눅스 예제

준비

다이나믹셀 SDK 가 설치되어 있어야 함. 아래와 같이 다운로드 받아 설치할 것.

$ git clone https://github.com/ROBOTIS-GIT/DynamixelSDK
$ cd DynamixelSDK/c++/build/linux64
$ sudo make install

/dev/ttyUSB0 의 접근 권한을 얻기 위해 아래 명령을 입력 (USER_ID 를 dialout 그룹에 등록하는 명령)

$ sudo usermod -aG dialout USER_ID  

이제 리눅스를 재시작하거나 로그아웃 후 다시 로그인 하면 USER_ID 가 dialout 그룹에 등록되어 /dev/ttyUSB0 의 접근 권한을 얻게 됨.

다운로드

$ git clone https://github.com/ROBOTIS-GIT/RH-P12-RN_Example

빌드

$ cd RH-P12-RN_Example/linux64
$ make

실행

$ ./rh-p12-rn_example

리눅스 예제를 실행하면 아래와 같이 연결된 장치의 포트 이름과 Baudrate 가 표시되며 실행 됨.
실행에 실패할 경우 실패 메시지를 확인하고, 장치 설정 혹은 통신 포트 설정을 변경해야 함.

img

장치(RH-P12-RN)가 전류기반 위치 제어 모드로 실행 중일 경우 아래와 같은 화면이 표시 됨.

img

장치가 전류제어 모드로 실행 중일 경우 아래와 같은 화면이 표시 됨.

img

각 입력란의 입력 방법 및 동작은 윈도우 예제와 동일함.

ROS GUI 예제

준비

아래 커맨드를 통해, 유저그룹(USER_GROUP)의 real-time scheduling priority(rtprio)을 설정.

$ sudo bash -c 'echo "@USER_GROUP - rtprio 99" > /etc/security/limits.d/robotis-rtprio.conf'

/dev/ttyUSB0 의 접근 권한을 얻기 위해 아래 명령을 입력 (USER_ID 를 dialout 그룹에 등록하는 명령)

$ sudo usermod -aG dialout USER_ID

이제 리눅스를 재시작하거나 로그아웃 후 다시 로그인 하면 USER_ID 가 dialout 그룹에 등록되어 /dev/ttyUSB0 의 접근 권한을 얻게 됨.

다운로드

$ cd ~/catkin_ws/src
$ git clone https://github.com/ROBOTIS-GIT/DynamixelSDK
$ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-Framework
$ git clone https://github.com/ROBOTIS-GIT/ROBOTIS-Framework-msgs
$ git clone https://github.com/ROBOTIS-GIT/RH-P12-RN

빌드

$ cd ~/catkin_ws
$ catkin_make

실행

터미널을 띄워 아래 명령으로 manager 실행

$ roslaunch rh_p12_rn_manager rh_p12_rn_manager.launch

새로운 터미널을 띄워 아래 명령으로 GUI 예제 실행

$ rosrun rh_p12_rn_gui rh_p12_rn_gui

장치가 전류기반 위치 제어 모드로 실행 중일 경우 ROS GUI 예제 화면은 아래와 같음.

img

장치가 전류제어 모드로 실행 중일 경우 ROS GUI 예제 화면은 아래와 같음.

img

각 입력란의 동작은 윈도우/리눅스 예제와 동일함.