<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/resources/xsl/jats-html.xsl"?>
<article article-type="research-article" dtd-version="1.1" xml:lang="ko" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
	<journal-meta>
		<journal-id journal-id-type="publisher-id">jkits</journal-id>
		<journal-title-group>
		<journal-title>한국지식정보기술학회 논문지</journal-title>
		<journal-title xml:lang="en">Journal of Knowledge Information Technology and Systems</journal-title>
		</journal-title-group>
		<issn pub-type="ppub">1975-7700</issn>
		<publisher>
		<publisher-name>한국지식정보기술학회</publisher-name>
		<publisher-name xml:lang="en">Korea Knowledge Information Technology Society</publisher-name>
		</publisher>
	</journal-meta>
	<article-meta>
		<article-id pub-id-type="publisher-id">jkits_2020_15_04_487</article-id>
		<article-id pub-id-type="doi">10.34163/jkits.2020.15.4.005</article-id>
		<article-categories>
			<subj-group>
				<subject>Research Article</subject>
			</subj-group>
		</article-categories>
		<title-group>
			<article-title>다개체 협력 시스템 기반 AI 로봇 오목 플랫폼 개발</article-title>
			<trans-title-group xml:lang="en">
				<trans-title>Development of AI Robotic Gomoku Platform Based on Multi-Robot Cooperative System</trans-title>
			</trans-title-group>
		</title-group>
		<contrib-group>
			<contrib contrib-type="author" xlink:type="simple">
				<name-alternatives>
					<name name-style="eastern">
						<surname>박</surname>
						<given-names>상용</given-names>
					</name>
					<name name-style="western" xml:lang="en">
						<surname>Park</surname>
						<given-names>Sang-Yong</given-names>
					</name>
				</name-alternatives>
					<xref ref-type="aff" rid="A1"><sup>1</sup></xref>
			</contrib>
			<contrib contrib-type="author" xlink:type="simple">
				<name-alternatives>
					<name name-style="eastern">
						<surname>이</surname>
						<given-names>강희</given-names>
					</name>
					<name name-style="western" xml:lang="en">
						<surname>Lee</surname>
						<given-names>Kang-Hee</given-names>
					</name>
				</name-alternatives>
				<xref ref-type="fn" rid="fn001">*</xref>
				<xref ref-type="aff" rid="A2"><sup>2</sup></xref>
			</contrib>
					</contrib-group>
		<aff-alternatives id="A1">
			<aff><sup>1</sup><italic>숭실대학교 글로벌미디어학부 학사과정</italic></aff>
			<aff xml:lang="en"><italic>Global School of Media, Soongsil University</italic></aff>
		</aff-alternatives>
		<aff-alternatives id="A2">
			<aff><sup>2</sup><italic>숭실대학교 글로벌미디어학부 부교수</italic></aff>
			<aff xml:lang="en"><italic>Global School of Media, Soongsil University</italic></aff>
		</aff-alternatives>
		<author-notes>
			<fn id="fn001"><label>*</label><p>Corresponding author, Kang-Hee Lee, is with the Global School of Media, Soongsil University, 369 Sando-Ro Dongjak-Gu, Seoul, 06978, KOREA.</p><p><italic>E-mail address</italic>: <email>kanghee.lee@ssu.ac.kr</email></p></fn>
		</author-notes>
		<pub-date pub-type="ppub">
			<month>08</month>
			<year>2020</year>
		</pub-date>
		<volume>15</volume>
		<issue>4</issue>
		<fpage>487</fpage>
		<lpage>495</lpage>
		<history>
			<date date-type="received">
				<day>21</day>
				<month>06</month>
				<year>2020</year>
			</date>
			<date date-type="rev-recd">
				<day>03</day>
				<month>08</month>
				<year>2020</year>
			</date>
			<date date-type="accepted">
				<day>10</day>
				<month>08</month>
				<year>2020</year>
			</date>
		</history>
		<permissions>
			<copyright-statement>&#x00A9; 2020 KKITS All rights reserved</copyright-statement>
			<copyright-year>2020</copyright-year>
		</permissions>
		<abstract>
		<title>요약</title>
		<p>2016년 이세돌과 알파고의 대국 이후로 AI는 큰 화두가 되었다. 하지만 대국에서 알파고의 연산결과는 대리기사의 손을 통하여 이루어졌다. 발전된 소프트웨어에 걸맞는 하드웨어가 있었더라면 시청자로 하여금 더욱 바둑대국에 몰입하게 되고 알파고와 이세돌의 대국이 AI와 인간의 대국으로 극명하게 가시화 될 것이라 예측했다. 따라서 본 논문에서는 사용자 몰입도, AI와의 실시간 쌍방향 소통을 위하여 비전 시스템과 도봇을 사용하여 소프트웨어와 하드웨어간의 결합을 설계구현 하고자 한다. 특히 기존에 1대의 도봇으로 처리되어 국한적 영역에서만 진행되었던 이전 실험과 달리 2대의 도봇 환경에서 병렬적 처리를 통하여 보다 높은 사용자 인터랙션을 유도한다. 비전 시스템의 구현은 Zet Brains사의 python 환경에서 이루어졌으며 2대의 도봇이 사용된다. 실제 바둑판에서 유저가 오목알을 착수할 시 비전 시스템을 통하여 오목AI의 착수점이 계산되고 이는 도봇을 통하여 바둑판에 착수가 이루어진다. 결론적으로 본 논문에서 제안된 다개체 협력 시스템 기반 AI 로봇 오목 플랫폼을 활용하여 발달 장애 아동 교육과 같은 치료 및 교육 분야에서 활용할 수 있을 것이다.</p>
		</abstract>
		<trans-abstract xml:lang="en">
		<title>ABSTRACT</title>
		<p>Artificial Intelligence (AI) has become a hot topic since 2016 when Lee Se-dol and AlphaGo became a big hit. However, AlphaGo's computational results were made through the hand of a substitute driver in the game. It predicted that if there was hardware that matched advanced software, viewers would be more immersed in the Go game and that AlphaGo and Lee Se-dol would be clearly visible as AI and human. Therefore, in this paper, we want to design the combination between software and hardware using vision system and Robot for user immersion and real-time interactive communication with AI. In particular, unlike previous experiments in which only one robot was previously treated as a single robot and conducted only in a limited area, it induces higher user interaction through parallel processing in two. The implementation of the vision system took place in the Python environment of Zet Brains, and two robots are used. In fact, when a user starts a concave egg on a board of go, the starting point of the concave AI is calculated through the vision system, and the launch of the board is carried out through the robot. In conclusion, the proposed AI robotic omok platform based on multi-robot cooperative system proves its effectiveness and will be available in areas such as education for children with developmental disabilities.</p>
		</trans-abstract>
		<kwd-group kwd-group-type="author" xml:lang="en">
