달력

11

« 2018/11 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30










[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)

 책소개





본 서는 4차산업혁명시대를 맞아 과연 우리가 어떠한 환경을 맞게 될 것인가, 더 나아가 사회는 어떻게 바뀔 것인지 미시적 및 거시적 관점에 쓰여졌습니다. 본 서의 집필진은 지난 10여년간 주도적으로 국가 R&D프로젝트 기획 TFT활동에 참여한 바 있으며, 이 기간을 통해 얻은 수많은 정보와 자료를  담아보았습니다. 혹자는 말합니다. 100여년전 2차 산업혁명의 물결속에 국가적 방향을 쇄신할 기회를 잃고 국난을 맞았던 뼈저린 과거가 다시 4차산업혁명시대를 맞아 위기이자 기회로 우리에게 다가오고 있습니다. 본서를 통해 우리가 직시해야할 현실을 다시한번 목도하고, 국가정책, 기업투자, 미래 인력양성 대책을 철저히 전략적 준비해야할 때라고 믿으며 본서를 적극 추천합니다.




[책 소개]

로봇, 현재에서 미래를 본다

걸어다니는 로봇, 인간과 대화하며 일상을 함께하는 로봇은 더 이상 영화 속 이야기가 아닙니다. 이 책은 현실로 다가온 로봇의 진화를 로봇 산업을 중심으로 담았습니다. 인간의 생활 속에 스며들, 즉 우리 삶의 모든 순간을 함께하게 될 로봇과의 미래를 조망해 봅니다. 로봇이 직업에 미칠 영향, 산업별 로봇의 이용 모습, 로봇 기업체들의 움직임, 그리고 국제로봇전시회의 후기를 담아 동향을 포착하고 같이 고민해 보아야 할 문제에 대한 화두를 던져 봅니다. 이 책이 앞으로 다가올 변화의 해일을 막연하게 기다리는 것이 아닌 그것을 분석하고 대비하는 기회가 되기를 바랍니다.

[인터넷 교보문고 제공]

[저자 소개]


저자 : 고경철
저자 고경철(高炅哲, 1960년 12월 8일~, 서울 출생)은 연세대학교 기계공학과를 졸업(1982)한 후, KAIST 기계공학 석사(1984) 및 정밀 공학 박사 학위(1994)를 받았다. LG전자(주)를 거쳐, LG산전(주)연구소 로봇 연구실장을 역임하면서 산업용 로봇 개발을 총괄(1984~1998)하였다. 선문대에서 정보통신공학과 교수로 근무(1998~2016)하며 ㈜고영테크놀러지 검사장비 개발에 적극적으로 기여하였다. 현재 KAIST 전기 및 전자공학부 연구교수(2016~)로 재직 중이며, 머신러닝 기술을 기반으로 한 로봇 지능 연구를 하고 있다. 로봇 산업이 향후 제조업 중심에서 서비스 로봇 중심으로 교육 · 의료 · 국방 등 전 산업으로 확대될 것을 대비하여, 국가적 로봇 산업 육성을 위한 정책 연구, 지능형 로봇 기획 및 평가위원으로도 적극적으로 활동(2003~)하고 있다. 2008년 대한민국 로봇대상 장관상을 수상한 바 있다.

저자 : 박현섭
저자 박현섭(朴賢燮, 1962년 4월 15일~, 서울 출생)은 서울대학교 기계설계공학과를 졸업(1984)한 후, 생산공학 박사 학위(1989)를 받았다. 삼성전자 근무(1983~2003)를 통해 VCR DECK 무인 자동 조립라인, 반도체 웨이퍼 반송 로봇, 광통신 부품 조립 시스템 등 로봇을 활용한 공장 자동화 시스템을 개발하였다. 한국생산기술연구원(2006~2013)에서는 외골격 형태의 보행 재활 로봇과 고령 케어 로봇을 연구하였다. 한국산업기술평가관리원 로봇 PD 근무(2013~2016)를 통해 산업부 로봇 R&D 과제기획 및 정책 수립 지원 업무를 수행하였다. 현재 KAIST 연구교수(2017~)로 재직 중이며, 휴보LAB에서 정부 R&D 과제인 휴머노이드 로봇 개발 사업 연구에 참여하고 있다. 평창올림픽 로봇지원단 감독(2016~2018) 업무를 수행한 바 있으며, 공학한림원의 ‘2020년 미래 100대 기술과 주역(서비스 로봇 분야)’으로 선정(2013.12)된 바 있다.

