달력

3

« 2024/3 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

개인서비스용 로봇의 미래








 1. 지능형로봇의 출현 

  최근 일본 문부과학성 발표에 의하면 10년후에는 1가구 1로봇시대가 올 것이라고 한다. 이는 2005년 1월24일 실시한 대학교수, 민간기술자, 독립행정법인 연구자 등 일본 과학자 2600명을 대상으로 하여 30년 뒤 일본의 모습에 대한 설문조사를 근거로 한 것인데, 이 결과에 의하면, 2015년까지는 청소와 빨래 등 가사를 돕는 로봇이 집집마다 보급될 것이라고 한다. 문부과학성은 이같은 조사 결과를 응답자에게 보내 재차 의견을 수렴한 뒤 제3기 과학기술기본계획(2006∼2010년) 책정에 반영할 계획이라고 한다.

  이와 같이 요즘 들어 종종 지능형 로봇에 관한 이야기가 뉴스의 중심이 되고 있다. 사람처럼 걷고 말하는 인간형 로봇 휴머노이드, 아주 값싼 가격으로 선보이는 지능형 로봇청소기, 살아있는 애완견처럼 움직이면서, 인간을 즐겁게 해주는 애완로봇에 이르기까지 다양한 형태의 최신 로봇들이 소개되고 있다. 그리고 컴퓨터기술과 IT인프라의 발전에 따라, 이제 이러한 로봇들이 우리의 생활 속에서 없어서는 안 될 필수품이 될 날도 멀지 않은 것 같다. 본 글에서는 이러한 로봇의 현황, 그리고 어떠한 모습으로 우리의 미래가정을 바꿔줄 것인가를 알아 본다. 또한 로봇이 산업적으로 성공하기 위한 방법론 등을 정리해 본다.




2. 세계 각국의 현황

  세계 각국은 지능형로봇을 국가전략산업으로 육성하고 있으며, 특히 일본 아시모 등 로봇기술을 자국의 기술력을 과시하고 있다. 그러나 많은 미래학자가 예측하기를, 이제 로봇은 단순 기술과시가 아닌 산업으로 이어져, 20년내에 현재의 자동차산업을 능가할 것이라고 한다. 이렇게 다가올 지능형로봇 시대를 대비하여, 로봇선진국이라 할 수 있는 일본, 미국 그리고 지능형로봇을 차세대 성장동력산업으로 선정하여 집중육성하고 있는 우리나라에 이르기까지 지능형로봇에 대한 기술개발투자를 아끼지 않고 있다.





 3. 개인서비스용 로봇의 등장

 여러 가지 지능형로봇의 분류 중에서 인간의 생활범주에서 제반 서비스를 제공하는 인간공생형 대인 지원로봇을 개인서비스용 로봇이라고 한다. 이러한 개인 서비스용 로봇은 청소, 심부름, 경비, 조리 등과 같은 가사용 서비스, 간병, 장애자 보조, 재활훈련을 도와주는 생활지원 서비스, 오락, 애완, 게임, 건강도우미와 같은 여가지원 서비스, 가정교사로봇과 같은 교육서비스 등 다양한 형태의 서비스를 우리의 생활공간에서 제공하게 될 것이다. 특히 이러한 로봇들은 지능화, 시스템화 기술을 기반으로 하고 있어, 타 분야에 대한 기술적 파급효과가 크고, IT, BT기술과의 융합을 통해 신기술 분야의 산업화를 촉진하게 될 것으로 보인다. 더구나 출산율 감소 문제 및 고령사회에 대한 우려가 높아지는 요즘, 노동력을 대체하고, 국민복지향상의 대안으로 대두되고 있다. 





4. 미래의 가정모습

 이러한 개인서비스 로봇이 구체적으로 어떻게 우리에게 다가올 것인가를 그려본다. 가칭 로미(ROMI)라는 이름의 개인서비스용 로봇의 모습을 시나리오 기법으로 묘사해 보았다. 개인서비스용 로봇 로미는 아침 8시가 되면 가장 먼저 등교한 수진이의 방부터 청소를 시작한다. 방안에는 옷가지와 여러 가지 물건이 흐트러져 있다. 청소를 시작하기 전, 방바닥을 카메라로 스캔하여 바닥상태를 점검한다. 방바닥의 물건을 하나하나 수거하여 정해진 위치에 놓는다. 바닥이 정돈되면, 진공청소기능을 작동하여 바닥의 먼지를 제거한다. 간단히 청소를 마친 로미는 곧바로 화장실로 가서 세탁물을 수집한다. 수집한 세탁물을 세탁기에 넣고 세탁기를 작동하여, 빨래를 시작한다. 세탁이 완료되면, 로미는 건조된 세탁물을 꺼내어, 정리정돈을 한 후, 정해진 옷장이나 서랍에 보관한다.  청소와 빨래를 마치고, 가족 모두가 외출한 오후 집안에 홀로 남은 로미는 집안을 감시하고 외부인의 방문에 응답하는 경비기능을 담당한다. 이러한 가사로봇 로미는 아직 완전한 인간의 모습이 아닌 반기계 반인간의 모습이 될 것이다. 즉 바퀴를 이용하여 이동하고, 양팔은 갖추고 있어, 간단한 옷가지나 물건을 잡을 수 있을 것이다. 홈네트워크와 연동하여 세탁기나 TV를 제어하고, 카메라를 갖추고 있어, 물건을 인식하는 기능을 갖추게 될 것이다. 집안식구들의 간단한 명령이나 대화를 이해할 수 있어, 간단한 명령은 말로 할 수 있을 것이다. 그러나 전체 작업스케쥴은 컴퓨터를 사용하여 작성된다.


