이번 프로젝트는 회사에서 진행한 프로젝트이다.

소비자가 대시보드상에서 로봇의 현재상태를 확인하기 위한 트래킹맵을 제공하기 위함이다.

 

 

 

 

 

[ 프로젝트 소개 ]

 

실제로 전국의 여러 저수지나 강에서 운행중인 수질로봇의 데이터를 받아서 트래킹맵을 그리는 프로젝트이다.

그리고 다양한 코스추가,삭제,보여주기 등 다양한 제어 기능들을 위한 서버코드도 구현한다.

 

예를들어, 대시보드의 위성구글맵에 점을 찍으면 해당 트랙을 저장하고 그 트랙대로 움직이도록 로봇에게 전달하는 기능 등등..

 

 

 

 

 

[ 기능 구현 ]

 

그라파나 대시보드 상에서 구글 위성맵에 로봇의 실시간 현재위치를 노랑점으로 찍어주고, 실시간 위치와 더불어 최근 30분간의 경로를 계속 업데이트하며 보여준다. 그리고 특정 날짜를 입력하면 해당 날짜에 로봇이 움직였던 모든 경로를 보여준다.

소비자는 새로고침하지 않아도 실시간으로 로봇의 현재위치, 최근경로, 원하는 날짜의 모든 경로를 조회하여 볼 수 있다.

 

 

 

 

 

 

[ 파이프라인 ]

 

1. 특정지역 로봇pc의 스크립트로부터 현재 로봇의 GPS데이터를 Rabbit MQ로 MQTT메시지 형태로 보낸다.

2. 토픽들을 구독한 후, 내 서버스크립트와 html에서 웹소캣으로 해당 토픽에 따른 원하는 메시지들을 받아온다.

3. 받은 gps데이터를 통해 html에서는 실시간 위치표시 등 다양한 기능을 구현한다.

4. 받은 gps데이터를 통해 서버스크립트에서는 몽고DB와 PSQL에 경로들을 저장한다.

5. 그리고 추가 기능을 대시보드에 보여주고싶을 때, html에서 api로 서버스크립트로부터 연결된 PSQL,몽고DB의 데이터들을 가져와 사용한다.

6. 그리고 대시보드상에서 수정한 코스추가,삭제 등의 다양한 수정사항을 로봇에게 보내기 위해 서버스크립트로부터 -> RabbitMQMQTT -> 로봇pc로 보낸다.

 

 

 

 

 

 

[ 프로젝트 개요 ]

 

나의 전체 개발과정을 압축하여 총 3단계로 구성하였다.

점점 기능들을 개선한 과정을 담아보았다.

 

 

1단계 : 서버코드1  +  위성맵,현재위치 표시 HTML 

2단계 : 서버코드2 + 최근 20분간의 경로만 표시, 지속적인 업데이트 HTML

3단계(최종) : 서버코드3 + 특정날짜조회 : 그 날짜의 모든 로봇경로를 맵에 표시 HTML

 

 

 

다음 포스트에서는 본격적인 1단계부터 진행한다.

 

 

 

 

+ Recent posts