Edit on GitHub

시작하기

로보플러스 태스크 2.0

  1. 로보플러스 태스크 2.0 (R+ Task 2.0)

어떤 일을 처리하기 위한 행동들의 집합을 태스크(Task)라고 합니다. 로봇이 해야 할 태스크를 프로그래밍 한 소스를 로보플러스(RoboPlus)에서는 태스크 코드(Task Code)라고 합니다. 로봇은 사용자가 작성한 태스크 코드에 따라 동작하게 되며, 이러한 태스크 코드를 쉽게 작성할 수 있도록 도와주는 것이 로보플러스 태스크(RoboPlus Task) 프로그램입니다. 태스크 코드 파일은 PC(혹은 스마트폰)에서 .tskx라는 확장자를 가집니다. (기존 버전의 경우 .tsk확장자를 사용하며, R+ Task 2.0을 통해 .tskx로 변환할 수 있습니다.)

  1. 태스크 파일과 모션 파일은 어떤 관계인가요?

태스크 파일은 로봇이 어떻게 생각하고 움직일지 논리, 사고를 정의한 프로그램 코드이며, 모션 파일은 태스크에서 내린 판단에 따라 움직일 행동이 정의된 데이터입니다. 만약, 내가 만든 로봇이 단순한 동작만을 사용하는 로봇이라면 태스크 파일을 작성할 때 모션을 사용하지 않아도 되지만 정밀한 움직임이나 댄스와 같이 많은 움직임이 필요하다면 모션 파일을 사용하는 것이 효율적입니다.

(태스크 코드에서 모션을 사용한다면, 반드시 모션 파일을 다운로드해야 합니다.)

메뉴설명

  1. 단계별 편집탭

작업 영역이 홈 탭, 프로그래밍 탭, 디버깅 탭으로 분리됩니다.

  1. 홈 탭

프로그램 시작 시 첫 화면으로 기본 예제, 파일 관련 메뉴, 업데이트, 설정 메뉴를 포함합니다.

![](/assets/images/sw/rplus2/task/r+manager2_50.gif)

![](/assets/images/sw/rplus2/task/r+manager2_51.gif)
  1. 프로그래밍 탭

    태스크 소스 코드를 편집하는 영역으로 프로그래밍 툴바, 소스뷰, 아웃라인 메뉴, 다운로드 기능을 제공합니다.

  2. 디버깅 탭

태스크 코드를 디버깅하기 위한 영역으로 출력 모니터, 가상리모컨 기능을 제공합니다.

(사용자 편의를 위해 자동 연결기능이 추가되었습니다.)

![](/assets/images/sw/rplus2/task/r+manager2_53.gif)

![](/assets/images/sw/rplus2/task/r+manager2_54.gif)

개념소개

태스크 코드에서 활용 가능한 자원

로봇의 태스크 코드는 제어기에 연결된 장치에 따라 사용할 수 있는 자원이 다양해집니다.

  1. 만약 제어기에 다이나믹셀과 같은 외부 하드웨어가 연결되어있으면, 태스크 코드에서도 이를 사용할 수 있습니다.
  2. 만약 제어기에 스마트 앱(R+ Smart, R+ IoT)과 같은 스마트 기기가 연결되어있으면, 태스크 코드에서도 이를 사용할 수 있습니다.
  3. 만약 제어기에 R+ Motion으로 모션 데이터를 다운로드 했다면, 태스크 코드에서도 이를 사용할 수 있습니다.

태스크 코드에서 활용할 수 있는 자원은 아래 그림과 같이 구성됩니다.

태스크 코드의 구조