이러한 로봇은 단순 이동기능을 갖춘 것이 아니라, 팔을 제어하고, 카메라를 장치하고 있으며, 홈네트워크와 연동하는 기능을 갖추려면, 최소한 천만원대의 설치비용이 들 것으로 예상되며, 로봇을 위한 홈네트워크 구축 및 센서설치 비용까지 포함하면, 총 비용은 대략 지금의 가치로 2천만원까지 올라갈 것이다. 이 비용으로 주부가 청소와 빨래로부터 해방될 수 있다면 가사용 로봇은 살만한 가치가 있지 않을까?




 5. 개인서비스용 로봇이 산업으로 성공하려면

그러나 이러한 막연한 미래모습이 현실로 다가오려면, 먼저 로봇기술이 단순 기술로만 그치는 것이 아니라 산업으로 자리 잡아야 한다. 이를 위해 먼저 원초적인 질문부터 던져 본다. 정말 개인서비스용 로봇이 고가의 비용을 지불할 만큼 필수적인 가전제품이 될 수 있을 것인가?  사실 이 부분에 대해서 자신있게 긍정적인 대답을 해줄 수 있는 사람은 별로 많지 않을 것이다. 최근 가정용 로봇 업체들이 내놓은 로봇제품은 아직 소비자의 기대수준과는 많은 괴리가 있기 때문이다. 현재 잘 팔리고 있다는 30만원대의 청소로봇은 로봇이기 보다는 정해진 패턴대로 무작위로 움직이며 청소를 하는  '로봇 청소기'수준이며, 최근 어느 업체가 내놓은 교육용로봇 역시 움직이며 돌아다니는 기능을 제외하고는 일반 PC컴퓨터가 제공하는 인터넷이나 CD매체를 이용한 컨텐츠의 음성, 동화상 정보제공 등과 차별화되지 못하기 때문이다. 즉 이러한 기능의 로봇이 소비자가 기대하는 개인서비스용 로봇의 진정한 이미지라고 보기 힘들다. 이러한 로봇이 소비자들에게 제공해 줄 수 있는 「가치」를 명확하게 제안하지 못하는 한, 개인서비스용 로봇이 거대시장을 형성할 것이라는 기대는 아직 막연해 보인다. 이러한 불확실성이 대기업의 투자마인드에 걸림돌이 되고 있으며, 미래의 소비자들 역시 PC와 차별화되지 못한 개인서비스용 로봇을 위해 수백, 수천만원의 돈을 선뜻 지불할 것처럼 보이지 않는 것이다.  




6. 킬러앱(Killer Application)의 발굴

  어쩌면 가정에서 물리적 서비스의 대상은 오직 혼자 힘으로 거동이 불편한 노약자이나 집안에서 생활하는 환자일지 모른다. 또는 혼자 사는 독거노인에게 말동무가 되어준다든가, 컴퓨터보다는 보다 인간친화적 모습으로 정보를 제공하는 서비스 등도 가능하다. 즉 대상과 대상이 필요로하는 서비스를 먼저 선정하고, 이를 중심으로 컨텐츠화하는 제품의 기능 설정이 필요하다. 그리고 이 서비스를 위해, 모든 기술적 방법을 구현하는 것은 다음 문제다. 중요한 것은 사회적 변화예측->소비자계층 분석->니즈 발굴->니즈에 부응하는 서비스/컨텐츠 개발->서비스를 실현하기위한  기술/환경구축의 순으로 기획되어야 한다. 

  즉 개인서비스용 로봇 역시 다른 분야의 제품개발이 그러하듯이 공급자 중심보다는 수요자 입장에서 필요하고, 원하는 서비스를 제공할 수 있도록 개발되어야 한다. 그리고 기존의 PC나 홈네트워크로 구현할 수 있는 서비스와 차별화되어야 한다. 로봇의 차별성은 분명 이동성과 조작성 그리고 인간친화성이다. 이러한 기능이 줄 수 있는 서비스를 최대한 발굴하고, 이러한 서비스를 필요로 하는 소비자계층을 분명한 대상으로 하는 것이 기술적 성공과 더불어 사업적으로도  성공할 수 있을 것이다. 결론적으로 가정용로봇 수요를 촉발시킬 수 있는 킬러 애플리케이션 즉 서비스/컨텐츠 기술을 개발하는 것이 우리 모두 풀어야 할 숙제이다.   

참고: Killer Application이란?

킬러앱(Killer Application)이란 ‘제품의 본래 개발 목적을 뛰어넘어 사회를 변화시킬 만큼 막대한 영향력을 미치는 상품이나 발명’을 지칭함




○ 노스웨스턴대 래리 다운스 교수는 금속활자, 도르래, 증기기관, 백열전구, 엘리베이터, 원자탄 등 응용제품을 킬러 어플리케이션(killer application)‘ 이라 최초로 명명
○ 현재, 생활방식이나 사고방식을 획기적으로 변화시키고 있는 킬러앱으로는 ‘인터넷, 이동통신’, 그리고 제조, 유통 등 기존시장을 재편하는 ‘전자상거래’ 등을 들 수 있음 





