tizen multi docking station robot

42
1/41 Dokuzen 23-2th. Hong Jae Sub(PL) 22-2th. Jung Yu Seok 23-1th. Baek Seung Hoon 23-2th. Kim Dong Min N FC 활용한 T izen Multi docking Station R obot

Upload: others

Post on 17-Apr-2022

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tizen Multi docking Station Robot

1/41

Dokuzen

23-2th. Hong Jae Sub(PL)22-2th. Jung Yu Seok23-1th. Baek Seung Hoon23-2th. Kim Dong Min

NFC를 활용한

Tizen Multi docking Station Robot

Page 2: Tizen Multi docking Station Robot

2/41

Content

System Architecture

Members Role

Private Parts

Check List

Introduction

Demo & Q/A

Page 3: Tizen Multi docking Station Robot

3/41

Period

Introduction

Environment

- OS : Windows 7, Raspbian Linux

- Language : C, C++

- Tool : G++, VIM, Qt creator, Tizen IDE,

Visual studio 2012, IAR Workbench for ARM

- 2014.05 ~ 2014.08 (4 month)

- Library : Qt 4

- Kernel Version : 3.6.11+

- Devices : Raspberry pi, Tizen RD-PQ, ARM cotex-M3

Page 4: Tizen Multi docking Station Robot

4/41

Motive

스마트폰 악세서리의 활용성 증가

타이젠 플랫폼의 확장성

Page 5: Tizen Multi docking Station Robot

5/41

Architecture

Tizen

Smart Phone

Tizen Robot

Docking Station

Keyboard & Mouse Share

Wi-Fi Direct

USB Mount Sound Motion

Wi-Fi Direct

File & Sound transfer

File & Sound transfer

Page 6: Tizen Multi docking Station Robot

6/41

Members Role

23th Hong, jaesub (PL)

- Sharing Clipboard

- Create & Control Mouse, Kbd in Tizen

22th Jung, yuseok

- Design Robot docking station

- TFT LCD UI Implement at Reapberry

23th Baek, seunghoon

- RTP / RTSP Streaming

- MP3 Frame Analysis and Transport

23th Kim, dongmin

- Wi-Fi Direct & Network

- Packet design

Page 7: Tizen Multi docking Station Robot

7/41

23-2th. Hong, jaesub

Tizen App.

Page 8: Tizen Multi docking Station Robot

8/41

Tizen Platform

Page 9: Tizen Multi docking Station Robot

9/41

Ui App vs Service App

Page 10: Tizen Multi docking Station Robot

10/41

MessagePort

- IPC 와 유사한 개념

- Named Pipeline

Page 11: Tizen Multi docking Station Robot

11/41

Uinput & XTest

Page 12: Tizen Multi docking Station Robot

12/41

Catch Communication Event

Page 13: Tizen Multi docking Station Robot

13/41

Get Clipboard at Tizen

ref. https://bugs.tizen.org/jira/browse/TDIST-299

Page 14: Tizen Multi docking Station Robot

14/41

23-2th. Kim Dong Min

Network

Page 15: Tizen Multi docking Station Robot

15/41

WiFi-Direct

Page 16: Tizen Multi docking Station Robot

16/41

System architecture

USART

TCP UDP

TCP UDP

IPC

Page 17: Tizen Multi docking Station Robot

17/41

Server ,Client

Server

• Multi Thread• Usart• IPC• 파일입출력을 이용한 사용자관리• USB 파일 전송

• TCP(파일전송, 마우스클릭, Phone 이벤트, 클립보드, 로봇 모션, 사용자정보전송) • UDP(마우스 좌표)

• TCP(파일전송)

• TCP(마우스 클릭, 클립보드)

• UDP(마우스 좌표)

• Usart를 이용한 모션 패킷 전송 및 Arm에서발생한 이벤트 전송

• IPC• 발생한 이벤트에 맞는 화면 출력을 위한 패킷 전송

