사물 인터넷 기술
센서 또는 다른 유형의 데이터 소스에서 데이터 분석을 수행한 적이 있다면 데이터를 수집하고 데이터를 변환한 다음 MATLAB을 사용하여 데이터를 처리 및 분석하는 프로세스를 따랐을 가능성이 큽니다. MATLAB을 사용하여 데이터를 분석하는 것은 해당 작업을 수행하는 매우 잘 알려진 도구입니다. MATLAB에서 사용할 수 있도록 데이터를 수집하고 변환하는 것은 엄청난 시간이 소요될 수 있습니다. MathWorks에서 완료한 통합 덕분에 이제 DDS에서 게시 및 구독 중인 라이브 데이터와 MATLAB을 쉽게 연결할 수 있습니다. MATLAB이 데이터 분석에 사용되는 최고의 도구 중 하나이고 DDS가 IIoT 애플리케이션의 데이터 통신 미들웨어로 빠르게 자리잡으면서 이 통합을 통해 개발자를 위한 매우 빠른 프로토타이핑 및 테스트 분석이 가능해집니다. 이 블로그 게시물에서는 DDS 데이터를 게시하는 방법과 MATLAB을 사용하여 DDS 데이터를 구독하는 방법에 대한 몇 가지 예를 살펴봅니다.
시작하려면 MATLAB과 RTI Connext DDS가 모두 컴퓨터에 설치되어 있는지 확인해야 합니다. 이 예시 세트의 경우 다음 버전이 사용되었습니다.
<울>설치가 완료되면 이 링크의 비디오를 따라 설치를 완료하고 확인하십시오. 설치 비디오
모든 것이 설치되고 확인되면 MATLAB 내에서 DDS를 적절하게 설정하는 몇 가지 단계만 거치면 됩니다.
<울>MATLAB에서 데이터 유형을 가져오는 것은 간단합니다. DDS에서 데이터 유형은 IDL 파일을 사용하여 지정됩니다. MATLAB import 문은 IDL 파일을 직접 읽을 수 있으며 MATLAB 인터프리터 내에서 해당 데이터 유형으로 작업하는 데 필요한 ".m" 파일을 생성합니다. 다음 MATLAB 호출은 현재 작업 디렉토리에 있는 ShapeType.idl 파일에서 "ShapeType"이라는 데이터 유형을 가져옵니다.
>> DDS.import('ShapeType.idl','matlab','f')
이제 DDS에서 주제의 DataReader 및 DataWriter를 생성할 때 데이터 유형을 사용할 수 있습니다. 또한 가져오기가 완료되면 나중에 이 단계를 더 이상 실행할 필요가 없습니다. 이 유형은 앞으로 MATLAB에서 사용할 수 있습니다. DDS 검색을 진행하기 위해 다음으로 해야 할 일은 DDS 도메인 참가자를 만드는 것입니다. 이 호출에서 수행할 수 있습니다.
>> dp =DDS.Domain참가자;
이 dp(DomainParticipant) 개체를 사용하여 DataWriter 및 DataReader 개체를 모두 만들 수 있습니다. 다음 두 명령은 datawriter 개체와 datareader 개체를 dp에 추가하여 해당 유형을 새로 생성된 "ShapeType"으로 지정하고 해당 항목을 "Triangle" 및 "Square"로 각각 지정합니다.
>> dp.addWriter('ShapeType','Triangle')>> dp.addReader('ShapeType','Square')
ShapeType은 RTI에서 제공하는 표준 RTI Shapes Demonstration 애플리케이션(Shapes)과 통신하기 위해 사용됩니다. Shapes를 사용하면 "ShapeType" 데이터 유형을 기반으로 하는 "Square", "Circle" 및 "Triangle" 항목의 DataWriter 및 DataReader를 모두 만들 수 있습니다. Shapes 응용 프로그램을 사용하는 방법에 대한 자세한 내용을 보려면 여기를 클릭하여 비디오 자습서를 보십시오.
Shapes에서 다음 단계는 Triangle의 구독자를 만드는 것입니다. 다음 화면에서 다른 모든 QoS 옵션은 기본값으로 두십시오.
이제 삼각형 주제에 대한 ShapeType을 보내기 위한 DataWriter 설정이 있고 출판물을 수신하기 위한 Shape Demo 설정이 있으므로 작성기를 연습해 보겠습니다. 다음 명령은 ShapeType의 필드를 채운 다음 삼각형 주제에 대한 데이터를 게시합니다.
%% ShapeTypemyData =ShapeType;myData.x =int32(75);myData.y =int32(100);myData.shapesize =int32(50);myData.color ='GREEN';%%의 인스턴스를 만듭니다. DDSdp.write(myData)에 데이터 쓰기;
모양 데모 내의 삼각형 주제에 대한 결과는 여기에 표시된 단일 녹색 삼각형이 됩니다.
MATLAB 내에서 Triangle을 게시하는 몇 가지 흥미로운 사용 사례는 다음과 같습니다.
%% i=1:10 myData.x =int32(20 + 10*i); myData.y =int32(40 + 10*i); dp.write(myData); pause(1);end%% i=1:1000 angle =10*pi * (i/200)에 대해 20Hz에서 원 패턴으로 녹색 삼각형을 게시합니다. myData.x =int32(100 + (50 * cos(각도))); myData.y =int32(100 + (50 * sin(각도))); myData.shapesize =int32(40); myData.color ='녹색'; dp.write(myData); 일시 중지(0.05);종료
Shapes Demo의 결과 출력은 각각 다음과 같습니다.
모양 데모에서 Square의 게시자를 만듭니다. 다음 화면에서 색상을 선택하고 다른 모든 QoS 옵션은 기본값으로 둡니다. 다음 스크린샷은 Square Publish 화면을 보여줍니다. 시연을 위해 저는 주황색 사각형을 선택했습니다. 이렇게 하면 30msec마다 화면에 X,Y 위치가 게시됩니다.
MATLAB의 Domain Participant에 Square Topic DataReader를 추가했던 것을 기억한다면. 이 DataReader를 사용하여 현재 모양 데모에서 게시 중인 데이터를 구독합니다. MATLAB의 다음 명령은 1Hz에서 10개의 샘플을 읽습니다.
%% 읽기 데이터 for i=1:10 dp.read() pause(1);end
MATLAB의 결과 출력은 다음에 대한 10개의 보고서가 됩니다.
이제 양방향으로 진행되었으므로 데이터를 사용하여 보다 창의적인 작업을 수행해 보겠습니다. 먼저 Square 데이터를 읽고 X 및 Y 좌표를 전환하도록 수정한 다음 RED Triangle에 다시 게시합니다. 두 번째로 결과 위치 데이터를 가져와 MATLAB 내에서 직접 플로팅합니다. 다음은 이를 수행하기 위해 MATLAB에서 사용하는 명령입니다.
%% 100개 요소의 배열을 할당합니다.xArray =zeros(1,100);%% 루프를 실행하여 데이터를 수집하고 배열에 저장%% 또한 X 및 Y 좌표를 전환한 다음 삼각형 주제를 %%에 다시 게시합니다. i=1:100 [myData, 상태] =dp.read(); if ~isempty(myData) x =myData(1).x; y =myData(1).y; xArray(i) =x; y배열(i) =y; myData(1).y =x; myData(1).x =y; myData(1).color ='빨간색'; dp.write(myData(1)); end pause(0.05)end%% X 위치 데이터 그리기t =1:100;plot(t,xArray);legend('xPos');xlabel('Time'), ylabel('Position');title('X 위치');
Shapes Demo의 결과 출력은 주황색 사각형의 반대 방향으로 움직이는 빨간색 삼각형이 될 것이며 X 위치 데이터를 표시하는 플롯도 MATLAB 내에서 생성됩니다.
보시다시피 DDS와 MATLAB의 통합은 사용이 매우 간편하며 데이터 수집, 데이터 주입 및 분석을 매우 쉽게 만듭니다. 이 데모에서는 간단한 Shapes 응용 프로그램을 사용했지만 사용된 데이터는 자신의 응용 프로그램 데이터만큼 쉽게 사용할 수 있습니다. RTI Connext DDS와 MATLAB 통합에 대해 자세히 알아보려면 MathWorks 사이트의 MATLAB DDS 통합 사이트를 방문하십시오. Connext DDS 사용에 대해 자세히 알아보려면 여기를 클릭하여 개발자 리소스에 액세스하세요.
사물 인터넷 기술
단순한 것부터 엄청나게 복잡한 것까지, 엣지 인텔리전스는 IoT 프로젝트의 성공을 위한 동맹입니다. 디지털 혁신이 모든 산업을 휩쓸고 있으며 조직에서 운영 전반에 걸쳐 오디오, 비디오 및 진동 센서를 설치하도록 촉구하고 있습니다. 그러나 IoT 프로젝트의 30%가 개념 증명 단계에서 실패한다는 점을 감안할 때 대규모 IoT 배포에 돈을 투자할 때는 신중해야 합니다. IoT 실패의 주요 원인 중 하나는 조직이 모든 장치에서 생성하는 데이터의 쓰나미에 거의 대비하지 않는다는 것입니다. 데이터의 양은 인력은 물론 대기 시간과 중앙
IoT는 단순히 장치를 연결하는 것 이상입니다. IoT를 최대한 활용하면 조직에서 실험에 그치지 않고 비즈니스 결과를 실현하는 데 도움이 될 수 있습니다. 장치 제조업체의 엔지니어가 원격 센서 피드백을 통해 현장에서 장치 중 하나에 장애가 발생했음을 자동으로 알릴 수 있다면 어떨까요? 그리고 동일한 엔지니어가 제조 라인이 구축될 때 결함이 있는 장치의 테스트 데이터에 즉시 연결할 수 있다면 어떻게 될까요? 이것은 어떤 귀중한 통찰력을 드러낼 수 있습니까? 엔지니어가 장치의 전체 수명 주기에서 현장 데이터에 액세스하고 다른 기록