우리 나라 시중에 나오는 대부분의 프로그래밍 강의나 교재들은

 

기본서가 대부분이지 않나 무슨 언어 교재 하나 목차를 보면

 

언어 만들어진 배경, 변수, 타입, 함수, 객체, 상속, 파일 입출력 정도는 다 있고

 

여기다가 조금 더 +알파만 하고 끝나는게 대부분이더라

 

 

 

 

내가 우리나라 교재나 자료에서 너무 답답하던게

 

이런 기초적인 내용들만 가지고 파는 책들이 대부분이고

 

'프로젝트로 배우는 %#!$#'라면서 프로젝트 한다는 책을 보면

 

주사위 게임, 계산기, 크롤링해서 머신러닝 돌리기 같이 처음 언어 배우는 사람들에게야 연습하는데 도움되도

 

프로그래밍 기본적인 감각은 땟지만 실제 프로젝트 경험이 없는 나한태는 완전히 도움이 안된다고는 하기는 어려워도

 

그렇다고 그런 책들 보고 연습해서 준비해도 실제 경험해본 프로젝트니 포트폴리오라고 하기에는 민망한 내용들 밖에 없었다.

 

 

 

그냥 편하게 말하면 opencv를 처음에 빌드해서 쓰려고하는데 cmake로 경로 설정해서 makefile 만들고 어째저째진행했는데 cmake가 뭐고 makefile이 뭐고, 파이썬으로 opencv를 쓰면 파이썬 래퍼니 뭐니 하는것들을 제대로 설명해주는 책을 거의 보질 못했엇다. 파이썬에서 느린거 c/c++로 구현하면 그걸 어떻게 쓸수있게 햇냐.

 

 

내가 어디 박혀서 독학만 하느라 나만 모르는 걸수도 있지만

 

기본적인 내용 말고 실제 써먹을수 있는건 어디서 배우나 답답하던 차에 이책을 찾게 되었다.

 

이 책도 절반정도는 기본적인 내용이지만 절반은 너무 깊게 파고들지도 않으면서 기본서보다는 더 멀리 나간 내용들이다.

 

 

 

 

중간에 아는 내용도 많다보니 1 ~ 2시간 정도 쭉 봤는데,

 

thinker나 matplotlib까지는 보통 책들에도 자주 나오기는 하지만 실제로 뭔가 만드는듯한 예제들이 꽤 있고

 

동시/병렬처리 프로그래밍, 코딩 테스트에 관심없지만 공부하기엔 적당한 분량으로 자료구조와 알고리즘도 있다. 

 

 

특히 가장 마음에 드는 부분은 마지막에 사용자 정의 패키지/모듈 c/c++ 확장 모듈

 

이런 내용들까지 알려주는 프로그래밍 교재가 우리나라 책중에 이거말고 있는진 모르겠다.

 

 

 

 

우리나라 대부분 코딩 교재란게 클래스 만들고 조금만 더하고 끝나니까

오픈 소스봐도 빌드에서 막히고, 다른 뭔지도 모를 문제로 정말 삽질을 많이 했었다.

 

 

글만 잘 찾아보고 읽었어도 해맬 일이 훨씬 적었겠지만 그렇게까지 머리 좋지도 끈기도 없어서

이렇게 친절하게 이만큼이라도 알려주는 책이 있는게 어딘가 싶었다.

 

 

 

이책을 다 읽은지는 몇일 되기는 했는데

 

로봇 공학 개론 요약을 정리하느라 너무 미뤄버리다보니

 

이 책의 내용이 가물가물해졋다.

 

 

 

내가 왜 이책을 읽게 됬는질 생각해보면

 

처음 신호처리인가 제어공학인가 공부 할때 RLC 회로를 보게 됬는데

 

나는 전기전자를 전혀 배우지도 않은 상태다 보니 푸리에 변환이니 라플라스 변환이니 왜하는건지,

 

