Demonstrator GUI


GUI 데모 프로그램을 통해 로봇의 각종 파라미터를 설정하고 제어기를 튜닝할 수 있습니다.


Demonstrator GUI를 통해 다음과 같은 작업을 수행할 수 있습니다.

  • 엔코더, 회전 방향, 로봇 플랫폼 설정
  • 속도제어 PID게인 튜닝
  • 각종 속도 제어              

              - 휠 속도 제어 cDIFFV

              - 휠 RPM 제어 cRPM

              - 로봇 속도/회전속도 제어 cVW

              - 로복 이동거리 제어 cMOVE


  • IMU 센서값 확인 및 캘리브레이션 수행
  • 전류보호 설정 및 해제
  • RGB LED 및 Headlight LED 제어


프로그램이 업데이트 될 경우, 기존 유저 분들께서는 프로그램 삭제 후 펌웨어 업데이트를 해주셔야 사용 가능합니다. 기능이 추가 될 경우 매뉴얼도 함께 업데이트 될 수 있으니 참고하시기 바랍니다.


  • USB 시리얼 케이블을 사용해 PC와 직접 연결하고 제어할 수 있습니다. 


[R1mini Demonstrator (로봇 제어 프로그램) 설치 ]


  • R1mini Demonstrator 설치
  •  : https://drive.google.com/file/d/1ucm5fKN5AjbrXrtznzIc9u4UQl1yvR-Z/view?usp=sharing 2021-6-25
  • 현재 최신 버전: V1.0.0.2  


  •  위의 프로그램을 다운 받고 실행시키면 위와 같은 경고 창이 뜨는데, 추가 정보를 클릭하여 실행 버튼을 누릅니다.


  •  그러면 아래와 같은 설치 화면이 뜹니다.


  •  실행 권한을 허용한 후, 설치 과정이 끝난 후 닫기 버튼을 누릅니다. 


  • 이제 설치 된 프로그램을 확인합니다.


[R1-mini와 PC 연결 ]


  • 시리얼 케이블의 외형은 예고없이 변경될 수 있습니다. 단 커넥터 사양과 단자는 동일합니다.  
  • 커넥터의 연결 방향에 주의하십시오. 잘못된 연결로 인한 제품 파손 및 손해는 제조사에서 보상하지 않습니다. 


  • 아래 이미지에 보이는 케이블에서 우측의 4핀 부분을 로봇의 PCB 보드에서 대응되는 부분을 찾아 꽂아줍니다.


  • 아래와 같은 초기 케이블 사용자 분들 케이블과 USB가 분리되었을 경우, 방향을 잘 보고 꽂아야 합니다. 

               - 검 : GND / 빨 : RXD / 흰 : TXD

               - 까만 커넥터의 한 면이 완전히 막히지 않은 쪽을 아래 이미지와 같은 방향으로 꽂아주세요. 

               - 일체형 케이블 사용자의 경우, 그대로 꽂으시면 됩니다.




[포트 번호 확인]


  • 장치 관리자의 포트 항목에서 연결된 포트 번호를 확인합니다. 


  • : 아래 이미지에선 COM5에 연결되었네요


  • 본 매뉴얼을 작성하던 시점(2020년 12월 말)에 R1mini의 펌웨어 버전은 r1m_r9_01_03입니다.
  • 그리고 R1mini에서는 명령에 대해 응답이 필요할 때 전송되는 데이터는 항상 기호 #이 붙어서 시작합니다.


  • 모터 회전당 엔코더 펄스 수 확인 - ENCNT

                                   $qFIRMV                              


현재 설정된 모터 1회전당 엔코더의펄스 수를 확인할 수 있습니다. 이 설정은 sENCNT 명령으로 다른 값을 인가할 수 있지만, 모터의엔코더 종류가 변하는 것이 아니라면 이 설정을 변경하는 것은 권장하지 않습니다.