2005.10.18



'인공지능로봇 > 로봇이야기' 카테고리의 다른 글

인공지능 로봇기술에 대한 단상  (0) 2019.01.16
:
Posted by 고경철(kckoh)










[181115] 2018 스마트 팩토리 HR Insight 세미나


본 강의는 여의도 중소기업중앙회관에서 2018.11.15(목) 15:00 에 있었던 강연으로 4차산업혁명시대 중소기업 인력양성 방안에 대한 화두를 던지고 있다. 인공지능 전문교육기관을 통해 누구나 AI를 공부하고 활용할 수 있는 환경을 구축해야 한다.






:
Posted by 고경철(kckoh)

Abstract
Function Approximation은 RL에 필수적이다. 그러나 가치함수를 근사화하고 그것으로 부터 정책을 결정하는 기존의 방법은 이론적으로 다루기 힘든 것으로 증명된 바 있다. 본 논문에서는 다른 접근방법을 대안으로 제시한다. 여기에서는 정책이 function approximator로 표현된다.  그리고 그 function approximator는 policy변수에 대한 expected reward의 gradient에 따라 update된다. 








Environment의 Daynamics는 다음으로 주어지는  State transition probabilities와 









다음식으로 표현되는 expected reward에 의해 characterized된다. 







그리고 각 시간 t에서의  에이전트의 Decision making Procedure는 다음과 같이 주어지는 policy함수로 characterized 된다.









 여기서 policy함수는 미분가능(differntiable)한 것으로 가정한다. 에이전트의 objective를 formulating하는 두가지 방법이 있는데, 그 중 하나가 average reward formulation이다. 이 방법에서는 policies들이 각 step당 long-term expected reward에 따라 rank된다. 









여기서 







는 states의 stationary distribution이다. 이러한 average reward formulation 방법에서는 state-action pair의 value는 다음과 같이 정의된다. 








두번째 formulation으로 designated start state s0가 있고, 그로부터 얻어지는 long-term reward 만을 고려하는 방법이다. 







이 formulation방법에서는 value는 다음과 같이 정의된다. 







여기서




은 discount rate이다.  이 방법에서 states의 stationary distribution은 s0에서 시작하면서 겪게되는 각 stated들의 discounted weighting으로 다음과 같이 정의된다. 








1713-policy-gradient-methods-for-reinforcement-learning-with-function-approximation.pdf






:
Posted by 고경철(kckoh)
2018. 11. 13. 10:40

Learning to grasp - Jacob Varley 인공지능로봇/인공지능2018. 11. 13. 10:40

Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the Graduate School of Arts and Sciences - Columbia University, 2018


Abstract
Providing robots with the ability to grasp objects has, despite of research, remained a challenging problem. The problem is approachable in constrained environments where there is ample prior knowledge of the scene and objects that will be manipulated. The challenge is in building systems that scale beyond specific situational instances and gracefully operate in novel condition. In the past, heuristic and simple rule based strategies were used to accomplish tasks such as scene segmentation or reasoning about  occlusion. These heuristic strategies work in constrained environments where a roboticist can make simplifying assumptions about everything from the geometries of the objects to be interacted with, level of clutter, camera position, lighting, and a myriad of other relevant variables. With these assumptions in place, it becomes tractable for a roboticist to hardcode desired behavior and build a robotic system capable of completing repetitive tasks. These hardcoded behavior will quickly fail if the assumptions about the environment are invalidated. In this thesis, we will demonstrate how a robust grasping system can be built that is capable of operating under a more variable set of conditions without requiring significant engineering of behavior by a roboticist. 



 This robustness is enabled by a new found ability to empower novel machine learning techniques with massive amounts of synthetic training data. The ability of simulators to create realistic sensory data enables the generation of massive corpora of labeled training data for various grasping related tasks. The use of simulation allows for the creation of a wide variety of environments and experiences exposing the robotic system to a large number of scenarios before ever operating in the real world. This thesis demonstrates that it is now possible to build systems that work in the real world trained using deep learning on synthetic data. The sheer volume of data that can be produced via simulation enables the use of powerful deep learning techniques whose performance scales with the amount of data available. This thesis will explore how deep learning and other techniques can be used to encode these massive datasets for efficient runtime use. The ability to train and test of synthetic data allows for quick iterative development of new perception, planning and grasp execution algorithms that work in a large number of environments. Creative applications of machine learning and massive synthetic datasets are allowing robotic systems to learn skills, and move beyond repetitive hardcoded tasks. 



일단 이논문은 파지작업과 CNN을 결합한 것으로 보인다. RL기반은 아닌 것이다. 특이한 것은 에너지 최적화를 주제삼은 것이다. 잡는냐 못잡는냐보다 접촉에너지를 최소화하는게 왜 중요한 문제인지 이해가 안간다. Heatmap이 신경망의 최종출력인데, 손바닥의 터치 등고선을 고려한 것일까. 키워드는 포인트 클라우드, RGBD 키넥트센서, 

일단 우리의 작업을 위해 일단 물체를 환경으로 부터 분리하는 Semantic map을 구성하는 능력이 필요하다. 이는 RGB영상처리에서 RGBD영상처리에 대한 연구가 필요한 것이다. 

:
Posted by 고경철(kckoh)