전달함수가 뭐하는거고, 시스템응답을 어떻게 구해서 이 시스템이 안정하는지 등의 내용을 따라가는것만해도

 

너무 벅찼었다. 그래도 이 내용들은 신호와 시스템, 제어 공학에서 한정되서 공부하면 됬지만

 

 

RLC를 처음봤을때 이게 뭔지도 몰랐고 (지금은 알지만) 전기 수동 소자에 대한 내용인 만큼

 

노베이스 상태에서 아무리 봐도 이해할수가 없었다.

 

 

이거 말고도 아 맞다 미분 방정식이 있었는데, 왜 미분 방정식으로 스프링이니 진자 운동을 표현해서 푸는지도

 

전혀 노베이스 배경지식이 없는 상태에서 공부하다보니 전혀 몰랐다.

 

아무튼 진자 운동을 미분방정식이 어떻고를 억지로 외워서 넘어가긴 했는데 시간 지나면서 다까먹었다.

 

 

 

 

그러고 시간이 지나서 미분 방정식이 뭐하는건지, 공업 수학이 뭔지에 대해서 그 당시보다는 조금 알게 되면서

 

공부하기는 해야하는데 막상 공업 수학 책을 펼 여유가 없다보니 한번 가벼운 마음으로 볼수 있는 책이 없을까 찾아보다가 찾은책이 이거다

 

 

 

최근에 전기 공부하면서도 스토크 정리, 가우스 정리 등에서 선적분, 면적분도 나오는데 시험에는 나오는 공식만 외우면 됬지 원리를 전혀 없이 이해 없이 공부했었다보니

 

마침 미적분을 공부해야되기도 했고, 미적분이랑 물리 사이에 어떤 연관이 있을지 조금 더 알고 싶어서 보게 되었다.

 

 

 

이 책 중간 중간에는 내가 아는 내용들도 꽤 많아서 금방 금방 넘어가면서 보긴 했는데

 

이 책의 장점이자 단점은 중요한 공식의 유도과정이 어떻게 되는지 일일히 설명해주는 부분이었다.

 

내가 고등학교를 안나오고 검시로 통과하면서 혼자 독학만 했지 제대로 배운적없는 삼각함수 사칙 연산 공식이나 삼각함수의 미적분같은 부분은 일일히 유도해주니까 어쩌다가 이런 공식이 나오게 되었는지 이해하기는 너무 좋았다.

 

하지만 이런 정리 과정들이 너무 많아서 옆에다가 종이 놓고 일일히 따라 적어가며 하는게 아니라 눈으로만 보면서 가니 너무 길어서 따라갈 수가 없었다.

 

아무튼 왜 중요한 공식, 요약, 정리가 유도되었는지 이해하는데는 정말 좋지만 한번에 다보기에는 좀 부담스럽긴 했다.

 

 

 

그리고 대망의 물리파트, 이책을 보기전에도 어쩔수 없이 미방에 대해서 잠깐 본적이 있긴 해서 다까먹기는 했지만 일반해 특수해 초기조건이 뭔지 정도는 기억하고 있었다.

 

물리 앞에서 부터 뉴턴의 운동 법칙을 미분 방정식으로 변형하고 해를 구해나가는 과정을 거치면서 물리 현상을 어떻게 예상해 내고 단순한 모델에서 다른 요소도 반영하고 직선 운동만 아닌 회전 운동에 대해서도 미방을 만들고 유도 과정들을 정리해 보면서

 

대학교에서 공업 수학이나 물리 수업을 전혀 들은적은 없었지만 왜 미방 미방 하는지는 전보다는 조금은 알겠더라

맨 뒷파트 부분은 뭐였는지 까먹었는데 눈으로만 보기에는 전혀 따라갈수가 없어서(필기해가면서 해도 힘들었겠지만) 그냥 간단하게 패스했다.

 

어짜피 다음에 공업 수학 공부할때 복습하면서 그 때가면 더 이해하겠지 싶다.

 

 