<title>K E Y W O R D S</title>
			<kwd>Gomoku</kwd>
			<kwd>OpenCV</kwd>
			<kwd>Vision-system</kwd>
			<kwd>DOBOT</kwd>
			<kwd>Python</kwd>
			<kwd>AI</kwd>
			<kwd>CNN</kwd>
		</kwd-group>
	</article-meta>
</front>
<body>
<sec id="sec001" sec-type="intro">
	<title>1. 서 론</title>
	<p>2016년 알파고와 이세돌 대국이 ‘지적(知的) 업무로의 인공지능 도입에 대한 인식에 미친 영향탐색’연구와 같이 AI가 일반인들에게도 본격적으로 알려지며 인공지능이란 분야가 각 영역에서 활발하게 연구되고 있다 [<xref ref-type="bibr" rid="B001">1</xref>]. 단순히 주어진 업무를 수행하는 1차원적인 로봇이 아니라 상황에 따라 결과값을 연산하는 AI는 마치 인간종과 같이 살아 숨쉬는 개체로 느껴진다.</p>
	<p>사실 알파고처럼 연산을 하는 AI는 알파고가 선두주자는 아니다. AI분야는 일반인들의 생각과는 달리 꽤 연구가 오랫동안 진행된 분야이다. 1956년 미국 다트머스 대학에 있던 존 매카시 교수가 개최한 다트머스 회의를 통해 처음으로 인공지능 즉 AI란 용어가 사용되기 시작했으며, 당시의 연구주제는 추론과 탐색을 하는 컴퓨터였다. 인공지능 분야는 1970년대까지 활발히 연구되어, 1969년엔 알버트 린지의 논문을 통해 세계최초로 컴퓨터 바둑프로그램을 발표하기도 했다 [<xref ref-type="bibr" rid="B002">2</xref>].</p>
	<p>2000년대까진 DB를 축적한 후 DB를 활용하여 착수점을 찾는 방식이였으나 2006년 이후 몬테카를로 트리 탐색방식으로 비약적 발전을 한다 [<xref ref-type="bibr" rid="B003">3</xref>].이 알고리즘은 이전까지 있었던 모든 인공지능 바둑 프로그램을 몬테카를로 방식으로 전환하는 선구자적 역할을 수행했다.</p>
	<p>이와 달리 알파고는 CNN과 강화학습을 통한 딥러닝 방식이 적용됐다 [<xref ref-type="bibr" rid="B004">4</xref>]. 또한 프로기사를 상대로 최초로 승리를 따낸 AI타이틀을 획득했다. 하지만 알파고와 이세돌의 대국에서 직접적인 착수는 알파고가 아닌 대리기사를 통하여 이루어졌다. 소프트웨어의 비약적인 발전이 있었지만 그에 걸맞는 하드웨어적 퍼포먼스는 대국에서 찾아볼 수 없었다. 따라서 본 논문은 AI소프트웨어와 하드웨어를 결합한 로봇 오목 플랫폼을 만들고자 한다.</p>
	<p>Python환경에서 비전을 활용하여 유저의 착수점을 인식하고 인식된 결과를 통하여 오목AI는 다음 착수점을 계산한다. 그리고 도봇을 통하여 계산된 착수점에 직접적인 착수를 구현하였다. AI가 그저 연산결과만 도출하는 것 뿐만 아니라 하드웨어적 퍼포먼스로 물리적 착수까지 수행한다면 유저인터랙션 측면에서 더욱 흥미를 이끌 것으로 사료된다[<xref ref-type="bibr" rid="B005">5</xref>].</p>
	<p>실험구현을 위하여 컴퓨터 비전은 Python 환경에서 OpenCV 라이브러리를 활용하였으며 도봇의 착수를 위하여 도봇Studio를 사용하였다 [<xref ref-type="bibr" rid="B006">6</xref>]. 오목AI는 알파오를 활용하였다 [<xref ref-type="bibr" rid="B007">7</xref>].</p>
	<p>본 논문은 다음과 같이 구성된다. 제 2장에서는 관련 연구를 소개한다. 관련 연구에서 AI와 하드웨어를 결합한 연구를 소개한다. 제 3장에서는 실험설계를 살펴본다. 이 장에서 비전설계, 비전과 알파오와의 연결 그리고 알파오와 도봇의 연결을 서술한다. 제 4장에서는 3장에서의 설계를 통한 실험구현을 서술한다. 마지막 제5장 결론에선 실험에서 보였던 문제점과 개선방안을 제시한다.</p>