실행 결과는 아래와 같이R1mini의 현재 엔코더 설정은 모터 기준 한 회전당 44펄스 입니다.


                                   $qENCNT                              

                                   #ENCNT ,44                          



  • 로봇 바퀴와 바퀴 사이의 거리 - TRACK
  • 로봇의 이동 거리와 방에 따라 계산하는 로봇 Odometry 정보를 알기 위해서는 위 그림에 표시된 바퀴 간 접지 중점의 거리가 필요합니다. 

                                   $qTRACK                               

                                  #TRACK , 170.9                     


  • 위와 같이 q를 붙여서 $qTRACK라고 명령을 전송하면 #이 붙어서 TRACK은 170mm라고 응답이 오는 것을 확인할 수 있습니다.
  • 로봇 기어비 확인 - GEAR
  • 보통 모터는 기어와 함께 장착됩니다. R1mini의 기어비를 확인하는 명령은 GEAR입니다.

                                   $qGEAR                                 

                                  #GEAR , 21.3                          


  •  $qGEAR라는 명령으로 확인한 기어비는 21.3입니다. 
  • 그러므로 모터 1회전당 44펄스가 나타나니, 바퀴 기준으로 보면 44*21.3으로 937.2펄스가 한 바퀴당 엔코더에서 나오는 펄스입니다.   
  • 바퀴 지름 확인 - WHLD
  • 로봇의 이동 거리를 모터에 장착된 엔코더에서 나오는 펄스의 숫자로 확인하고자 한다면 바퀴의 지름이 필요합니다.
  • R1mini에서 바퀴의 지름을 확인하는 명령은 WHLD입니다.

                                   $qWHLD                                

                                  #WHLD , 67.5                         


  •  위 명령의 결과를 보면 R1mini의 바퀴 지름은 67.5mm


[로봇 상태]


  • 배터리 확인 - BAT

                                   $qBAT                                     

                                  #BAT , 127 , 100, 5                 


  • 로봇의 배터리 상태를 확인하는 명령은  BAT입니다. 위 코드와 그림처럼 $qBAT라는 명령을 시리얼 통신으로 보내면  #BAT,volt,SOC,current로 응답이 옵니다. 
  • qBAT에 대한 응답인 #BAT의 각 인자의 의미는 아래와 같습니다.          
                 
    volt : V 단위에 10을 곱한 값입니다. 위 그림의 예시에 따르면 127은 12.7Volt입니다. 

                            SOC : State Of Charge로 충전 상태로 위 그림의 예시에서는 100% 충전입니다. 

                            current : mA 단위입니다. 위 그림의 예시에서는 5mA로 0.005A입니다.


  • 로봇 LED 깜빡임 - BREATH

깜빡임 주기 확인하기

  • 위 그림에 보이는 정면의 OMO라는 글자와 뒷 쪽의 LED는 같은 색상으로 같은 주기로 깜빡거립니다. 이 LED의 깜빡임 주기를 확인할 수 있는 명령입니다. 

                                   $qBREATH                                        

                                  #BREATH , 500 , 100 , 50               


  •  위 코드처럼 $qBREATH라고 명령을 보내면 현재 설정된  값이 보입니다. 
  • 여러분들의 로봇은 위 그림과 코드의 결과와 다른 색상이나 깜빡임을 가질 수 있습니다. 
  • BREATH의 각 인자는 아래와 같습니다. 

                  첫 번째 전체 주기 ms : ON/OFF를 합친 전체 주기를 설정합니다.

                  두 번째 ON 시간 ms : LED가 On되는 시간을 설정합니다.

                  세 번째 OFF 시간 ms : LED가 Off 되는 시간을 설정합니다.


  • 위 예시에 따르면 500ms의 시간 동안 100ms의 on 시간과 50ms의 off 시간을 가지고 깜빡거리는 것입니다. 
  • 여기서 100ms와 50ms를 더해서 500ms가 되지 않는 상황이 의문일 수 있지만, 완전 off되는 시간이 50ms이고 그 사이는 부드럽게 꺼지도록 하는 시간으로 채워집니다. 


깜빡임 주기 변경하기

  • 앞서 설명한 인자들을 이용해서, 5000ms의 주기에 500ms의 On 타임과 50ms의 Off 타임을 가지도록 설정하는 명령은 아래와 같습니다. 

                                   $cBREATH,5000,500,50                                  



[로봇 LED 구동]


  • 현재 LED 설정 값 확인하기

                                   $cCOLOR,0,0,255                                             


  • 위 코드와 같이 제어 명령을 의미하는 c를 붙여서 cCOLOR 명령으로 완전 파란색인 0,0,255를 명령으로 지정합니다. 
  • 그러면 아래 그림처럼 전방 LED와 보드 뒷 편에 있는 LED가 모두 0,0,255의 색상 값인 BLUE로 변경됩니다.  


  • LED 설정 값 저장하기
  • 그러면 아래 그림처럼 전방 LED와 보드 뒷 편에 있는 LED가 모두 0,0,255의 색상 값인 BLUE로 변경됩니다. 

                                   $sCOLOR,200,0,50                                         


  • 위와 같이 명령을 주면 현재 LED의 설정도 변경되고 전원을 끊었다가 다시 기동해도 LED의 설정이 변경되지 않습니다. 
  • 명령 앞에 prefix로 's'를 붙일 수 있는 옵션은 이렇게 전원 여부와 관계없이 저장할 수 있는 명령입니다.