아무튼 이 책이 고등학교 대상으로 쓴 책이다보니 (대학교에서 배울법한 내용을 쓰기도하고, 쉽지는 않지만) 어떻게든 중간에 휙 뛰어나가는 거 없이 고민하거나 앞의 내용을 다시 보면 따라갈 수 있도록 신경 써준 부분이 좋았다.

1. 로봇 분류

- 매니퓰레이터 : 엔드 이펙터(로봇의 맨 끝 손가락 같은 부분)로 물체를 집거나 작업하는 로봇

- 이동 로봇 : 고정된 위치에 있는 매니퓰레이터와 달리 바퀴나 다리 등으로 이동하는 로봇

-> 구성요소, 좌표, 기구학, 동력학, 제어 시스템 등 전반에 대한 이해 필요

분류 로봇 종류 특징
구동법 전기식 간단, 저렴, 저출력 -> 과부하 x  , 깨끗, 정확, 편한 관리     - 회전 모터, 리니어 모터
유압식 복잡, 고가, 고출력 -> 과부하 ok, 오염, 고속, 관리 불편     - 큰힘이 필요할 때 사용
공기압식 복잡, 고가, 고출력 -> 과부하 ok, 깨끗, 부정확, 편한 관리  - 화재 위험 시 사용, 부정확 but 저렴
작업 공간 직교좌표형 쉬운 제어
원통형 직교좌표에 비해 기구학 설계 간단
원형 구조 간단
SCARA형 저렴, 빠름, 조립 작업에 이용
다관절형 최소 공간에서 최대 작업 
제어방법 서보제어 피드백을 통해 추종(servo). - 서보 제어 ex) 프린터, DVD, 카메라 등
비서보제어 피드백없이 입력 한대로 동작하는 경우 - 비서보 제어 ex) 선풍기, 믹서기, 환풍기
자유도 매니퓰레이터 6 DOF : x, y, z, roll, pitch, yaw
이동로봇 3 DOF x, y, theta

* 작업 공간에 따른 로봇 형태들

Scara형

* 이동 형태에 따른 분류

 

 

 

 

2. 로봇 구성 요소

- 매니퓰레이터, 엔드 이펙터, 구동기, 센서, 제어기 등

기구부 기계/기구 프레임, 바퀴(+바퀴 축), 베어링, 기어, 벨트, 엔드이펙터
HW부 전기/전자 SBC, 제어기, 전원부, 구동기, 센서
SW부 프로그램 펌웨어(모터/센서 제어), OS, 응용 SW

https://kingjjin.tistory.com/21

구성요소  
매니퓰레이터 구성 : 관절(조인트), 링크(관절 연결), 엔드 이펙트
동력 : 전기, 유압, 기압
조인트 : 직선 운동(primistic 조인트), 회전 운동(revolute 조인트)의 힘을 전달
엔드 이펙터
(말단 조작기)
매니퓰레이터 끝단에 설치된 작업 장치
ex) 그리퍼(열고 닫혀 손가락처럼 집음)
구동기 전기/유압/기압 등으로 로봇에 동작을 주는 모터/실린더 등의 장치
ex) 리니어 엑추에이터, 회전식 엑추에이터(대표적으로 모터)
* 하단에 모터 추가 정리
센서 물리량을 전기적인 신호(아날로그/디지털)로 변환하는 소자/회로 ex)광, 이미지, 초음파, 위치 센서 등
제어기 지정한 작업을 하도록 센서 측정 값으로 구동기를 적절하게 제어하는 장치

* 엔드 이펙터의 종류

http://www.aistudy.co.kr/robot/end_effector.htm

2.1 모터의 종류

- 로봇의 구동 장치로 사용

- 전원에 따른 모터 분류

전원 구분
DC 모터 소형, 고속, 큰 토크 부하에 따라 큰 속도 차, 어려운 속도 가변, 짧은 수명(브러시)
AC 모터 큰 토크, 저가,  쉬운 속도 가변 느린 회전

- 전원 및 구조에 따른 분류