U. Asif, M. Bennamoun, and F. Sohel, “A Multi-modal, discriminative and spatially invariant CNN for RGB-D object labeling,” IEEE Transactions on Pattern Analysis and Machine Intelligence

Abstract

While deep convolutional neural networks have shown a remarkable success in image classification, the problems of inter-class similarities, intra-class variances, the effective combination of multimodal data, and the spatial variability in images of objects remain to be major challenges. To address these problems, this paper proposes a novel framework to learn a discriminative and spatially invariant classification model for object and indoor scene recognition using multimodal RGB-D imagery. This is achieved through three postulates: 1) spatial invariance - this is achieved by combining a spatial transformer network with a deep convolutional neural network to learn features which are invariant to spatial translations, rotations, and scale changes, 2) high discriminative capability - this is achieved by introducing Fisher encoding within the CNN architecture to learn features which have small inter-class similarities and large intra-class compactness, and 3) multimodal hierarchical fusion - this is achieved through the regularization of semantic segmentation to a multi-modal CNN architecture, where class probabilities are estimated at different hierarchical levels (i.e., imageand pixel-levels), and fused into a Conditional Random Field (CRF)- based inference hypothesis, the optimization of which produces consistent class labels in RGB-D images. Extensive experimental evaluations on RGB-D object and scene datasets, and live video streams (acquired from Kinect) show that our framework produces superior object and scene classification results compared to the state-of-the-art methods.

일단 CNN과 RL을 떠나, Grasping Object를 위해 일단 필요한 것은 3D object에 대한 perception이다. robotics에서 가장 중요한 것은 일단 실제 환경을 보고 인식하는 거이므로 일단 2D이미지가 아닌 3D이미지 인것이다. 즉 RGB-D와 같은 3차원 이미지 정보를 인식하여 물체를 인식하는 문제이다. 2번째는 단순히 물체의 분류뿐아니라 3차원 위치, 방향정보를 인식해 내는 것이다. 이 문제만으로도 아직 많은 연구가 진행중인 것을 알 수 있다. 이 논문만 해도 공간불변(이동, 회전. 스케일 등) 신경망을 별도 기존의 CNN과 결합시켜 조합적으로 사용했다고 기술하고, 멀티모달 계층적 퓨전을 위해 멀티모달 CNN구조를 제안하고 있다. 또한 fisher encoding이란 기법을 적용하여, 분류유사성을 다루고 있다. 실제로 라이브 비디오를 통해, 기존의 방법보다 뛰어난 결과를 보여주고 있다. 

이뿐 아니다.저자의 최근 연구 비디오를 보면, Graspnet을 보여주고 있다. 


GraspNet: An Efficient Convolutional Neural Network for Real-time Grasp Detection for Low-powered Devices Umar Asif, Jianbin Tang, and Stefan Harrer, IBM Research Australia, IJCAI - 2018

좀 더 논문을 살펴보면, RGBD이미지를 위해 멀티모달을 위한 CNN구조를 보면 RGB를 위한 CNN들과 depth모달리티를 위한 CNN이 분리되어 학습되고, 두번째 FCN으로 연결되는 구조를 보인다. 

[PDF]Discriminative Multi-Modal Feature Fusion for RGBD Indoor Scene .




'인공지능로봇 > 로봇손지능' 카테고리의 다른 글

Real-Time Grasp Detection Using Convolutional Neural Networks  (0) 2018.11.13
Use case  (0) 2018.11.13
:
Posted by 고경철(kckoh)

이 논문은 무려 99회의 인용횟수를 기록한 CNN을 이용한 실시간 파지에 관한 유명한 논문이다. 

[PDF]Real-Time Grasp Detection Using Convolutional Neural Networks

https://research.google.com/pubs/archive/43875.pdf

J Redmon 저술 - ‎99회 인용 - ‎관련 학술자료Real-Time Grasp Detection Using Convolutional Neural Networks ... We evaluate on the Cornell Grasp Detection Dataset, an .... single, efficientpipeline.

Joseph Redmon1 , Anelia Angelova2
1University of Washington 2Google Research

!. 서론
센서를 이용하여 환경을 이해(인식)한다는 것은 지극히 어려운 일이다. 우리가 환경을 이해할 때는 일단 주어진 영상을 세그먼트로 나누고, 각각의 세그먼트를 구별하여 인식한다. 그러나 물체가 겹쳐지기도 하고, 형태가 비슷한 물체간의 모호성으로 인해, 시각인식 문제는 로봇시스템에 있어 아직도 난제로 남아 있다. 인간은 물체를 보면(novel objects) 직관에 의해 그 물체가 무엇인지 인식한다. 인식할 뿐아니라 그 물체를 핸들링하는 방법까지도 알아 낸다. 즉 어떻게 집을 것인지 어떻게 놓을 것인지 등을 알아 낸다. 그러나 기계가 이일을 해내기 위해서는 아직 인간과 커다란 갭을 이겨내야 한다. 이것이 기계지능을 연구하는 연구자들의 몫이다. 파지인식을 연구하는 사람들은 물체를 보고 어떻게 잘 집을 수 있는지 하는 문제를 연구한다. 
 일단 데이터셋으로는 이 분야에서 코넬 파지 감지 데이터셋(Cornell Grasp detection Dataset)이 있다. 그림은 이를 보여준다. 

