초보자를 위한 NT-ARSv1 (Attitude Reference System)
* G.INS NT-ARSv1란?
G.INS의 G는 관성항법장치에서 중요한 요소인 Gravity를 의미하기도 하며, 사용자에게 좀 더 나은 결과값을 제시하기 위해 Genius한 제품을 만들기 위한 저희의 의지를 의미하기도 합니다.
또한 G.INS의 INS는 관성항법장치(Inertial Navigation System)을 의미하는데, 관성항법장치는 엔코더와 같이 고정점이 있어야만 상대각도를 측정할 수 있는 자신의 자세를 측정하기 위한 필수 장비입니다.
이번에 저희 ㈜엔티렉스는 G.INS 제품군의 첫 제품으로 NT-ARSv1을 출시하게 되었습니다.
* NT-ARSv1(Attitude Reference System)란?
자이로센서와 가속도센서를 융합하여 각도를 추정할때, 흔히 공간상의 3개 자세중에서, z축 중심의 회전인 yaw를 제외하고, pitch와 roll을 측정하는 장비를 ARS라고 합니다.
ARS를 만들기 위해서는 3축 가속도 센서와 2축 자이로센서에 추가로 자이로의 온도특성을 보정하기 위한 온도센서,3개의 센서를 융합하고 필터를 설계하기 위한 MCU가 포함됩니다. 만약, Yaw까지 측정한다면, 흔히 AHRS라고 부릅니다.
ARS(Attitude Reference System)는 관성항법장치들 중에서 직행방향과 측면방향을 중심으로 회전하는 각도(Roll,Pitch)를 의미합니다.
저희 NT-ARSv1은 32 비트 ARM Cortex-M3 마이크로프로세서를 탑재하여 3축 가속도센서, 2축 자이로센서의 데이터를 사용하여 6개의 3차원 자세정보(X, Y, Z, ROLL, PITCH, YAW) 중 ROLL 과 PITCH의 각을 구하는 ARS 모듈로써, Roll과 Pitch의 각도와 각속도를 사용자에게 RS232나 CAN통신으로 라디안(radian) 단위로 출력해 주도록 설계되어 있습니다.
저희 NT-ARSv1은
-. 소형 항공기의 자세측정이나
-. 로봇의 특정 지점의 절대각도
-. 세그웨이와 같은 밸런싱로봇의 자세측정
등에 활용할 수 있습니다.
* NT – ARSv1 제품 특징
NT-ARSv1은 RS232통신과 CAN통신이 지원됩니다.
흔히 쓰이는 RS232통신을 사용하여 사용자가 쉽게 접근할 수 있고, 장거리 멀티 통신인 CAN(Control Area Network)을 인터페이스로 사용함으로 주 메인 컨트롤러보드에서의 장착을 벗어나, 로봇의 중심에서 정확한 각도를 검출하여 사용자에게 알려줄 것입니다.
NT-ARSv1은 센서 특성에 따라 오차가 발생하는 것을 줄이기 위해, 출하 단계 에서 모든 Calibration을 마치고 출고합니다.
따라서, 처음 전원 인가 시 Booting 시간을 제외하고 별도의 대기 상태가 필요 없습니다.
또한 사용자가 편의에 따라 Calibration을 할 수 있도록 Software 명령어를 준비해 두었습니다.
NT-ARSv1은 1.6T의 알루미늄 케이스 타입으로 소형화 하여 제작하였기 때문에, 큰 충격에서도 제품을 보호할 수 있습니다.
* NT ARS Source Code
측정하기 위한 Form화면을 구성하였습니다.
* MSComm과 CommandButton 2개 TextBox 1개를 사용하였습니다.
MSComm : Rs232c통신을 하기 위한 컨트롤
CommandButton : Connect , Disconnect
TextBox : ARS변환 각도를 보여줌
* InputLen을 1로 주어 입력버퍼에서 8bit씩 받게끔 해주었습니다.
일반적인 통신 설정에서 9600 bps만 115,200 bps로 주었습니다.
1초당 115,200씩 전송된다는 의미 입니다.
따라서 14,400 byte 씩 전송이 되겠지요
* RThreshold는 이벤트가 발생되기 전에 수신할 문자의 개수를 설정하는 것인데
여기서는 0으로 주어도 상관없습니다.
Private Sub Command1_Click()
Dim FileName As String
MSComm1.CommPort = 3
MSComm1.Settings = “115200,n,8,1″
MSComm1.PortOpen = True
PC와 ARS를 연결
MSComm1을 115200 bps , Non Praity , 8bit , Stop bit 1
로 설정
FileName = InputBox(“저장할 파일명을 입력하세요.”)
If FileName = “” Then
If MSComm1.PortOpen = False Then
Exit Sub
End If
End If
만약 Port가 연결되지 않았다면 구동하지 않음
Open App.Path & “\” & FileName & “.txt” For Output As #1
Print #1, “ARS(Attitude Reference System) Pitch,Roll (각도)값의 변경에 따라 메모장.txt로 나타내기” & vbCrLf
MSComm1.Output = <CAH>
MSComm1에 각도값을 입력 , 각도값 : <CAH>
Command1.Enabled = True
Command2.Enabled = False
Exit Sub
End Sub
————————————————————
Private Sub Co
Command2_Click()
Close #1
If MSComm1.PortOpen = False Then
Exit Sub
End If
End Sub
Command2 버튼을 클릭할 경우 닫기
————————————————————
Private Sub MSComm1_OnComm()
If MSComm1.PortOpen = False Then
Exit Sub
End If
Static BUF As String
Static tmpBuf As String
tmpBuf = MSComm1.Input
정적변수로 선언한 tmpBuf를 MSComm1 수신버퍼로 선언
If tmpBuf = “<” Then
BUF = “”
End If
만약 tmpBuf = “<”라면 BUF 와 tmpBuf 문자열을 결합
BUF = BUF & tmpBuf
If tmpBuf = “>” Then
Text1.Text = Text1.Text & BUF & vbCrLf
만약 tmpBuf = “>”라면 Text1.Text에 Text1.Text 와
BUF , tmpBuf 문자열을 결합한 것을 대입
Print #1, BUF
End If
Text1.SelStart = Len(Text1.Text) + 1
End Sub
* PC 통신포트는 COM3, 통신 속도는 115200BPS , Non Parity, 8 Data Bit, 1 Stop Bit를 설정하였습니다.
* 결과