1차 분류 2차 분류 3차 분류 특징
DC 모터 브러시 권선 큰 기동 토크, 토크 ∝ 전류 ∝ 1 / 회전속도(직권 : T ∝I^2 ∝ 1/n^2)
<-> 브러시에 의한 노이즈, 수명 저하 등 손실
타여자, 직권(무부하 운전시 위험, 속도-토크 큰변화:전차), 분권(정출력, 무여자 운전 시 위험), 복권(가동 복권 , 차동 복권 : 수하 특성)
속도 제어 : 계자제어(정출력 제어), 전압(광범위), 저항 (효율x)
* 전압 속도 제어 : 워드레오너드(전압제어), 일그너(플라이휠, 큰부하)
영구자석
브러시리스
(BLDC)
트랜지스터 - 브러시, 정류자 x -> 긴 수명(마모 x)
- 반도체 소자로 통전/정류하며 노이즈 발생 x
- 브러시 모터와 특성은 같으나 효율은 약간 저하
싸이리스터

AC 모터
유도 모터 공통 - 고정자로 생성한 회전 유도 자계로 회전자를 회전
- 간단, 저렴, 튼튼, 경부하에선 효율이 낮음
단상 유도 - 단상이라 회전 자계 x -> 기동 토크 x -> 혼자 회전 x
  => 외력(보조 권선, 기동 권선으로 기동) -> 토크 발생 -> 회전
- 반발기동(DCM와 비슷한 권선과 정류자, 가장 큰 기동토크), 반발 유도(회전자 권선 2개, 큰 기동토크/속도변화), 콘덴서 기동(콘덴서를 삽입해 주권선과 보조권선 사이 회전자계 발생, 중간 기동토크), 분상기동(위상 다른 두 전류로 기동, 적은 T), 셰이딩 코일(가장 작은 기동T)
3상 유도 - 단상 유도M보다 간단,소형, 보통공장용, 소용량 농형/대용량 권선형
농형(다람쥐바퀴) : 회전자튼튼,좋은운전성능,큰기동전류 
권선형 :  슬립링통해 2차저항으로 기동제어, 회전자권선으로복잡, 큰기동토크, 대용량
동기 모터 단상 동기 회전자(영구자석), 동기 속도, 역률 1, 큰힘, 속도변화어려움 
3상 동기
유니버셜 모터 직/교류 모두 사용, 큰 기동 토크, 쉬운 고속 회전 <-> 큰 노이즈, 짧은 수명
서보 모터 회전형 DC 서보 DC모터와 유사하나 엔코더를 통한 피드백을 통해 정교, 자동제어
AC 서보
스태핑 입력 펄스 신호 수로 회전 각도, 주파수로 회전속도 제어
리니어 모터 모터 회전 -> 선형

 

* 직류 전동기 부하 전류와 속도/토크 특성곡선

https://m.blog.naver.com/cwi1125/221160052987

* 모터 종류



DC 모터

BLDC 모터 - 브러시 대신 다이오드/TR이용


단상 유도 전동기 - 스스로 기동 못해 보조 권선 이용

3상 유도 전동기 - 고정자의 회전 자계로 회전

유도모터, 동기모터 비교 - 동기 모터는 자석의 토크로 회전

유니버셜(만능) 모터 - 교류원을 정류 후 사용

스태핑모터, 서보모터 비교 - 서보모터는 엔코더 위치 정보를 폐루프로 받음

스테핑 모터 - 펄스 신호 형태에 따라 제어

리니어모터 - 회전 운동을 직선 운동으로 변환

 

 

 

 

2.2 센서 종류

- 사람과 센서 시스템 비교(신호 전달 방향 ->)

사람 외부 환경 오감 신경 동작
센서시스템 외부 환경 센서(변환기) 전송로 처리기 엑츄에이터

 

- 센서 종류와 특징