최근의 연구[1],[2]로는 13.5초만에 75%의 정확도를 가지고 돌아 가고 있다. 즉 이미지를 보여주면 13.5초만에 그리퍼를 어떻게 움직여야 하는지 알려주는 것이다. 이전의 연구 슬라이딩 윈도우를 사용하기 때문에 많은 시간이 소요된다. 이 경우 Single network을 사용하여 시간을 많이 줄였다. 초당 13 frmes을 처리할 수 있으며, 정확도는 88%에 달한다. 

2. 관련연구
일단 물체의 3차원 모델이 주어진 경우, 좋은 파지 위치를 알아내는 연구는 많이 있어왔다. [3]-[7]. 이러한 연구는 물체에 3차원 정보가 완벽할 때 유효하다. 그러나 물체에 대한 완전한 정보가 얻기 힘든 경우가 실제 상황에서 많이 발생한다. 떠라서 물체에 대한 완벽한 정보가 주어지지 않은 경우에 대해서서도 물체를 잘 잡을 수 있는 일반적인 접근 방법이 필요한 것이다. 로봇시스템은 물체 인식[8]이나, 감지[9][10], 매핑[11][12]등의 문제에서 일반적으로 RGB-D센서를 사용한다. 키넥트와 같은 RGB-D센서는 로봇이 3차원 환경과 반응하며 작동하기에 매우 훌륭한 깊이정보를 제공한다. 파지감지에 대한 최근 연구는 RGB-D데이터로부터 파지위치를 찾는 문제에 촛점을 맞춘다.[13] . Lenz등은  파지감지를 위한 컨벌루션 신경망을 성공적으로 사용하였다. 이 신경망은 슬라이딩 윈도우 감지 파이프라인에서 분류기로 작동한다.  

3. Problem description

일단 물체영상이 얻어지면, 그 물체를 안전하게 집어 들기 위한 적당한 방법을 찾아야 한다. 이를 위해 5차원의 정보가 필요하다. 그림과 같이 직각 사각형의 중심 위치에 해당하는 2차원 정보와, 방향, 그리고 높이와 폭이다. 

4. Grasp Detection with Neural networks

 Krizhevsky에 의해 제안된 AlexNet을 사용한다.[15]


5. Experiments and Evaluation
코넬 파지 데이터셋[19]은 240종의 물체 885개의 이미지를 담고 있다. 그리고 그라운드트러스 파지 레이블을 갖고 있다. 

- rectangle metric accuracy

6. 결과
- direct regression model


7. Discussion
- Image dataset에서 미리 학습된 효과가 미치는 영향
- RGB정보에서 B대신 Depth정보를 사용하는 효과 

8. 결론
Grasping detection과 object classification이 정확도를 유지하면서 결합될 수 있음을 보여줌. 

참고문헌
[1] I. Lenz, H. Lee, and A. Saxena, “Deep learning for detecting robotic grasps,” in Proceedings of Robotics: Science and Systems, Berlin, Germany, June 2013.
[2] Y. Jiang, S. Moseson, and A. Saxena, “Efficient grasping from rgbd images: Learning using a new rectangle representation,” in IEEE International Conference on Robotics & Automation (ICRA). IEEE, 2011, pp. 3304–3311. 
[3] A. Bicchi and V. Kumar, “Robotic grasping and contact: A review,” in IEEE International Conference on Robotics & Automation (ICRA). Citeseer, 2000, pp. 348–353. 
[4] A. T. Miller, S. Knoop, H. I. Christensen, and P. K. Allen, “Automatic grasp planning using shape primitives,” in IEEE International Conference on Robotics & Automation (ICRA), vol. 2. IEEE, 2003, pp. 1824–1829. 
[5] A. T. Miller and P. K. Allen, “Graspit! a versatile simulator for robotic grasping,” Robotics & Automation Magazine, IEEE, vol. 11, no. 4, pp. 110–122, 2004.
[6] R. Pelossof, A. Miller, P. Allen, and T. Jebara, “An svm learning approach to robotic grasping,” in IEEE International Conference on Robotics & Automation (ICRA), vol. 4. IEEE, 2004, pp. 3512–3518. 
[7] B. Leon, S. Ulbrich, R. Diankov, G. Puche, M. Przybylski, A. Morales, ´ T. Asfour, S. Moisio, J. Bohg, J. Kuffner, et al., “Opengrasp: a toolkit for robot grasping simulation,” in Simulation, Modeling, and Programming for Autonomous Robots. Springer, 2010, pp. 109–120.
[8] K. Lai, L. Bo, X. Ren, and D. Fox, “A large-scale hierarchical multi-view rgb-d object dataset,” in IEEE International Conference on Robotics & Automation (ICRA). IEEE, 2011, pp. 1817–1824.
[9] ——, “Detection-based object labeling in 3d scenes,” in IEEE International Conference on Robotics & Automation (ICRA). IEEE, 2012, pp. 1330–1337.
[10] M. Blum, J. T. Springenberg, J. Wulfing, and M. Riedmiller, “A learned feature descriptor for object recognition in rgb-d data,” in IEEE International Conference on Robotics & Automation (ICRA). IEEE, 2012, pp. 1298–1303.
[11] P. Henry, M. Krainin, E. Herbst, X. Ren, and D. Fox, “Rgb-d mapping: Using depth cameras for dense 3d modeling of indoor environments,” in In the 12th International Symposium on Experimental Robotics (ISER). Citeseer, 2010.
[12] F. Endres, J. Hess, N. Engelhard, J. Sturm, D. Cremers, and W. Burgard, “An evaluation of the rgb-d slam system,” in IEEE International Conference on Robotics & Automation (ICRA). IEEE, 2012, pp. 1691–1696
[13] A. Saxena, J. Driemeyer, and A. Y. Ng, “Robotic grasping of novel 
objects using vision,” The International Journal of Robotics Research, 
vol. 27, no. 2, pp. 157–173, 2008.
[15]  A. Krizhevsky, I. Sutskever, and G. E. Hinton, “Imagenet classification 
with deep convolutional neural networks,” in Advances in neural 
information processing systems, 2012, pp. 1097–1105.
[19] “Cornell grasping dataset,” http://pr.cs.cornell.edu/grasping/rect data/ 
data.php, accessed: 2013-09-01.