태스크 코드는 3가지 요소(코드 라인, 명령어, 파라미터)로 구성됩니다.

  1. 파라미터
    변수나 하드웨어의 특성을 나타내는 최소 단위입니다. 값을 읽거나 쓸 수 있습니다.

  2. 명령어
    프로그램을 실행하기 위해 제어기에 내리는 단일 동작(연산)을 뜻합니다. 각 명령어는 고유한 동작을 약속하고 있으며 동작(연산)에 따라 사용하는 파라미터의 개수가 다릅니다.

  3. 코드 라인 (명령어 줄)
    프로그램을 실행하는 최소단위로 명령어와 파라미터가 조합됩니다. 기본적으로 코드 라인의 순서대로 프로그램이 실행됩니다.

따라 해보기

예제 프로젝트 열기

  1. 홈 탭으로 이동합니다. (프로그램 시작 시 홈 탭에서 시작됩니다.)

  2. “예제” 버튼을 클릭합니다.

  3. 원하는 제품과 단계, 예제 명을 선택합니다.

  4. “확인” 버튼을 클릭합니다.

새 파일 만들기

  1. 홈 탭으로 이동합니다. (프로그램 시작시 홈 탭에서 시작됩니다.)

  2. “새로 만들기”버튼을 클릭합니다.

  3. 제어기와 제어기의 펌웨어 버전을 선택합니다. (구1.0, 신규2.0)

  4. “확인”버튼을 클릭하면 새로운 Task 파일이 생성됩니다.

명령어 편집하기

  1. 프로그래밍 탭으로 이동합니다.
    (새 파일을 생성한 직후라면 프로그래밍 탭에서 시작됩니다.)

  2. 명령어 버튼을 클릭합니다.

  3. “반복문” 카테고리를 클릭합니다.

  4. “무조건 반복” 명령어를 드래그(drag)하여,

  5. 원하는 라인에 드롭(drop)하여 명령어가 추가합니다.

파라미터 편집하기

  1. “명령어” 버튼을 클릭합니다.

  2. “실행문” 카테고리를 클릭합니다.

  3. “로드” 명령어를 드래그(drag)하여,

  4. 원하는 라인에 드롭(drop)하여 명령어를 추가합니다.

  5. 추가된 명령어의 “좌변 블록”을 더블-클릭합니다.

  6. 카테고리1의 “제어기 장치”를 선택합니다.

  7. 카테고리2의 “주변 장치”를 선택합니다.

  8. 포트를 1번으로 선택한 후 “감속모터”를 선택합니다.

  9. “확인” 버튼을 클릭하여 명령어 편집을 완료합니다.

  10. 추가된 명령어의 “우변 블록”을 더블-클릭합니다.

  11. 카테고리1의 “제어기 상수”를 선택합니다.

  12. 카테고리2의 “모터 제어 값”을 선택합니다.

  13. 방향을 “CCW”로 선택한 후 출력 값에 500을 입력합니다.

  14. “확인” 버튼을 클릭하여 명령어 편집을 완료합니다.

  15. 편집이 적용된 명령어 블록을 확인합니다.

다운로드 하기

  1. “장치” 버튼을 클릭합니다.

  2. 로봇의 연결 장치를 선택한 후,

  3. “확인” 버튼을 클릭합니다.

  4. 창이 닫히면 “다운로드”버튼을 클릭합니다.

  5. 다운로드가 완료되면 제어기가 Task를 실행합니다.
    (일부 제어기의 경우 제어기가 Task를 실행하는 대신 종료합니다.)

프로그램 출력보기

  1. 디버깅 탭으로 이동합니다.

  2. “장치” 버튼을 클릭합니다.

  3. 로봇의 연결 장치를 선택한 후,

  4. “확인” 버튼을 클릭합니다.

  5. 창이 닫히면 “시작” 버튼을 클릭합니다.

  6. 로봇이 연결되면 “출력 모니터”와 “가상 리모컨”이 활성화 됩니다.

  7. 소스 코드상에서 “화면출력 후 줄 바꿈(혹은 화면출력)”을 사용한 경우,

  8. 다음과 같이 “출력용 모니터”에 값이 출력됩니다.

프로그래밍1-편집

R+ Task 2.0에서 사용하는 기본 편집 기능을 설명하는 문서입니다.
카테고리를 클릭하면 해당하는 편집 기능에 대해 정보를 확인 할 수 있습니다.