</sec>
<sec id="sec002">
	<title>2. 관련 연구</title>
	<sec id="sec002-1">
		<title>2.1 AI와 도봇을 결합한 기존의 로봇</title>
		<p>도봇 Arm은 도봇 Company에서 제작된 하드웨어이다. 2018년 CES Innovation Award를 수상한 이후 로봇팔 관련연구에서 활발하게 사용되고 있다. 도봇 Arm은 EndPoint에 SuctionCup 혹은 그리퍼를 사용하여 물체를 잡고 이동시킬 수 있다. 2장에선 SuctionCup을 활용한 도봇관련 연구를 살펴본다.</p>
		<p>1) Chinese Chess/Chinese GO3</p>
		<fig id="f001" orientation="portrait" position="float">
			<label>그림 1.</label>
			<caption>
				<title>Chinese Chess/Chinese Go3화면</title>
				<p>Figure 1. ScreenShot of Chinese Chess/Chinese Go3</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f001.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>Chinese GO3는 도봇을 활용한 바둑게임이다 [<xref ref-type="bibr" rid="B008">8</xref>]. 위 실험에선 총1대의 도봇이 활용되었으며 19*19 바둑판이 사용되었다. 그리고 위 실험에선 도봇의 End-Point에 Suction-Cup을 장착하여 바둑알을 집는다. 영상에서 확인 할 수 있다시피 도봇의 하드웨어적 길이의 한계로 인하여 제한된 바둑판 영역에서만 대국이 진행된다.</p>
		<p>2) OpenCV Tic Tac Toe Engine</p>
		<fig id="f002" orientation="portrait" position="float">
			<label>그림 2.</label>
			<caption>
				<title>OpenCV Tic Tac Toe Engine화면</title>
				<p>Figure 2. ScreenShot of OpenCV Tic Tac Toe Engine</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f002.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>Tic-Tac-Toe Engine은 CV환경에서 도봇을 활용하여 Tic-Tac-Toe를 진행한다 [<xref ref-type="bibr" rid="B009">9</xref>]. 유저는 착수 후 컴퓨터에 엔터동작을 통하여 비전시스템을 수동적으로 실행시키며 이 후 컴퓨터의 연산결과를 도봇으로 수행하게 된다.</p>
	</sec>
	<sec id="sec002-2">
		<title>2.2 도봇을 활용한 기존의 실험분석</title>
		<p>&#x003C;<xref ref-type="fig" rid="f001">그림 1</xref>&#x003E;의 Chinese Go3는 1대의 도봇을 사용하여 실험을 진행하였다. 도봇의 활용가동범위는 도봇의 Center Point로부터 31cm정도인데 이는 19*19 바둑판 끝점과 끝점까지 착수가 불가능하다. 따라서 위에서 살펴본 바와 같이 제한된 영역에서만대국이 이뤄지게 된다. 이는 도봇 하드웨어의 물리적 한계점이다. 따라서 바둑판 전 영역을 모두 활용하기 위해선 1대의 도봇이 아닌 여러대의 도봇이 활용되어야 하며 이는 협동로봇으로서 병렬형 데이터 처리를 수행해야 한다.</p>
		<p>&#x003C;<xref ref-type="fig" rid="f002">그림 2</xref>&#x003E;의 Tic-Tac-Toe엔진은 비전시스템을 수동적으로 수행한다. 실시간적 비전시스템이 아닌 이러한 수동적 비전시스템은 사용자로 하여금 게임연속성의 중단을 요구하며 이는 사용자의 몰입도를 낮추게 한다. 따라서 본 논문에서는 2대의 도봇을 활용한 도봇 오목 Platform을 구현하고자 한다. 또한 실시간 비전시스템을 사용하여 사용자가 더욱 게임에 몰입할 수 있도록 유도한다.</p>
		<p>플랫폼의 이름은 MRBOT이며 숭실대 Media Robotics Lab을 차용하였다.</p>
	</sec>