Page 18: Tizen Multi docking Station Robot

18/41

RTSP Streaming &

Extract MP3 Frame

23-1st SeungHoon Baek

Page 19: Tizen Multi docking Station Robot

19/41

MPEG-1 or MPEG-2 Audio Layer III

• Commonly referred to as MPEG-1 Audio Formatand loss original data

• AAU(Audio Access Unit), Audio Tag

• AAU consists of some format

Page 20: Tizen Multi docking Station Robot

20/41

MPEG-1 or MPEG-2 Audio Layer III

ID3v2(Tag)

MP3 data(AAU set)

Lyrics3v2(Tag)

ID3v1(Tag)

• Variable Length Tag• A lots of Frames

• A lots of Frames• 4-Bytes Header of each frame• Synchronized Bit

• End of Files 128 bytes• Encoding Error

Page 21: Tizen Multi docking Station Robot

21/41

MPEG-1 or MPEG-2 Audio Layer III

MP3 data(AAU set)

Header CRC SideInfoMain Data

(Audio Sampling Data)

• MPEG Audio Version ID• Layer(I, II, III)• Bit Rate(320Kbps)• Sampling rate(44100KHz)

• MPEG Audio Compress Algorithm

• Real Audio Data• Check Padding Bit• 1 frame = 1152 sampling data

Page 22: Tizen Multi docking Station Robot

22/41

MPEG-1 or MPEG-2 Audio Layer III

MP3 data(AAU set)

Header

11-bytes is Synchronization bit

Another Bit is AAU Information Data

Page 23: Tizen Multi docking Station Robot

23/41

How can I extract mp3 data for streaming?

현아 - 내일은없어.mp3

ExtractID3v2 Block

Find First AAU

Header

Find End AAU

Header

ExtractID3v1 Block

Sequence searching

ID3v2 Tag Area

First AAU Data(‘FF FE’ is Synchronized

bits)

Page 24: Tizen Multi docking Station Robot

24/41

How can I extract mp3 data for streaming?

AAU AAU AAU AAU AAU

Received AAU

Played AAU

Move Sequently

Not Received AAU

• Alsa Audio Frameworks• Output audio-jack using mplayer

Page 25: Tizen Multi docking Station Robot

25/41

How can I extract mp3 data for streaming?

MPAFileStream

-m_dwOffset : int-m_dwBufferSize : int-m_dwBufferDataSize : int-m_pBuffer : unsigned char *

+Read(unsigned char* pData, int dwOffset, int dwSize) : int()+FillBuffer(int dwOffset, int dwSize, bool bReverse) : bool()+SetPosition(int dwOffset) : void()

MPAFrame

+m_pHeader : MPAHeader *+m_pStream : MPAStream *

+GetFrameBuffer() : unsigned char *()+GetSubsequentHeaderOffset() : int()+CheckCRC() : bool()+IsLast() : bool()

MPAHeader

+CalcFrameSize() : int()+GetFrameMillisecond() : int()

MPAException

-m_bGetLastError : bool-m_szFunction : char[MAX]-m_szFile : char[MAX]

+GetErrorEscription() : char *()+ShowError() : void()

MPAFile

-m_pStream : MPAStream *+m_pFirstFrame : MPAFrame *

+GetBegin() : int()+GetEnd() : int()+GetFileSize() : int()+GetLengthSec() : int()+GetPlayTimeSec() : int()+GetTotalFrameCount() : int()

MPAStream

+m_szFile : char*

+ReadBytes(int dwSize, int dwOffset, bool bMoveOffset, bool bReverse) : unsigned char* ()

파일에 직접 접근하여 dwOffset + dwSize 만큼 데이터를 읽고 버퍼를 반환해 주는 역할을 수행

MPAStream 에서 읽어들인 MP3 데이터를 Buffering 해두는 역할 수행

AAU의 Header를 나타내는 클래스AAU를 나타내는 클래스, MP3 Frame Data를 주로 얻어오는 역할