명령어 삽입/변경

  1. 우측의 “명령어” 탭을 클릭합니다. (혹은 명령어를 삽입할 위치를 더블 클릭합니다.)

  2. 명령어를 드래그(drag)하여 원하는 위치에 드롭(drop)합니다.

  3. 명령어 블록을 더블 클릭하면 다른 명령어로 변경할 수 있습니다.

여러 줄 선택

  1. 줄 번호를 드래그(drag)하여 여러 줄을 선택합니다.

  2. 이미 선택된 라인의 번호를 드래그(drag)하면 부분적으로 취소할 수 있습니다.

  3. 소스코드를 직접 클릭하면 라인선택이 취소됩니다.

줄 삽입/지우기

  1. 줄 삽입(혹은 줄 지우기)를 진행할 위치를 마우스 왼쪽 버튼으로 선택합니다.

  2. 마우스 오른쪽 버튼을 클릭하면 추가 메뉴가 활성화 됩니다.

  3. “줄 삽입”을 클릭하면 선택된 줄의 위쪽에 새로운 줄이 삽입됩니다. (단축키 : Insert)

  4. “줄 지우기”를 클릭하면 선택된 줄이 삭제됩니다. (단축키 : Delete)

줄 활성/비활성

  1. 활성/비활성을 진행할 위치를 마우스 왼쪽 버튼으로 선택합니다.

  2. 마우스 오른쪽 버튼을 클릭하면 추가 메뉴가 활성화 됩니다.

  3. “줄 활성/비활성”을 클릭하면 선택된 줄의 활성/비활성 상태가 전환됩니다. (단축키 : Ctrl + E)

  4. 비활성화된 코드는 회색으로 표시되며 컴파일시 제외됩니다.

복사/잘라내기/붙여넣기

  1. 복사(혹은 잘라내기)를 진행할 줄을 마우스 왼쪽 버튼으로 선택합니다.

  2. 마우스 오른쪽 버튼을 클릭하면 추가 메뉴가 활성화 됩니다.

  3. “복사(혹은 잘라내기)”를 클릭하면 선택된 줄이 클립보드에 복사됩니다.

  4. 상단 툴바의 “복사(혹은 잘라내기)” 버튼을 사용할 수도 있습니다.
    (단축키 : Ctrl + C, Ctrl + X)

  5. 붙여넣기를 진행할 줄을 마우스 왼쪽 버튼으로 선택합니다.

  6. 마우스 오른쪽 버튼을 클릭하면 추가 메뉴가 활성화 됩니다.

  7. “붙여넣기”를 클릭하면 클립보드에 복사된 내용이 붙여집니다.

  8. 상단 툴바의 “붙여넣기” 버튼을 사용할 수도 있습니다.

    (단축키 : Ctrl + V)

  9. 그림과 같이 복사한 코드가 삽입됩니다.

실행취소/다시실행

  1. 코드를 편집하던 중에 “실행취소”기능을 클릭하면 코드를 되돌릴 수 있습니다.

  2. 상단 툴바의 “실행취소”버튼을 클릭하면 이전 코드로 되돌릴 수 있습니다.
    (단축키 : Ctrl + Z)

  3. 상단 툴바의 “다시실행”버튼을 클릭하면 되돌린 코드를 다시 실행할 수 있습니다.
    (단축키 : Ctrl + Shift + Z)

프로그래밍2-명령어

R+ Task 2.0에서 사용하는 명령어를 설명하는 문서입니다.

카테고리를 클릭하면 해당하는 명령어에 대한 정보를 확인할 수 있습니다.

시작과 끝

프로그램의 기본적인 시작과 끝, 명령어의 유효 구간을 설정하는 명령어입니다.

자세한 설명은 하위 항목을 참고하세요.

프로그램 시작 (Start Program)

프로그램 끝 (End Program)

구간 시작/구간 끝 (Begin Block / End Block)