</sec>
<sec id="sec003" sec-type="methods">
	<title>3. 다개체 협동 로봇 시스템에 기반한 AI 로봇 오목 플랫폼 MRBOT 설계</title>
	<sec id="sec003-1">
		<title>3.1 MRBOT Vision 설계</title>
		<p>MRBOT의 비전시스템을 개발하기 위해 Jetbrains의 Python을 사용하였으며 OpenCV라이브러리를 사용하였다. 또한 비전으로 인식할 오목판은 15*15 크기의 오목판을 사용하였으며 1대의 웹캠이 사용되었다.</p>
		<p>MRBOT과의 플레이에서 사용자는 백돌을 사용하고 MRBOT은 흑돌을 사용하여 플레이하게 된다.</p>
		<p>MRBOT은 사용자의 백돌 착수점을 인식하고 알파오에 인식좌표를 전송한다. 이후 알파오에서의 연산값을 도봇에 전송하여 최종적으로 도봇을 통하여 최종적인 착수가 이루어진다. 따라서 비전시스템에선 백돌만 고려된다는 점을 밝힌다.</p>
		<p>흰색영역검출을 위하여 흰색의 최댓값,최소값 그리고 검은색의 최댓값과 최소값을 numpy배열로 정의한다.</p>
		<p>두 영역의 RGB값을 HSV로 변환하여 마스킹한 후 비전영역에 들어오는 흰색영역의 범위만 검출하도록 시스템을 설계하였다.</p>
		<fig id="f003" orientation="portrait" position="float">
			<label>그림 3.</label>
			<caption>
				<title>RGB영역과 HSV영역</title>
				<p>Figure 3. RGB scale and HSV scale</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f003.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>그리고 검출된 영역의 위치정보를 알파오에서 읽을 수 있도록 TextFile에 좌표포지션을 저장한다.</p>
	</sec>
	<sec id="sec003-2">
		<title>3.2 MRBOT 오목프로그램 설계</title>
		<p>MRBOT의 오목프로그램은 1장에서 서술한 바와 같이 알파오를 활용하였다. 알파오는 Python환경에서 작성되었다. 알파오의 데이터 학습방식은 CNN방식을 사용한다. 유저와 유저 간의 대국 정보를 PNG파일로 저장하고 이를 학습데이터로써 활용한다.</p>
		<p>학습 데이터셋은 9개의 히든레이어를 통과한다.</p>
		<p>이 때 설정되는 가중치는 1개이며 9개의 히든레이어에서 유의미한 데이터를 수집하기 위하여 렐루함수를 사용한다. 렐루함수는 0 미만의 값은 패스하고 0 이상의 값을 출력하여 시그모이드 함수보다 유의미한 데이터를 갖는다. &#x003C;<xref ref-type="fig" rid="f004">그림 4</xref>&#x003E;는 렐루함수의 그래프이다 [<xref ref-type="fig" rid="f010">10</xref>].</p>
		<fig id="f004" orientation="portrait" position="float">
			<label>그림 4.</label>
			<caption>
				<title>렐루함수 그래프</title>
				<p>Figure 4. graph of Relu Function</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f004.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>렐루함수로 학습시 100에폭까지 머신러닝을 수행하여 AI가 착수할 상황별 최적의 위치를 데이터셋 기보를 통하여 학습시킨다.</p>
		<p>AI와 사용자와의 대국에선 비전부분에서 인식한 위치정보를 TextFile에 저장하면 알파오는 텍스트 파일을 열고 위치 정보를 읽는다.</p>
		<p>읽은 위치 정보에 대응하는 점으로 마우스를 이동시켜 마우스 클릭 이벤트로 사용자 착수점에 백돌을 착수하게 되며 이에 대응하는 AI의 착수점을 연산하여 게임상 흑돌 착수를 수행한다. 그리고 착수포지션을 도봇 파트에서 읽을 수 있도록 TextFile로 저장한다.</p>
	</sec>
	<sec id="sec003-3">
		<title>3.3 MRBOT 도봇 설계</title>
		<p>도봇은 15*15오목판 전 영역을 활용하기 위하여 2대의 도봇이 사용되었다. 그리고 1번 은 좌표점(1,1)부터 (8,15)까지 영역을 담당하고 2번 은 (9,1)부터 (15,15)까지의 영역을 담당한다.</p>
		<p> &#x003C;<xref ref-type="fig" rid="f005">그림 5</xref>&#x003E;는 MRBOT의 동작흐름도이다. 알파오에서 전달받은 위치에 대응하는 좌표점으로 흑돌을 집어서 착수하게 된다. 이는 &#x003C;<xref ref-type="fig" rid="f005">그림 5</xref>&#x003E;의 마지막단계에 해당한다.</p>
		<fig id="f005" orientation="portrait" position="float">
			<label>그림 5.</label>
			<caption>
				<title>MRBOT의 동작흐름도</title>
				<p>Figure 5. Flow Chart of MRBOT.</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f005.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
	</sec>