MP3 File 자체를 나타내는 클래스, 시작과 끝 정보를 나타내고 분석의 시작을 수행하는 클래스

MPEG_AAU 분석 과정에서 발생하는 예외상황 메세지를 전달하기 위한 Exception Class

Page 26: Tizen Multi docking Station Robot

26/41

RTSP + RTP(Streaming Protocol)

Packet

Receiver

RTP

Packet

Audio

Data

Streaming

Client

Decoding

Audio Data

(MPEG-1 Audio)Play Audio

Network

Page 27: Tizen Multi docking Station Robot

27/41

RTSP + RTP(Streaming Protocol)

Server

Client

RTSP

(Real-time Streaming Protocol)

RTP

1. Control Streaming Data for real-time Transporting

2. RTSP don’t transport Streaming Data, Only controls Streaming Datas

Page 28: Tizen Multi docking Station Robot

28/41

RTSP + RTP(Streaming Protocol)

RTSPServer

-mListenSocket : RTSPSocket-mMP3Path : string

+StartServer : void()+CloseServer() : void()+setMP3Path(string path) : void()+getMP3Path() : string()

RTSPSocket

-mSocket : socket-mPortNumber : int

+Open() : bool()+Close() : bool()+Accept() : RTSPSocket *()+ReadData(char* _buffer, int _bufSize) : int()+WriteData(char* _buffer, int _bufSize) : int()

ThreadManager

-mAssignThread : vector<Thread *>

+RegisterThread( Thread* _pRegisterThread ) : void()+CloseAllThread() : void()+GetThread(FUNC&& _func, ARG& _arg) : Thread*()

RTSPContextLogic

+StartServices() : void()

Client

+mClientID : int+mCurrentContext : Context+mRTSPSocket : RTSPSocket *+mRTPSocket : RTPSocket+mRemoteIP : string+mRTPRemotePortNumber : int

ServerResources

IPacketBase<<virtual>>

+getPacket(Client& _client) : string()

PacketManager

-mPacketMap : map<string, shared_ptr<IPacketBase>>

+getPacket(string& _packetName) : shared_ptr<IPacketBase>()-CreatePacketMap : void()

RTPClientLogic

-m_pClient : Client *

+SendRTPPacket() : void()

RTSP Server를 수행하며, 네트워크로 부터 접속한 사용자를 처리하는 클래스TCP 형태로 구성되어 있으며 Network I/O를 처리해주는 Socket Multi-Thread Model 형태에서 Thread 자원의 관리를 하는 클래스

Singleton 형태의 클래스이며 서버에서 사용 가능한 자원을 관리하는 클래스

RTP 방식으로 클라이언트에게 스트리밍 파일을 전송하는 클래스

클라이언트에서 받은 패킷을 분석하고 이를 새로운 패킷으로 만드는 기본 클래스

네트워크로부터 받은 클래스를 분석하고 패킷을 생성할 수 있도록 하는 클래스

RTSP Server에서 필요한 Services 들을 정의하고 내부적으로 RTSP 통신을 하는 클래스

각각의 클라이언트들의 네트워크 정보를 지니고 있는 클래스

Page 29: Tizen Multi docking Station Robot

29/41

Dokuzen Streaming

Audio Sources(C++)

Windows / Tizen

Application (C++)

RTSP Server(C++)

RTSP Client

(Raspberry pi, Linux)

DokuzenMain Server(C++)

DokuzenQt

Application

Page 30: Tizen Multi docking Station Robot

30/41

Dokuzen Streaming

Play(Response/ Request)

Option(Response)

Setup(Response)

Describe(Response)

Pause(Response/Request)

Teardown(Response/Request)

RTP(Transform)

AudioSource(MPA)

Page 31: Tizen Multi docking Station Robot

31/41

22-2th. Jung Yu Seok

Robot design, Control &

QT User Interface

Page 32: Tizen Multi docking Station Robot

32/41

Frame Design

3D Inventor Design