검출대상 - 광센서 : 가시광선, 적외선, 자외선 등의 빛을 처리 가능한 양으로 변환하는 센서 -포토 다이오드(광 기전력 효과), Cds 셸(광도전 효과 : 반도체에 빛이 닿을 때 전자와 정공 증가 -> 전류 증가), 광전관, PSD 등
- 이미지 센서 :  CCD(전하결합소자), CMOS(상보 금속산화막 반도체를 이용한 액티브 픽셀센서)

- 온도(적외선) 센서 : 접촉형 - 작은 물체/원거리/고속 이동물체 측정 힘듬, 짧은 수명, 2000도까지,
                            저항 변화, 열전 현상이용 -> ex) 저항온도센서, 써미스터, 열전대, 바이메탈
                           비접촉형 : 작은 물체/원거리/고속 이동물체 측정 가능, 긴수명, 고온측정가능,
                            측정 대상의 적외선 측정 ->작은 크기, 높은 정확도, 디지털 출력
                           ex) 적외선 온도센서, 광 온도계 
 * 적외선 센서 : 적외선으로 온도, 압력, 방사선 등 물리량 측정

- 자기센서 : 자기 효과를 이용해 전기 신호를 만들거나, 바꾸기 위한 변환역활
 * 홀 효과(브러시리스 모터 회전 제어, 자계/전류 측정), 자기저항효과(포텐셜 미터), 자기저항효과(MR효과- 자기 인코더)

- 압력센서 : 스트레인게이지, 압전소자, 코일스프링 (기계식, 전자식, 반도체식, 실리콘 등)
- 근접 센서 : 자기, 광학, 초음파, 유도성, 용량성, 와전류 등을 이용
- 위치 센서 : 포텐셔미터(가변저항-직선/회전형), 엔코더(회전/선형 증감형, 절대위치형), 리졸버, 시간변위센서 등
- 진동(음파) 센서 : 세라믹스, 마이크로폰, 초음파 센서 등
* 초음파 센서 : 20kHz이상주파수이며 강한 지향성을 가진 초음파로 거리,두께, 움직임 검출 -> 거리/두께 측정, 비파괴 검사, 의료진단, 신호 처리 등(공중/수중/고체/특수환경용)
- 바이오 센서 : 생체 화학/미생물 반응 등으로 측정하는 센서 - 미생물/효소/나노바이오센서
- 그 외 : 가스 센서, 습도 센서 등
재료 반도체 센서, 세라믹 센서, 금속 센서, 미생물 센서
작동형태 능동 센서, 수동 센서
출력형태 아날로그 센서, 디지털 센서 등

* 센서 정리


cds 센서 -빛에 의해전류량 변화(광도전)

포토다이오드-빛이셀때역(광)전류증가

CCD - 필터가 해당 색상만 통과시켜 세기 측정, 모자익이미지 취득 ->처리후 사진

써미스터 - 온도에 따른 저항변화

홀 효과 - 전류가 흐를때 전도체에 수직으로 자장이 걸릴때, 전류와 자장에
수직하게 홀전압이 걸리는 현상 

홀 효과를 이용한 회전속도 측정
- 두 자석이 회전 시 홀 효과 센서에 전압이 걸릴때 측정


스트레인 게이지
- 압력을 전기 출력으로 변환하는 로드셀을 이용한 압력 센서

초음파 센서 - 발진기 -> 변조 -> 트리거 -> 수신 -> 측정 -> 출력

회전/선형 증감 엔코더-빛카운팅


절대 엔코더-그레이코드에 따라 각표시

 

2.3 제어기

- 지시된 작업을 할 수 있도록 구동기를 제어하는 장치 ex) 시퀀서, MCU

 

 

 

원래 욕심같아서는 좌표계, 기구학, 동역학 같은 내용들도 하고는 싶었지만 너무 양이 많기도 하고

대학으로 따지면 몇과목을 들어야 하는 로봇공학, 전기기기, 제어기, 센서 등의 내용을

한번에 볼수 있게 10페이지도 안되게 간단하게 나마 정리한거에 만족해야지.

+ Recent posts