</sec>
<sec id="sec004" sec-type="Results">
	<title>4. MRBOT 구현 및 실험</title>
	<sec id="sec004-1">
		<title>4.1 MRBOT Vision과 오목게임 구현 및 실험</title>
		<fig id="f006" orientation="portrait" position="float">
			<label>그림 6.</label>
			<caption>
				<title>흑돌착수시 CV영역검출</title>
				<p>Figure 6. Image of When Dectect Black Stone.</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f006.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>vision시스템에서 백돌인식을 위하여 openCV라이브러리를 활용하였다. 비전시스템은 실시간으로 작동하며 사용자의 백돌만 인식하되 도봇이 착수하는 흑돌은 인식하지 않도록 하였다.</p>
		<p>&#x003C;<xref ref-type="fig" rid="f006">그림 6</xref>&#x003E;은 흑돌 착수 시 웹캠화면과 CV화면이다.웹캠 상에 흑돌을 착수 한 걸 확인할 수 있으며 비전 시스템상에선 흑돌 착수시 Detect 처리를 하지 않았기 때문에 흑돌 영역이 검출되지 않는 걸 확인할 수 있다.</p>
		<fig id="f007" orientation="portrait" position="float">
			<label>그림 7.</label>
			<caption>
				<title>백돌착수시 CV영역검출</title>
				<p>Figure 7. Image of When Dectect White Stone.</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f007.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>&#x003C;<xref ref-type="fig" rid="f007">그림 7</xref>&#x003E;은 사용자의 백돌 착수 시 영역검출 화면이다. 실시간으로 유저의 백돌을 인식하며 색인식은 마스킹한 흰색범위 값이 들어올 때 수행된다. 본 논문에선 흰색 범위 값을 [0,0,195] ~ [0,0,0]으로 설정하였다. 이렇게 인식한 위치좌표를 TextFile에 값을 저장하여 알파오 프로그램에서 읽을 수 있도록 설계하였다.</p>
		<p>&#x003C;<xref ref-type="fig" rid="f008">그림 8</xref>&#x003E;과 같이 알파오는 TextFile에 저장된 백돌좌표를 읽고 오목 게임판에 그에 대응하는 점을 마우스로 클릭하여 착수하게 된다. 이는 Python에서 제공하는‘pyautogui를 import하여 moveTo와 Click이벤트로 구현하였다 [<xref ref-type="bibr" rid="B011">11</xref>].</p>
		<fig id="f008" orientation="portrait" position="float">
			<label>그림 8.</label>
			<caption>
				<title>비전프로그램과 알파오 연결</title>
				<p>Figure 8. Connect vision with AlphaO</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f008.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>반대로 마우스이동을 통하여 도봇제어도 가능하다. 마우스와 눈동자의 움직임을 연결하여 게임상 오목판에 착수시 이를 도봇으로 실제 오목판에 착수 또한 가능할 것으로 보이며 이는 전신 마비 장애인들의 오목수행으로 확대까지 가능한 점을 시사한다 [<xref ref-type="bibr" rid="B012">12</xref>].</p>
	</sec>
	<sec id="sec004-2">
		<title>4.2 MRBOT 도봇 구현</title>
		<p>도봇은 도봇Script에서 작성되었다. 도봇을 움직이기 위해서 예비동작들이 들어가게 된다. 이는 Via-Point이며 Via-Point를 거치지 않게 설정하면 도봇의 MoveError가 발생하는 것을 확인하였다. 따라서 바둑알을 suctionCup으로 잡고 착수까지 총 6개의 via-Point를 설정하였다.</p>
		<fig id="f009" orientation="portrait" position="float">
			<label>그림 9.</label>
			<caption>
				<title>도봇의 바둑알 집기</title>
				<p>Figure 9. Pick a stone by Using Dobot</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f009.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>&#x003C;<xref ref-type="fig" rid="f009">그림 9</xref>&#x003E;와 같이 도봇은 검정바둑알을 집고 알파오로부터 입력받은 좌표로 바둑알을 이동하여 착수한다. 바둑알을 집는건 SuctionCup으로 구현하였다.</p>
		<p>위 그림은 (1,1)부터 (8,15)까지의 위치를 담당하는 1번 도봇이다. 각 좌표는 위치좌표와 1대1맵핑을 시켜 도봇의 착수정확도를 높였다. 또한 2대의 도봇을 사용함으로써 오목판 전 영역에 오목알을 착수 할 수 있게 설계하였다.</p>
		<fig id="f010" orientation="portrait" position="float">
			<label>그림 10.</label>
			<caption>
				<title>(1,2)점으로 착수</title>
				<p>Figure 10. Set a Storn to (1,2)Position</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f010.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>&#x003C;<xref ref-type="fig" rid="f010">그림 10</xref>&#x003E;은 (1,2)까지의 착수를 파트로 나누어 캡처한 사진이다. 바둑알을 집고 착수하기까지 6개의 via-point를 거친다. via-point는 함수로 구현하여 오목판의 각 위치좌표만 파라미터로 입력받도록 구현하였다.</p>
		<fig id="f011" orientation="portrait" position="float">
			<label>그림 11.</label>
			<caption>
				<title>2대의 도봇동작모습</title>
				<p>Figure 11. Picture of Operating 2 도봇s</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f011.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>&#x003C;<xref ref-type="fig" rid="f011">그림 11</xref>&#x003E;은 최종적으로 2대의 도봇이 작동하는 모습이다. 1번 도봇과 2번 도봇은 실시간 While문으로 반복문을 돌리며 알파오로부터 위치좌표를 연속적으로 입력받는다. 따라서 별도의 처리를 하지 않으면 동일한 입력값을 끊임없이 수행한다. 따라서 본 논문에서는 한번 위치좌표를 입력받으면 동일한 위치좌표로 다시 동작을 수행하지 않도록 구현하였다. 또한 게임의 종료를 위하여 overCheck란 텍스트파일을 만들어 게임이 끝나면 문자열 1을 전달받아 모든 루프문이 종료되도록 설계 구현하였다.</p>
	</sec>
	<sec id="sec004-3">
		<title>4.3 실험 최종 구현</title>
		<fig id="f012" orientation="portrait" position="float">
			<label>그림 12.</label>
			<caption>
				<title>MRBOT 최종구현</title>
				<p>Figure 12. Final Implementation of MRBOT</p>
			</caption>
			<graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f012.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
		</fig>
		<p>&#x003C;<xref ref-type="fig" rid="f012">그림 12</xref>&#x003E;는 오목게임을 끝까지 진행한 사진이다.도봇 2대는 에러없이 오목게임을 수행하였으며 오목게임 종료 시 overCheck 텍스트파일을 확인하여 루프문을 종료하는 것 까지 확인하였다.</p>
	</sec>
