profile 전문준 2000-09-08 12:27:36
2 272
안녕하세요
저는 로봇에 관심이 많은 사회 초년생입니다
지금 하고 있는 일은 설계사무실에서 컨베어설계를 합니다
뭐 설계는 제가 하는게 아니고 저는 도면 수정을 주로 합니다
C언어로 기계를 제어하는 것을 배울려고 합니다 저는 C언어를
기본적으로 다룰줄 아는데 로봇에 관심을 가지고 책을 보니
C언어로 로봇이나 기계를 제어할수 있다고 하길래 배워 보고
싶어서 글을 올립니다
알고 계시는 분은 좀 가르쳐 주십시요 자료도 좀 보내주시고요
저의 이메일 주소는 jcoffee @daum.net입니다
정말 부탁드립니다 저에게는 정말 급하면서도 중요한 일입니다

변정원 2000-09-09 13:43

간단한 로보트(졸업작품 수준)라면 자신이 직접 회로를 꾸미고 램이나 롬에 C로짠 프로그램을 가지고 운영할 수 있습니다.
참고 하실만한 책은 "C가 미는 로보트" 라는 책이 있는데요.
지금 가지고 있을 수도 있겠네여.....

그러나 진짜 상용 로보트를 제어하고 싶다면 컨트롤 보드를 이용해야 합니다. Pmac이나 MEI 같은 고가의 컨트롤 보드도 있고, 국내에서는 아진전자에서 하나 만든것 같던데......
컨트롤 보드 회사에서 제공하는 라이브러리를 이용하여 프로그램을 짜면 됩니다. 뭐... 움직여라... 멈춰라... 무슨 속도로 움직여라... 이런 명령들은 라이브러리를 가지고 간단하게 내릴 수 있겠죠. 로보트는 자유도도 많고 하니 세심하게 프로그램을 짜셔야 할겁니다.

김낙인 2000-09-09 15:16

C 언어로 로봇을 제어하고 싶다고 말씀을 하셨는데 근본적으로 하고 싶은것은 컴퓨터를 이용해서 기계를 제어하고 싶다는 예기인것 같습니다. C언어는 하나의 프로그램밍 언어일따름이지 기계를 제어하는 프로그래밍 언어는 아닙니다. 그러므로 로보트를 제어하고 싶으면 C언어를 배우는것이 먼저가 아니고 로봇이 움직이는 원리를 배우는것이 중요합니다.

가령 예를 들어 로봇은 관절에 모터가 있고 이 모터가 움직이면 로봇의 팔이 움직입니다. 그러면 모터를 움직일수 있는 방법을 생각해야 되겠죠. 그러면 기초적인 모터의 동작원리를 배워야 합니다. 모터의 기본 개념을 알았다치고, 로봇이 내가 원하는 상태로 움직여야죠. 1자유도면 관계 없는데 2자유도 이상되면 로봇의 기구학을 알아야 되겠죠. 가장 간단한 직교좌표로봇을 생각하고 원을 그리려면 원의 방정식을 이용해서 각각의 축이 어떻게 움직여야 되는지 알수가 있읍니다. 간단한 사각형 괘적을 그리는것도 하나의 예가 됩니다. 그러면 각각의 축의 괘적을 알고 이괘적을 갈수 있도록 모터를 움직여야 되는데 그방법이 모터를 제어하는 방법 입니다.

모터중에 linear motor만 생각하면 모터에 대한 변위제어를 해야합니다. 그러면 모터에 엔코더거 붙어있고 이엔코더 신호를 받아서 아까말한 요구 괘적 신호와 비교를 하죠. 많이 갔으면 후퇴하게 하고 적게 같으면 빨리가게 하고.... 이게 제어입니다. 그런데 제어를 아날로그식 제어를 하느냐 Digitak 제어를 하느냐는 시스템 문제고 가령 digital 제어를 한다면, 컴퓨터에서 괘적을 발생 시키고(계산에 의해) 이요구 괘적 신호와 모터에서 발생한 엔코더 신호를 이용해서 현재 위치를 컴퓨터가 읽어야 합니다. 이것을 읽어서 PID제어를 하든 다른 제어를 해서 그 결과를 모터 드라이버에 전기적 신호로 내 보내주어야 합니다. 이것은 A/D converter를 사용하여 출력 시키면 되고 C언어에서는 이러한 외부기기(A/D converter등)를 쉽게제어할수 있도록 되어 있는 언어 입니다. 이것이 로봇트 제어의 기본이죠. 그러면 로봇트제어를 하기 위해서 해야 하는일을 정리하면

1. 괘적 신호를 발생 시킨다.(로봇의 기구학을 알수 있다)
2. Feedback 제어를 한다.
3. 제어된 신호를 모터에 내보내고 현재 위치를 읽는다.

를 해야 되는데 위와 같은 과정의 일을 하는것을 C언어로 하면 다른 언어보다는 쉽게 할수 있다고 해서 C를 이용한 로봇제어 입니다. 그러므로 질문하신분이 로봇제어를 할려면 우선 로봇트 제어원리를 이해 하시고 이해된 원리를 C언어로 구현해야 합니다. 제가 보기에는 우선 로봇트 제어를 할수 있는 원리를 먼저 이해하시고 C언어를 공부하시는것이 좋을것 같습니다. 그리고 C언어는 요즈음 보는 Visual C++같은 것이 아닌 DOS환경하에서 구현될수있는 C입니다. Visual C++은 기본적인 C보다는 추가적으로 너무나 많은것을 공부해야 되면 로봇제어를 할수 있는 기본지식외어 많은것을 요구 합니다.

(주)테크노넷|대표. 이진희|사업자등록번호. 757-88-00915|이메일. technonet@naver.com|개인정보관리책임자. 이진희

대표전화. 070-4709-3241|통신판매업. 2021-서울금천-2367|주소. 서울시 금천구 벚꽃로 254 월드메르디앙 1차 401호

Copyright ⓒ Technonet All rights Reserved.