52 objects

3D printer output

Page 33: Tizen Multi docking Station Robot

33/41

Frame Design

Page 34: Tizen Multi docking Station Robot

34/41

Docking Station Robot

Touch Sensor

TFT LCD

SoundSpeaker

Servo Motor

Multi-articulated Arm

RGB LED Backlight

InfraredSensors

SoundVolume Bar

LEDVolume Bar

Page 35: Tizen Multi docking Station Robot

35/41

System architecture

ARM Cortex-M3

Touch

sensor

Infrared

sensor

MCU Server

USART

RaspberryPI

DYNAMIXELL

Servo Motor

RGB LED

Page 36: Tizen Multi docking Station Robot

36/41

DATA Packet

0xFF 0x03 0x02

Start Bit( 1 byte )

Connect Data bit( 1 byte )

Call Data Bit( 1 byte )

0x00

MSNData Bit( 1 byte )

0x01

MusicData Bit( 1 byte )

0x06

MotionData Bit( 1 byte )

0x08

CheckSum Bit( 1 byte )

~(All Data Sum) &

0xFF

ENDData Bit( 1 byte )

Communication Parts

Page 37: Tizen Multi docking Station Robot

37/41

Robot Motion

Page 38: Tizen Multi docking Station Robot

38/41

QT User Interface

Unknown User

The user is not registered. Would you like to register?

Ok Cancel

Welcome!!

010-5095-8243

Dong Min

Message

From 010-5095-8243

Calling…

From 010-5095-8243

.

..PiDokuzenDokuzen.cppImagesMain.cppDirectory.cpp

Dokuzen.cppMain.cpp

./root/home/pi/Dokuzen/Dokuzen.cpp

SEND DeleteEnter

File Transfer…

NOW 2 / 4

Page 39: Tizen Multi docking Station Robot

39/41

Schedule

5월 6월 7월 8월

Mouse, Kbd Hooking

Create & ControlMouse, Kbd in Tizen

Clipboard Analysis

Design & CreateRobot docking station

Implement robot motion

TFT LCD UI

Wi-Fi Direct

Define Network Packet

NFC Communication

RTSP Analysis & Create Command

RTP Analysis & Control

MP3 Headre & Frame Analysis

Merge

Test / Debugging

Page 40: Tizen Multi docking Station Robot

40/41

No Function Priority

1 Create and Control Mouse & Kbd in Tizen A

2 Windows Mouse, Kbd Hooking A

3 Clipboard Analysis & sharing B

4 Catch Communication Event in Tizen B

5 Design Robot Docking station A

6 TFT LCD UI in Raspberry A

7 Robot Motion definition A

8 Wi-Fi Direct A

9 File Transfer B

10 NFC Communication A

11 RTSP Analysis & Control A

12 RTP packet implement & control A

13 MP3 Header & Frame Analysis A

14 Streaming A

Check List

Page 41: Tizen Multi docking Station Robot

41/41

Reference

1. 시리얼통신 in Raspberry

- http://blog.naver.com/jinydoggebi/120188337487

2. UDS(IPC)

- http://forum.falinux.com/zbxe/index.php?document_srl=406064&mid=network_programming

3. Wi-fi Direct AP mode at Raspberry

- http://www.raspberrypi.org/forums/viewtopic.php?f=91&t=54946

- http://www.mendrugox.net/2013/08/tp-link-tl-wn725n-v2-working-on-raspberry-raspbian/

4. Professional Tizen Application Development, Hojun Jaygarl 외 5명, Wrox

5. Tizen 애플리케이션 프로그래밍, 서영진, 프리렉

6. Tizen Developer Forum

- https://developer.tizen.org/forums

7. Tizen Namespace

- https://developer.tizen.org/dev-guide/2.2.0/org.tizen.native.apireference/namespaceTizen.html

7. 열혈강의 Qt Programming, 서영진, 프리렉

Page 42: Tizen Multi docking Station Robot

42/41