주석 (Comment)

실행문

장치에 명령을 내리거나 수학적인 계산을 수행하는 명령어입니다.

자세한 설명은 하위 항목을 참고하세요.

계산

로드

레이블/점프

조건문

조건절의 결과가 참이냐 거짓이냐에 따라 프로그램의 흐름을 분기하는 명령어입니다.

자세한 설명은 하위 항목을 참고하세요.

조건절이란?

== : 좌변과 우변이 같다.

!= : 좌변과 우변이 다르다.

: 좌변이 우변보다 크다.

= : 좌변이 우변보다 크거나 같다.

< : 좌변이 우변보다 작다.

<= : 좌변이 우변보다 작거나 같다.

만약 (If)

아니면 만약 (Else If)

아니면 (Else)

반복문

프로그램에서 여러 번 반복적인 수행이 필요한 경우 사용하는 명령어입니다. 반복 구간과 반복 조건을 설정하여 다양한 방법으로 반복을 설정할 수 있습니다.

자세한 설명은 하위 항목을 참고하세요.

무조건 반복 (Endless Loop)

조건 반복 (Loop While)

횟수 반복(Loop For)

조건 대기 (Wait While)

반복 끝내기 (Break Loop)

함수 : 서브-루틴 (Function : Sub-Routine)

동일한 코드가 반복되거나 특정 코드 영역을 역할 단위로 구분하여 표기하고 싶을 경우, 그 내용을 하나의 덩어리로 묶을 수 있으며 이를 함수라고 부릅니다.

자세한 설명은 하위 항목을 참고하세요.

함수/호출 (Function/Call)

복귀 (Return)

콜백 (Callback)

프로그래밍3-파라미터

R+ Task 2.0에서 사용하는 파라미터를 설명합니다. 각 장치에 따라 사용할 수 있는 파라미터를 분류하여 설명합니다. 자세한 사용법은 각 항목의 설명과 예제 코드를 참고하세요.

제어기 장치

1. 주변 장치 [감속모터]

2. 주변 장치 [서보모터 동작모드 / 서보모터 속도 / 서보모터 위치]

3. 주변 장치 [LED 모듈]

4. 주변 장치 [여러 가지 센서 류]

5. 모션 제어 [모션 호출 번호 / 모션 상태 / 관절 오프셋 / 관절 LED 자동 켜기]

6. 내장 센서1 [최종 소리감지 횟수 / 실시간 소리감지 횟수]

7. 내장 센서2 [왼쪽 적외선 센서 / 중앙 적외선 센서 / 오른쪽 적외선 센서]

8. 내장 센서3 [시작 버튼 눌림 횟수 / 제어기 버튼]

9. 버저 [버저 종류 / 버저 울림 시간]

10. 리모컨 [받은 무선 데이터, 보낼 무선 데이터 / 무선 ID / RC-100채널]

11. 타이머 [타이머 / 정밀 타이머 / 자동꺼짐 타이머]

설정값 OpenCM7.0의 타이머 시간 기타 제어기의 타이머 시간
0 60분 타이머 사용안함(배터리 방전에 주의)
1 ∼ 60 1 ∼ 60분 1 ∼ 60분
61 ∼ 254 60분 61 ∼254분
255 타이머 사용안함(배터리 방전에 주의) 255분

12. 기타 [임의의 숫자 / 내장 LED / 화면출력 / 화면출력 후 줄바꿈]

스마트 장치

제어기와 블루투스로 연결된 스마트 앱(R+ Smart, R+ IoT)의 컨트롤 테이블 값을 읽거나 쓰기 위한 파라미터 입니다. 자세한 정보는 스마트의 컨트롤 테이블을 참고하세요. R+ Smart

1. 카메라1 [카메라 선택 / 카메라 확대 / 카메라 센서 / 사진 촬영 / 동영상 촬영]

스마트 기기의 카메라 기능을 사용하기 위한 파라미터입니다.