'인공지능로봇 > 로봇손지능' 카테고리의 다른 글

RGBD Object labeling using CNN  (1) 2018.11.13
Use case  (0) 2018.11.13
:
Posted by 고경철(kckoh)
2018. 11. 13. 10:26

Use case 인공지능로봇/로봇손지능2018. 11. 13. 10:26

유스케이스(Use case)
시스템 사이에서 교환되는 메세지의 중요도에 의해 클래스나 시스템에 제공되는 고유 기능 단위이며, 상호 행위자 밖의 하나 혹은 그 이상의 것이 시스템에 의해서 실행되는 행위를 함께 함


출처: https://terms.naver.com/entry.nhn?docId=2072258&cid=42345&categoryId=42345





use case: 각 행위자의 시스템에 대한 용도

scenario: 각 유스케이스에 대하여 시나리오를 작성한다. 시나리오는 사건의 흐름과 과정을 나타내며 시스템과 행위자들이 주고 받는 정보 뿐만 아니라 상호 작용이 발생하는 상황, 환경, 배경 등을 포함할 수 있다. 
유스케이스 기법은 사용자의 요구사항을 검증하는데 활용 된다. 시스템의 기능적인 요구를 결정하고 기술하여 시스템 개발자와 고객 사이의 합의를 도출할 수 있도록 돕는다.
사용자의 관점에서 시스템의 요구사항을 제공하며 시스템 의 범위를 나타내주어 일정과 예산을 추정하는데 도움을 준다.

유스케이스 다이어그램
- 포함 관계(include)
- 확장 관계(expansion)


유스케이스 시나리오에 대한 표준은 없으나 유스케이스 시나리 오에는 일반적으로 유스케이스 이름 및 개요, 유스케이스를 수행 하는 행위자, 선행 및 후행조건, 유스케이스의 이벤트 흐름이 포함된다. 시스템이 해당 유스케이스를 수행하기 위한 방법과 같은 구현 방 법에 대해서는 설명하지 않도록 한다.

문제설명서(Problem Statement)

http://nlp.chonbuk.ac.kr/SE/ref-usecase-UML.pdf


:
Posted by 고경철(kckoh)
2018. 11. 13. 10:00

02885596_[1주차] 강의를 시작하기전에 C언어 강좌2018. 11. 13. 10:00

최근 급속하게 발전하는 전자 정보통신 기술의 발달에 따라 우리 주변의 거의 모든 제품이 컴퓨터화 되고 네트워크화 되고 있다. 이러한 정보통신 시대에 프로그래머와 같은 소프트웨어 개발자의 역할은 매우 크다고 볼 수 있다. 전세계 컴퓨터 프로그램 가운데 95%가 C언어로 작성되어 있다고 한다. 이 강의는 C언어를 보다 효율적이고 유연하게 사용하기 위함이다. 또한 이 강의를 컴퓨터의 구조를 이해하고, C 언어에 대한 구조적 이해를 돕고자 한다. 사실 수많은 C언어 관련 서적이 나와 있지만, 다음과 같은 문제점을 발견할 수 있었다. 

첫째, 실제 응용프로그램에 필요한 부분에 필요한 오류를 잡는 방법에 대한 설명이 충분히 안되어 있다. 이유는 컴퓨터의 원리, 연산구조 등에 대한 이해없이는 이러한 오류의 원인을 설명하기 어렵기 때문이다. 둘째, 너무 추상적이다. 예를 들어 단어식 영어공부를 살펴보자. 단어라는 것은 대부분 의미가 추상적이고, 설명하기가 애매한 경우가 많다. 따라서 사전을 가지고 아무리 단어를 외어도 실제 문장 중에 활용하기 어려운 것처럼, C언어도 단어중심으로 공부하면 실제 응용력이 떨어지는 것이다. 그러나 대부분의 C언어 입문서들을 보면, 변수, 제어문, 배열, 포인터, 구조체의 순으로 설명하지만, 나열식이고 서로 연결성이 떨어진다. 따라서 프로그래밍언어도 우선 한 줄이라도 자기가 잘 쓸 수 있는 문장패턴을 많이 연습하여, 활용하는 능력을 배양하는 것이 필요하다.

마지막으로, 논리, 알고리즘에 대한 설명을 너무 등한시 하고 있다. 이는 이미 알고 있는 문장만 반복하는 것은 창의적이지 못하다. 언어라는 것이 결국에는 생각의 논리적 표현인 것처럼, 컴퓨터언어도 논리, 알고리즘의 구현인 것이다. 필자가 학생들을 가르칠 때, 막상 배열을 가르치고, 배열의 합을 구하는 작성하라고 시켰을 때, 오히려 배열은 이해해도 합을 구하는 알고리즘 자체를 몰라 쩔쩔매는 것을 많이 볼 수 있었다.

