2022-1 PID제어를 이용한 밸런싱 로봇 만들기 #1
+) 5월 말이 되어서야 2022년 개인 프로젝트를 시작한다.....
그동안 좀 많이 아프기도 했고 쉬느라 이제야 시작한다.
++) 원래는 PID제어를 이용한 스마트폰 짐벌 만들기로 주제를 정하고 공부하고 포스팅도 몇개 했었다.
그런데 PID제어와 IMU를 공부하다 보니 짐벌 보다는 밸런싱 로봇을 만드는 게 더 PID제어를 공부하는 데에 좋을 거 같다고 판단해서 중간에 주제를 바꿨다...
이번에 만들려고 하는 것은 밸런싱 로봇이다.
2개의 DC모터와 PID제어를 사용해서 넘어지지 않고 계속 중심을 유지하는 로봇을 만들려고 한다.
해외에서는 balancing robot외에도 inverted pendulum robot 이라고도 부르는 것 같다.
이 프로젝트를 하는 이유는 크게 3가지이다.
1. PID제어 공부 :
휴학하기 전에 잠깐 자동제어 과목을 들었었는데 로봇 제작에 있어서 정말 중요한 과목이라는 느낌을 강하게 받았었다. 엄청 깊은 수준이 아니라도 어느 정도만(학부 과목 수준?) 익혀두면 프로젝트로 만들 수 있는 것이 훨씬 많아진다는 말도 들었다.
원래는 유튜브나 KOCW에 있는 자동제어 강의를 듣고서 하려고 했는데, 강의 길이부터 절대 쉬면서 빠르게 할 수 있는 강의인 거 같았다.
그래서 간단한 강의도 많고 자동제어에서 배우는 내용 중 하나인 PID 제어를 먼저 공부해 자동제어에 가볍게 입문을 해보려 한다.
2. ROS 연습 :
ROS 공부를 한지 조금 시간이 지나서 까먹을까봐 복습하려고 한다. 또 이전에 했던 것은 다른 분이 올려둔 방법과 코드를 썼지만 이번에는 내가 배운 것을 토대로 처음부터 만들어 보려고 한다.
물론 구글링을 통해 이미 있는 관련 코드들도 참고 할거다. 이전에는 80%가 다른 사람의 코드였다면 이번에는 30% 정도까지 낮춰보고 싶다.
막연한 계획은 로봇을 gazebo에도 구현해 시뮬레이션을 시도해 보는 것, PID코드 자체를 아두이노 내에서 구현하지 않고 이전 ros_arm처럼 ros에서 파이썬으로 구현하는 것 등을 할 예정이다.
3. 바이러스 로봇 제작의 바탕 :
1과 따지고 보면 같은 이유이다.
내가 나중에 만들고 싶어하는 바이러스 모방 로봇은 균형을 잡는 기능이 필수적으로 필요하다. 모터를 이용해 균형을 잡는 건 뭐가 되었든 자동제어, closed loop control이 필요하기 때문에 그 일환으로 PID 제어를 체험해보기 위함이다.
위 이유 외에도 imu에 대해 공부하기, 새로운 3d모델링 연습 등도 있는데 위 3개가 가장 큰 이유이다.
목표 : ROS와 PID제어를 이용해 gazebo나 rviz에 실시간으로 position이 뜨는 밸런싱 로봇 만들기
계획은 아래와 같다.(진짜 별 거 없다..)
-PID 제어 공부
-IMU 공부
-로봇 설계 및 모델링
-제작 및 코딩
-수정 * n
우선 PID제어를 간단하게나마 이해하는 것부터 시작하자.
========================================================================
정확한 정보 전달보단 공부 겸 기록에 초점을 둔 글입니다.
틀린 내용이 있을 수 있습니다.
틀린 내용이나 다른 문제가 있으면 댓글에 남겨주시면 감사하겠습니다. : )
========================================================================