(카메라 센서 모드의 자세한 사용법은 비전(Vision)을 참고하세요.)

2. 카메라2 [사진 촬영 / 동영상 촬영]

스마트 기기의 카메라 기능을 사용하기 위한 파라미터입니다.

3. 비전 [감지된 색상 / 라인 감지 영역 / 얼굴 감지 영역 / 동작 감지 영역]

스마트 기기의 카메라를 “카메라 센서”로 설정시 사용하는 파라미터입니다.

4. 표시1 [화면 회전 / 배경 표시 / 그림 표시 / 감지된 얼굴 그림 표시]

스마트 기기의 화면에 배경, 그림, 도형, 문자를 표시하기 위해 사용합니다.

5. 표시2 [도형 표시 / 문자 표시 / 숫자 표시]

스마트 기기의 화면에 배경, 그림, 도형, 문자를 표시하기 위해 사용합니다.

6. 멀티미디어 [문자음성 자동변환(TTS) / 악기 연주 / 오디오 / 볼륨 / 동영상 재생]

스마트 기기의 화면과 스피커를 사용하여 영상을 출력하거나, 소리를 출력하기 위해 사용합니다.

7. 센서1 [흔들림 센서 / 기울기 센서 / 조도 센서]

스마트 기기에 내장된 여러 가지 센서를 활용하기 위해 사용합니다.

8. 센서2 [자기장 센서 / 방향 센서 / 소음 센서]

스마트 기기에 내장된 여러 가지 센서를 활용하기 위해 사용합니다.

9. 센서3 [음성 인식 / 터치 위치 / 제스처 인식]

스마트 기기에 내장된 여러 가지 센서를 활용하기 위해 사용합니다.

10. 기타1 [디버그 정보 표시 / 화면 출력 / 화면 출력 후 줄바꿈]

스마트 기기의 부가 기능을 활용하기 위해 사용합니다.

11. 기타2 [스마트 타이머 / 진동 / 현재 시간 / 플래시 LED / 앱 실행하기]

스마트 기기의 부가 기능을 활용하기 위해 사용합니다.

12. 기타3 [SMS / 알림바 이벤트 / E-Mail 전송]

스마트 기기의 부가 기능을 활용하기 위해 사용합니다.

13. 직접 입력

다이나믹셀 장치

다이나믹셀 액추에이터의 컨트롤 테이블 값을 읽거나 쓰기 위한 파라미터 입니다. 자세한 정보는 다이나믹셀의 컨트롤 테이블을 참고하세요.

1. 다이나믹셀 엑추에이터

단계 Data 값 Data 대표 값
1 0 (0x00) ~ 3(0x03) 2 (0x02)
2 4(0x04) ~ 7(0x07) 4 (0x04)
3 8(0x08)~15(0x0F) 8 (0x08)
4 16(0x10)~31(0x1F) 16 (0x10)
5 32(0x20)~63(0x3F) 32 (0x20)
6 64(0x40)~127(0x7F) 64 (0x40)
7 128(0x80)~254(0xFE) 128 (0x80)

2. 적외선 센서 어레이

  검은색 감지 유무 LED
센서값 <= 기준값 해당 BIT 1 ON
센서값 > 기준값 해당 BIT 0 OFF
2 진수 값 10 진수 값 검은색 감지 유무
0000001 1 1번 적외선 센서에 검은 색 감지
0000010 2 2번 적외선 센서에 검은 색 감지
0000100 4 3번 적외선 센서에 검은 색 감지
0001000 8 4번 적외선 센서에 검은 색 감지
0010000 16 5번 적외선 센서에 검은 색 감지
0100000 32 6번 적외선 센서에 검은 색 감지
1000000 64 7번 적외선 센서에 검은 색 감지

아래 그림과 같이 그림을 보며 값을 체크할 수 있습니다.

3. 직접 입력

공통

모든 장치에서 사용할 수 있는 기본적인 변수와 상수 입니다.

1. 변수