결론을 말하고 싶다. C언어는 결코 어렵지 않은 하나의 평범한 컴퓨터 언어이다. 그렇다고 다른 언어처럼 더 우수한 언어도 아니라고 생각한다. 베이직이나 파스칼처럼 다른 언어도 C언어가 갖고 있는 장점을 이미 수용하고 발전하고 있기 때문이다. 그러나 필자는 무조건 C언어를 배우라고 강조하고 싶다. 이는 마치 영어가 전세계의 공용어화 되었듯이, 이미 많은 컴퓨터 프로그래머가 이미 사용하는 프로그래밍언어의 표준이 되고 있기 때문이다.

C 언어를 쉽게 접근하기위해 다음의 3단계 접근방법을 제안한다.

1단계로, 작은 프로그램부터 먼저 작성하고 실행시켜 본다. 짧은 문장 중에 단어를 익히듯, 간단한 예제 중에서 C언어의 기초적인 문법을 공부한다. 그리고 이 단계에서 예제프로그램은 컴퓨터 구조와 연산원리를 이해하는 데 집중한다. 그러면, C언어 문법이전에 논리적 사고를 할 수 있고, 컴퓨터에 대한 이론 및 원리의 기초가 다져질 것이다.

2단계로 이제 문법적으로 접근한다. 문법도 나무를 보는 나열식이 아니고 전체 숲을 보는 구조적 원리의 시각을 갖도록 공부한다. C에는 문법의 철학이 있다. 이 철학을 분명히 알면, 어떤 문장이 문법적으로 가능한지 정확히 예측할 수 있다. 따라서 본 서는 세세한 문법보다는 문법의 철학을 설명하려고 주안점을 둔다. 문법적 규칙을 알면, 기존 코드를 최적화하는 것이 가능하고, 같은 문장이라도 다른 표현을 써서 작성할 수 있는 유연성을 갖게 된다.

3단계로 이제 좀 긴문장의 프로그램, 알고리즘 입장 그리고 소프트웨어 공학적 측면에서 공부한다. 사실 알고리즘과 소프트웨어 공학은 C언어와는 완전히 다른 이야기이다. 이는 수학적 기반과 공학적 기반 등을 요구하기 때문이다. 그러나 이의 연결이 무척 중요하다. C언어는 알면서, 문제를 못 풀면 소용없고, 문제를 잘 이해하면서 이를 프로그램으로 구현 못하면 그 또한 소용없는 일이다.

이러한 과정을 적용하기 위해 본 강의도 기초편, 문법편, 응용편으로 구성하며, 기초편에서는 예제를 통한 컴퓨터이해, 문법편에서는 문법적 고찰, 그리고 응용편에서는 응용프로그램을 통한  알고리즘 설명, 소프트웨어 공학의 소개 등에 관한 내용으로 구성하고자 한다. 

많은 학생들이 C 프로그래밍 하면 이러한 컴퓨터 또는 전자 전공자만이 접근할 수 있다고 생각한다. 그러나 본 강의를 통해, 이제 모든 분야에서 알아야할 도구가 C언어라는 자신감을 갖기를 바란다. 컴퓨터 언어란 그냥 말 그대로 컴퓨터용 언어인 것이다. 정확히 말해, 인간의 지식이나 생각, 사고 등을 컴퓨터에게 지시하는 명령어의 조합인 것이다.  컴퓨터시대를 살아가는 우리가 어떠한 전공이냐에 관계없이 컴퓨터 언어를 배워야 하는 이유가 여기에 있다. 그리고 많은 컴퓨터언어 중에서도 C언어를 알아야 하는 이유도 설명하였다.

이 강의를 통해 최대한 쉽고 또한 원리적으로 C언어를 설명하고자 한다. 저자의 희망은 이제 C언어는 쉽다라고 여러분이 느끼는 것이다. 여기에는 한가지 조건이 있다. 그 것은 일단 컴퓨터와 친해져야 하는 것이다. 그리고 또한 노력하는 것이다. 물론 노력에는 대가가 있어야 신이 나듯이, 그 노력에 대한 대가를 이 강의가 제공할 수 있는 기대한다.



강의를 시작하기 전에

 

   C언어는 한마디로 매우 간단하고 배우기 쉬운 프로그래밍 언어이다. 단지 여러분이 포인터 등 여러 가지 개념에서 어려움을 느끼는 이유는 컴퓨터구조에 대한 이해가 부족하기 때문이다. 시중에 많은 C언어에 대한 서적이 많이 나와있지만, 주로 C문법에 치중할 뿐, 컴퓨터의 구조나 작동원리를 같이 설명한 책은 드물다. C프로그램은 시스템 프로그래밍 언어이므로, 컴퓨터의 구조와 작동원리를 같이 이해하는 것이 필요하다. 그러나 컴퓨터 구조론과 같이 컴퓨터의 구조에 대한 전문서적은 난해하거나 이론 중심적인 경우가 많다. 이 강의는 C언어 자체보다는 컴퓨터의 구조와 작동원리를 이해하는 데, C언어를 가지고 설명하였다. 물론 C언어의 프로그래밍 기법도 같이 설명한다. 따라서 C언어의 구조와 컴퓨터의 구조를 동시에 이해하도록 함으로써, 시스템 프로그래밍을 하는데 보다 도움이 되도록 하였다.