저자 : 황정훈
저자 황정훈(黃廷薰, 1974년 12월 8일~, 서울 출생)은 연세대학교 기계공학과를 졸업(1997)한 후, 한국과학기술원 기계공학 박사 학위(2007)를 받았다. 산업자원부의 차세대 로봇 전략 기술개발 사업 지원을 위하여 전자부품연구원의 차세대 로봇 전략 기술지원단에서 기획업무를 담당(2007~2009)하였고, 지능 로보틱스 연구 센터에서 로보틱 수술 도구 기술개발, 구호 작업을 위한 로봇 기술개발, 재난대응 로봇을 위한 시각 기술개발 등을 수행(2009~)하고 있다. 로봇 기술의 학술적 교류 증진을 위한 학술 활동(2012~)과 함께 로봇 산업이 국가 산업 경쟁력 확보 및 신규 산업 육성에 기여할 수 있도록 국가 로봇 산업 육성을 위한 로봇 연구 개발 기획, 정책 연구 및 국가 로드맵 수립에 기획 및 실무위원으로도 적극적으로 활동(2008~)하고 있다. 2010년 대한민국 로봇대상 장관상을 수상한 바 있다.

저자 : 조규남
저자 조규남(曺圭南, 1963년 12월 24일~, 서울 출생)은 고려대학교 경상대학 경영학과를 졸업(1989)한 후, 고려대학교 컴퓨터과학기술대학원 최고위과정(2005)을 거쳐 KAIST 미래전략대학원 과학 저널리즘 석사과정에 재학 중이다. ㈜큐닉스컴퓨터 기획조정실을 거쳐, 메이인터내쇼날 대표, 썬라이즈시스템 대표이사를 역임했다. 중앙일보 비즈넷타임즈 자문위원, 전자신문 신사업부장을 거쳐 로봇신문을 창간(2013)해 현재 사장 겸 발행인을 맡고 있다. 대한전자공학회 산업전자소사이어티 기획이사, 한국재활로봇학회 홍보이사, 한국로보컵협회 상임이사, ITC로봇문화협회 상임이사, 필드로봇소사이어티 감사, 대한인터넷신문협회 사이언스위원장, 중국 카렐차페크상 위원회 부주석을 맡고 있다. 대한인터넷신문협회 과학 부문 최우수기자상(2017)을 수상한 바 있다.

[인터넷 교보문고 제공]




[목차]

1장. 로봇 시대의 서막 
1. 로봇, 공장 밖으로 나오다 
2. 로봇이 가져올 혁명적 변화 
3. 로봇 시대에 고민해야 할 것들 

2장. 로봇 톺아보기 
1. 로봇 산업은 무엇인가? 
2. 로봇 성능 
3. 로봇 기술, 어디까지 왔나? 
4. 로봇 산업의 현주소 
5. 우리의 경쟁국은 어떻게 움직이고 있나? 

3장. 글로벌 로봇 기업 사례 
1. 제조용 로봇 
2. 서비스 로봇 
3. 의료용 로봇 
4. 물류/운송 로봇 
5. 로봇플랫폼 

4장. 인공지능 로봇이 바꿀 미래상 
1. 산업은 어떻게 발전할 것인가 
2. 사회는 어떻게 바뀔 것인가 
3. 어떻게 준비해야 하나 

5장. 우리는 어떻게 대비해야 하나 
1. IREX 2017을 다녀와서 
2. 인간과 경쟁하며 공존하는 로봇 
3. 신기술은 어떤 환경을 필요로 하나 
4. 맺으며…

[예스24 제공]


:
Posted by 고경철(kckoh)