2. 숫자(10진수)

3. 참/거짓 (True / False)

4. 2진수 숫자

유용한 정보

변수 & 함수 참조 찾기

변수 & 함수가 사용된 지점을 찾아가는 기능입니다. 각 변수 & 함수의 이름변경 기능을 제공합니다.

  1. 우측의 “변수(또는 함수)”버튼을 클릭합니다. (변수 또는 함수가 반드시 하나 이상 존재해야 합니다.)

  2. “변수 목록(또는 함수 목록)”에서 참조 찾기를 진행할 대상을 선택합니다.

  3. 해당 변수(또는 함수)가 사용된 위치를 “참조 결과”에서 확인할 수 있습니다.

  4. “참조 결과”에서 항목을 선택하면 위치를 찾아갈 수 있습니다.

  5. 상단에 “이름 변경”버튼을 클릭하면 해당 변수(함수)의 이름을 일괄적으로 변경할 수 있습니다.

키워드 찾기

프로그램 코드에서 사용한 요소를 검색하는 기능입니다.

  1. 우측 하단의 찾기 버튼을 클릭하세요.

  2. 상단에 검색어를 입력하세요.

  3. 태스크 코드에서 “찾기 결과”가 하단에 목록으로 표시됩니다.

  4. 목록의 아이템을 클릭하면 해당 줄로 이동합니다.

문법 검사 및 컴파일 결과 확인하기

태스크 코드를 제어기에 다운로드하기 위해서는 문법 검사 및 컴파일 과정을 거쳐야 합니다. 제어기에 다운로드를 시도하거나 “오류”버튼을 클릭하면 문법 검사 및 컴파일이 자동으로 수행됩니다.

문법 검사 : 태스크 코드에서 사용한 명령어가 제어기에서 호환된 명령어인지, 문법에 오류가 있는지를 검사하는 과정입니다. 반드시 모든 오류를 수정해야 다음과정이 진행됩니다.

컴파일 : 문법 검사가 올바르게 이루어진 코드를 제어기가 해석 가능한 기계어로 변환하는 과정입니다. 컴파일 과정에서 변수 개수, 콜백 사용량, 메모리 사용량을 검사하게 됩니다.

FAQ

  1. 지원 가능한 제품 군은?

ROBOTIS DREAM ROBOTIS STEM ROBOTIS GP ROBOTIS IoT 그 외 CM-150, CM-200, CM-510, CM-530, CM-700, OpenCM9.04C, OpenCM7.0을 사용하여 만든 사용자 로봇

  1. 기존 태스크 1.0에서 사용하던 TSK파일을 태스크 2.0에서 사용할 수 있나요?

사용할 수 있습니다. 단, 기존 TSK파일을 태스크2.0으로 불러와 다시 저장할 경우 태스크 1.0에서 더 이상 사용할 수 없습니다.

  1. 태스크 다운로드 후 제어기가 종료되지 않습니다. 어떻게 해야 하나요?

R+ Task 2.0에서는 태스크를 다운로드 후 태스크가 실행됩니다. (해당 제어기 : CM-150, OpenCM9.04, OpenCM7.0…)

  1. R+ Task 2.0에서 블루투스 모듈을 사용할 수 있나요?

제어기마다 지원하는 블루투스 모듈이 다르므로 각 블루투스 모듈의 사양서를 참고하세요. BT-110, BT-210, BT-410

  1. 제어기가 잘 연결되지 않습니다. 어떻게 해야 하나요?

제어기를 껐다 켠 후 다시 시도해보세요. 문제가 지속된다면 제어기의 펌웨어를 최신 버전으로 업데이트하세요. 제어기펌웨어 업데이트

  1. 도움말 애니메이션을 더 이상 보고 싶지 않습니다. 어떻게 해야 하나요?

홈 탭 -> 설정 메뉴로 이동하여 “도움말 애니메이션”을 비활성화하면 더 이상 도움말 애니메이션이 나타나지 않습니다.