이 강의에서는 용어를 설명할 때, "운영체제(operating system)"과 같이 번역된 용어가 큰 무리가 없을 때, 번역된 용어를 사용하였고, "오버플로우(overflow)"와 같이 번역에 무리가 있거나(overflow를 "범람"이라고 번역하는 것과 같이), 외래어 표기가 우리말로 자리잡은 경우(예: 컴퓨터), 외래어 표기를 사용하였다. 그리고 unsigned char형과 같이, C프로그램에서 사용되는 키워드의 경우, 그대로 영어 문자를 사용하였다.

다음은 예제 프로그램에 대한 설명이다. 모든 예제 프로그램의 매 줄마다 줄의 맨앞에 1:, 2: 등과 같이 번호와 콜론(colon)을 사용하여 줄의 번호를 표기 하였다.

 

1: void main()

2:{

3:}

 

"숫자:"는 해당 줄을 지정하기 기호일 뿐 다음과 같이 실제 코드에는 사용하지 않는다.

 

void main()

{

}

 

   모든 프로그램의 실행은 Visual C++6.0컴파일러를 사용하여 수행하였다. 다른 C컴파일러로는 터보C6.0이나, Borland C 등도 있으나, Visual C+6.0이 보다 많은 사용자들에게 보편화되는 추세라고 판단되어, 이 컴파일러 환경에서 설명하였다.

이 강의는 모듈화 프로그래밍 언어인 C언어에 대해 설명한다. 사실 C언어에서 객체지향 언어인 C++언어로 넘어가는 추세이지만, 실제 많은 응용프로그램이 아직 C언어로 작성되고 있고, C++컴파일러 또한 C언어로 작성된 하나의 응용프로그램이기 때문에, C언어문법 및 C언어로 작성된 프로그램 원리를 설명한다. C++에 대한 전문서적이 많으므로, 이 언어에 관심이 있는 독자는 C++전문서적을 참고하기 바란다. 

이 강의는 다음과 같이 구성된다. 먼저 이책은 C언어를 이해하는데 매우 기본인 출발점이 되도록 쓰여진다. 두번째 목적은 독자들에게 C프로그램을 이해를 시키고 동시에 컴퓨터 구조에 대해서도 알게 하려고 한다.

따라서 프로그래밍에 관련한 기본적인 지식에 대해서 먼저 설명한다. 2주차에서는 컴퓨터, 프로그래밍언어, 운영체제 등 전반적인 환경에 대해 설명한다. 3주차에서는 데이터를 저장하는 메모리에 관해 설명한다. 4주차에서는 컴퓨터가 표현하는 원리에 대해 설명한다. 5주차에서는 정수의 산술연산 원리에 대해 설명한다. 6주차에서는 논리와 비트연산을 통해 논리연산의 원리를 설명한다. 7주차에서는 실수의 표현 및 연산에 대해 다룬다.

다음으로 8주차부터는 본격적으로 C문법에 대해 다룬다. 문법도 나무를 보는 나열식이 아니고 전체 숲을 보는 구조적 원리의 시각을 갖도록 공부한다. 8주차에서는 C연산자에 관해 다룬다. 9주차에서는 입출력함수에 대해 다룬다. 10주차에서는 알고리즘의 틀이 되는 제어흐름에 관련한 문장형태에 대해 설명한다. 11주차에서는 C언어에서 중요한 개념인 배열과 포인터의 개념을 다룬다. 12주차에서는 프로그램 모듈화의 핵인 함수에 관해 다룬다. 13주차에서는 객체화의 틀이 되는 구조체에 대해 다룬다.

마지막으로 응용프로그램을 통해, 알고리즘의 중요성에 대해 알아보고, 소프트웨어 공학의 철학에 대해 소개한다. 14~15주차에서는 몇가지 응용프로그램을 살펴보고, 16주차에서 소프트웨어공학을 요약정리한다. 


  본 강의의 목표

 


1) 컴퓨터 프로그래밍 입문자에게 보다 이해하기 쉽게 컴퓨터의 구조를 설명하고 연산 원리를 공부하는 데 있음.


2) 실제 응용프로그램 개발시 자주 발생하는연산오류나 논리적 오류의 원인을 원리적으로 설명하고, 오류를 진단하고 교정하는 데 길잡이가 될 수 있도록 함.


3) C 문법을 체계적으로 정리하고, C의 문법적 철학을 이해함으로서 보다 유연하고 간결한 프로그램을 작성하고 자하는 개발자를 위한 전문지식을 전달하고자 함.

4) 보다 많은 예제 프로그램 제공을 위해, 문법은 외우는 것이 아니라, 저절로 익혀지는 것이라는 느끼게 하는 함.

5) 다가오는 미래 자동화사회에 핵심이 되는 정보통신 기술자가 되기위한 프로그래밍 기술을 제공하고자 함.

6) 모든 분야에서 컴퓨터를 이용하여 문제를 푸는데 도움이 될 수 있는 실제적 C프로그래밍 원리를 설명함.

7) 스스로 프로그램을 창의적으로 작성할 수 있는 기반을 제공함.


:
Posted by 고경철(kckoh)