</sec>
<sec id="sec005" sec-type="Conclusion">
	<title>5.결 론</title>
	<p>실험에서 보인 문제점은 다음과 같다. 본 논문의 Vision 부분에선 비전시스템을 실제 오목판과 1대1 맵핑을 시켰다. 하지만 웹캠이 각도가 초기값과 달라질 경우에 비전시스템의 오차가 발생하는 것을 파악하였다. 따라서 이를 보완하기 위하여 맵핑의 Step-Size를 10Pixel로 설정하였다. 하지만 이를 더 보완하기 위한 방법은 후술한다.</p>
	<p>도봇은 미리 세팅된 오목알을 집고 좌표에 착수한다. 따라서 이 후 오목알을 도봇이 착수했다면 새로운 오목알을 다시 위치시켜줘야 한다. 따라서플레이어는 오목도 착수하여야 하고 도봇의 오목알 까지 착수해야 하는 번거로움이 발생한다. 이는 사용자의 몰입도를 크게 저하시킨다.</p>
	<p>앞서 본 논문에서 설계 구현했던 Vision 시스템은 설정해놓은 세팅값을 벗어나면 인식에 오차가생기는 문제점이 있었다. 이는 통합된 플랫폼환경구축에 있어서 큰 문제점이다.</p>
	<p>따라서 어느 각도에서든 인식하기 위하여 앞서 구현한 비전 프로그램처럼 오목알의 위치좌표를 1대1맵핑으로 검출하는게 아닌 바둑판의 최외각 네점을 검출하여 좌표를 맵핑시키고자 한다. 이는 추후에 개선된 소프트웨어모델에서 구현할 예정이다[<xref ref-type="bibr" rid="B013">13</xref>].</p>
	<p>또한 도봇이 사용할 오목알을 사용자가 직접 놓아 주어야 했던 기존의 방식이 아니라 오목알을 공급 받을 수 있는 모듈을 도봇에 장착하는 방식으로 개선하려 한다.</p>
	<p>결과적으로 개선된 비전시스템을 통하여 오목뿐만 아니라 바둑AI를 이용한 게임플랫폼 개발도 가능할 것으로 보인다 [<xref ref-type="bibr" rid="B014">14</xref>].</p>
