DOI QR코드

DOI QR Code

Design and Implementation of an Android Application for Real-time Motion Control

실시간 정밀 모션 제어를 위한 안드로이드 응용 설계 및 구현

  • 김도현 (숭실대학교 정보통신공학과) ;
  • 강형석 (숭실대학교 정보통신공학과) ;
  • 강정남 (숭실대학교 융합소프트웨어학과) ;
  • 이은규 (숭실대학교 정보통신공학과) ;
  • 김강희 (숭실대학교 정보통신전자공학부)
  • Received : 2014.11.18
  • Accepted : 2015.02.12
  • Published : 2015.04.15

Abstract

This paper addresses the design and implementation of an Android application for real-time precise motion control. To provide stable real-time performance, we implemented the application in two parts: Android service in the form of a daemon process, which periodically transfers a set of position commands for all motors through a real-time fieldbus, and Android UI application, which generates and delivers the set of position commands to the Android service. To support such a real-time motion control application, we use multi-core partitioning, which partitions the processor cores into a real-time partition to be used by the real-time motion control service and a non-real-time partition to be used by the Android application, and set up a shared buffer between them for communication. Our experiments show that we can obtain a motion control period of 2 ms with 99% task activation jitters less than ${\pm}55{\mu}s$ for a configuration where each of the four threads controls two motors in a group.

본 논문은 실시간 정밀 모션 제어를 위한 안드로이드 응용의 설계와 구현을 다룬다. 안정적인 실시간 성능을 제공하기 위해서 다축 모터들이 특정 모션을 만들어낼 수 있도록 실시간 필드버스에 주기적으로 좌표 벡터 명령을 전달하고 그에 대한 피드백을 받는 모션 제어부를 데몬 프로세스 형태의 안드로이드 서비스로 구현하고, 이 모션 제어 서비스에 모션의 좌표 벡터들을 생성하여 전달하는 모션 계획부를 안드로이드 UI 응용으로 구현하였다. 이러한 소프트웨어 구성을 지원하기 위해서 멀티코어 프로세서를 모션 제어 서비스의 실행을 전담하는 실시간 코어들과 UI 응용의 실행을 전담하는 비실시간 코어로 나누었으며, 모션 제어 서비스와 응용 사이의 통신을 공유 메모리 형태로 구현하였다. 성능 측정 결과, 8축 모터들을 2개씩 그룹지어 4개의 쓰레드로 제어하는 경우에도 태스크 활성화 지터의 99%를 ${\pm}55{\mu}s$ 미만으로 유지하면서, 모션 제어 주기를 2ms까지 달성할 수 있었다.

Keywords

Acknowledgement

Supported by : 한국연구재단

References

  1. RTSJ, [Online]. Available: http://www.rtsj.org/docs/docs.html
  2. S. Rostedt and D. V. Hart, "Internals of the RT Patch," Proc. of the Real-Time Systems Symposium, Vol. 2, pp. 161-172, 2007.
  3. A. Douillet and G. R. Gao, "Software-pipelining on Multi-core Architectures," Proc. of the International Conference on Parallel Architecture and Compilation Techniques, pp. 39-48, 2007.
  4. H. Wei, J. Yu, H. Yu, M. Qin, and G. R. Gao, "Software Pipelining for Stream Programs on Resource Constrained Multicore Architectures," IEEE Trans. Parallel and Distributed Systems, Vol. 23, No. 12, pp. 2338-2350, 2012. https://doi.org/10.1109/TPDS.2012.41
  5. Y.-S. Chiu, C.-S. Shih, and S.-H. Hung, "Pipeline Schedule Synthesis for Real-Time Streaming Tasks with Inter/Intra-instance Precedence Constraints," Proc. of the conference of Design, Automation, and Test in Europe, pp. 1-6, 2011.
  6. A. Canedo, L. Dalloro, and H. Ludwig, "Pipelining for Cyclic Control Systems," Proc. of the International Conference on Hybrid Systems: Computation and Control, pp. 223-232, 2013.
  7. A. Canedo, H. Ludwig, and M. A. A. Faruque, "High Communication Throughput and Low Scan Cycle Time with Multi-/Many-Core Programmable Logic Controllers," IEEE Embedded Systems Letters, DOI 10.1109/LES.2014.2299731, 2014.
  8. EtherCAT, [Online]. Available: http://www.ethercat.org/en/technology.html