</sec>
</body>
<back>
<ref-list>
<title>References</title>
<!--[1] D. W. Kim, and B.J. Kim, How alphago does change peoples perception of introduction of Artificial Intelligence into Intellectual work?, Journal of Cybercommunication Academic Society, Vol. 33, No. 4, pp. 107-158, 2016.-->
<ref id="B001">
<label>[1]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Kim</surname><given-names>D. W.</given-names></name>
<name><surname>Kim</surname><given-names>B.J.</given-names></name>
</person-group>
<year>2016</year>
<article-title>How alphago does change peoples perception of introduction of Artificial Intelligence into Intellectual work?</article-title>
<source>Journal of Cybercommunication Academic Society</source>
<volume>33</volume><issue>4</issue>
<fpage>107</fpage><lpage>158</lpage>
</element-citation>
</ref>
<!--[2] A. L. Zobrist, A model of visual organization for the game of go, AFIPS‘69(Spring):Proceedings of the May 14-16, 1969, spring joint computer conference, 103-112, 1969.-->
<ref id="B002">
<label>[2]</label>
<element-citation publication-type="paper">
<person-group>
<name><surname>Zobrist</surname><given-names>A. L.</given-names></name>
</person-group>
<year>1969</year>
<article-title>A model of visual organization for the game of go</article-title>
<conf-name>AFIPS‘69(Spring):Proceedings of the May 14-16, 1969, spring joint computer conference</conf-name>
<fpage>103</fpage><lpage>112</lpage>
<pub-id pub-id-type="doi">10.1145/1476793.1476819</pub-id>
</element-citation>
</ref>
<!--[3] S. G. W. Munos, and O. Teytaud, Modification of uct with patterns in monte-carlo go, Technical Report RR-6062, Vol. 32, pp. 30-56, 2006.-->
<ref id="B003">
<label>[3]</label>
<element-citation publication-type="report">
<person-group>
<name><surname>W. Munos</surname><given-names>S. G.</given-names></name>
<name><surname>Teytaud</surname><given-names>O.</given-names></name>
</person-group>
<year>2006</year>
<article-title>Modification of uct with patterns in monte-carlo go</article-title>
<source>Technical Report RR-6062</source>
<volume>32</volume>
<fpage>30</fpage><lpage>56</lpage>
</element-citation>
</ref>
<!--[4] D. Silver, A. Huang, A. Huang, and C. J. Maddison, Mastering the game of go with deep neaurl networks and tree search, Nature 529, pp. 484-489, 2016.-->
<ref id="B004">
<label>[4]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Silver</surname><given-names>D.</given-names></name>
<name><surname>Huang</surname><given-names>A.</given-names></name>
<name><surname>Huang</surname><given-names>A.</given-names></name>
<name><surname>Maddison</surname><given-names>C. J.</given-names></name>
</person-group>
<year>2016</year>
<article-title>Mastering the game of go with deep neaurl networks and tree search</article-title>
<source>Nature</source>
<volume>529</volume>
<fpage>484</fpage><lpage>489</lpage>
<pub-id pub-id-type="doi">10.1038/nature16961</pub-id>
</element-citation>
</ref>
<!--[5] K. G. Bhan, and H. H. Kim, A study on the effects of experience based physical interface on game flow, Archives of Design Research, Vol. 21, No. 3, pp. 201-210, 2008.-->
<ref id="B005">
<label>[5]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Bhan</surname><given-names>K. G.</given-names></name>
<name><surname>Kim</surname><given-names>H. H.</given-names></name>
</person-group>
<year>2008</year>
<article-title>A study on the effects of experience based physical interface on game flow</article-title>
<source>Archives of Design Research</source>
<volume>21</volume><issue>3</issue>
<fpage>201</fpage><lpage>210</lpage>
</element-citation>
</ref>
<!--[6] Computer-Vision and Open CV, https://github.com/opencv/opencv, May 2020.-->
<ref id="B006">
<label>[6]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>Computer-Vision and Open CV</source>
<comment><uri>https://github.com/opencv/opencv</uri>, May 2020</comment>
</element-citation>
</ref>
<!--[7] daily-coding , https://sites.google.com/view/dailycoding00/main/alphaoh-learning, May 2020.-->
<ref id="B007">
<label>[7]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>daily-coding</source>
<comment><uri>https://sites.google.com/view/dailycoding00/main/alphaoh-learning</uri>, May 2020</comment>
</element-citation>
</ref>
<!--[8] Dobot, https://www.youtube.com/watch?v=-ZIzyfP18_Q, May 2020.-->
<ref id="B008">
<label>[8]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>Dobot</source>
<comment><uri>https://www.youtube.com/watch?v=-ZIzyfP18_Q</uri>, May 2020</comment>
</element-citation>
</ref>
<!--[9] Vegard Haugland, https://github.com/v3gard/opencv_tictactoe_en gine, May 2020.-->
<ref id="B009">
<label>[9]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>Vegard Haugland</source>
<comment><uri>https://github.com/v3gard/opencv_tictactoe_engine</uri>, May 2020</comment>
</element-citation>
</ref>
<!--[10] K. He, X. Zhang, J. Sun, and S. Ren, Delving deep into rectifiers: surpassing human-Level performance on imageNet classification, ICCV ‘15: Proceedings of the 2015 IEEE international Conference on Computer Vision(ICCV), pp. 1026-1034, 2015.-->
<ref id="B010">
<label>[10]</label>
<element-citation publication-type="paper">
<person-group>
<name><surname>He</surname><given-names>K.</given-names></name>
<name><surname>Zhang</surname><given-names>X.</given-names></name>
<name><surname>Sun</surname><given-names>J.</given-names></name>
<name><surname>Ren</surname><given-names>S.</given-names></name>
</person-group>
<year>2015</year>
<article-title>Delving deep into rectifiers: surpassing human-Level performance on imageNet classification</article-title>
<conf-name>ICCV ‘15: Proceedings of the 2015 IEEE international Conference on Computer Vision(ICCV)</conf-name>
<fpage>1026</fpage><lpage>1034</lpage>
<pub-id pub-id-type="doi">10.1109/ICCV.2015.123</pub-id>
</element-citation>
</ref>
<!--[11] Pyautogui, https://pyautogui.readthedocs.io/en/latest, May 2020.-->
<ref id="B011">
<label>[11]</label>
<element-citation publication-type="webpage" publication-format="web">
<source>Pyautogui</source>
<comment><uri>https://pyautogui.readthedocs.io/en/latest</uri>, May 2020</comment>
</element-citation>
</ref>
<!--[12] G. W. Kim, M. S. Yang, and J. Y. Yang Construction of robot control environment using pupil mouse, Korea Knowledge Information Technology Society, Vol. 8, No. 6, pp. 1-8, 2013.-->
<ref id="B012">
<label>[12]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Kim</surname><given-names>G. W.</given-names></name>
<name><surname>Yang</surname><given-names>M. S.</given-names></name>
<name><surname>Yang</surname><given-names>J. Y.</given-names></name>
</person-group>
<year>2013</year>
<article-title>Construction of robot control environment using pupil mouse</article-title>
<source>Korea Knowledge Information Technology Society</source>
<volume>8</volume><issue>6</issue>
<fpage>1</fpage><lpage>8</lpage>
</element-citation>
</ref>
<!--[13] Y. K. Yoon, and Y. G. Lee, Algorithm of detecting go board corners, The Korean Society Of Broad Engineers, pp. 223-236, 2017.-->
<ref id="B013">
<label>[13]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Yoon</surname><given-names>Y. K.</given-names></name>
<name><surname>Lee</surname><given-names>Y. G.</given-names></name>
</person-group>
<year>2017</year>
<article-title>Algorithm of detecting go board corners</article-title>
<source>The Korean Society Of Broad Engineers</source>
<fpage>223</fpage><lpage>236</lpage>
</element-citation>
</ref>
<!--[14] S. O. An, S. K. Kim, R Hwang, N. S. Jang, B. Han, and J. H. Kang, Efficiency 3D baduk game using directX and A.i, Korea Knowledge Information Technology Society, Vol. 4, No. 2, pp. 45-52, 2009.-->
<ref id="B014">
<label>[14]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>An</surname><given-names>S. O.</given-names></name>
<name><surname>Kim</surname><given-names>S. K.</given-names></name>
<name><surname>Hwang</surname><given-names>R.</given-names></name>
<name><surname>Jang</surname><given-names>N. S.</given-names></name>
<name><surname>Han</surname><given-names>B.</given-names></name>
<name><surname>Kang</surname><given-names>J. H.</given-names></name>
</person-group>
<year>2009</year>
<article-title>Efficiency 3D baduk game using directX and A.i</article-title>
<source>Korea Knowledge Information Technology Society</source>
<volume>4</volume><issue>2</issue>
<fpage>45</fpage><lpage>52</lpage>
</element-citation>
</ref>
</ref-list>
<ack>
<title>감사의 글</title>
<p>이 논문은 2017년도 정부(교육부)의 재원으로 한국연구재단의 지원을 받아 수행된 기초 연구사업임.(NRF-2017R1D1A1B05036028). 이 논문은 2019년 대한민국 교육부와 한국연구재단의 인문사회분야 중견연구자지원사업의 지원을 받아 수행된 연구임(NRF-2019S1A5A2A01043252)</p>
</ack>
<bio>
	<p><graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f013.jpg"></graphic><bold>Sang-Yong Park</bold> is in the bachelor’s degrees in Global School of Media from Soongsil Univeristy, Korea. He belongs to the Media-Robotics Laboratory, Soongsil University. He is interested in media robotics and SAP.</p>
	<p><italic>E-mail address</italic>: <email>qwer5766@naver.com</email></p>
	<p><graphic xlink:href="../ingestImageView?artiId=ART002617134&amp;imageName=jkits_2020_15_04_487_f014.jpg"></graphic><bold>Sang-Yong Park</bold> received the B.S., M.S. and Ph.D. degrees in EECS from KAIST, Korea, in 1999, 2001 and 2006, respectively. Dr Lee is currently an Associate Professor in the Department of Digital Media, Soongsil University. He is interested in robotic intelligence &#x26; emotion and media robotics.</p>
	<p><italic>E-mail address</italic>: <email>kanghee.lee@ssu.ac.kr</email></p>
</bio>
</back>
</article>
