안녕하세요~ 고려대학교 하드웨어 동아리 kuhas입니다. 

저번 제 질문에 대한 답변, 너무나도 상세히 해주셔서 정말 감사합니다!


염치없지만 이번에도 몇가지 여쭤보려고 이렇게 글을 올립니다.


일단 제가 만든 라인트레이서는 스텝트레이서이며 이런식으로 구동 됩니다.


1차 주행시 


센서는 16조 센서로서 무게중심법을 적용했고 필터는 회로적으로 하이패스필터와

소프트웨어적으로 digital iir 로우패스필터를 적용했습니다.

그리고 여기서 받은 센서데이터를 이용하여 pid제어를 실시합니다.

여기까지가 제가 만든 라인트레이서가 돌아가는 방식입니다.


그런데 문제점은 일단 1m/s는 무난히 돌아가는데 1.5m/s나 2m/s까지 속도를 올리면

탈조가 나더라구요 제가 곰곰히 생각을 해본것이 가속도테이블을 사용해야하나입니다.

저는 pid제어로 라인을 추종하기때문에 가속도 테이블이 필요없을거라고 생각했습니다.

해도 2차주행때나 사용해야겠다 생각했는데... 자꾸 탈조가 나니 어떻게해야할지를 모르겠습니다.

pid제어는 라인을 추종하기위해서는 꼭 필요한것이 아닌지요? 

pid제어와 가속도 테이블을 같이 사용하시는지 여쭤보고 싶었습니다.

그리고 제가 계속 가감속테이블에 대한 정보를 찾는데 ..... 도대체 어떤원리로 되는지 이해가 

잘되지않았습니다. 자료가 워낙 오래되서 링크가 잘린곳도 많고 깨진것도 많아서...

제가 알기론 배열을 만들어서 쓰시는 것과 실시간 연산으로 사용하시는것 2가지 방법이 

있는것으로 알고있는데 제 생각에 pid와 가감속을 같이 사용하려면 실시간연산 방법이 좋을 것 같은데

어떻게 생각하시는지요?


그리고 제가 군인 신분이라 새로운 자료나 어떤 트렌드를 접하지 못해서 필터쪽이 궁금합니다.

저는 디지털 iir 필터를 사용하는데 요즘 또 사용하시는 다른 필터등이 있으신지요

제가 디지털 iir 필터를 사용해보니 컷 오브 프리퀀시가 높을 수록 필터링은 잘되나 원본 데이터와의

위상차가 많이 생겨 반응이 느려지는것을 확인했습니다. 그렇다면 적당한 컷 오브 프리퀀시를 사용해야 할텐데

혹시 또 다른 필터링 방식을 이용하시는지 여쭤보고싶습니다....


그리고 사람마다 다르겠지만... 라인트레이서에서 필터와 pid제어를 하려면 시스템주기. 즉 제어주기가 가장

중요할것같은데요.,.... 보통 제어주기를 어느정도나 주시나요...

저같은 경우는 5ms 를 한 주기로 5ms 마다 adc->iir필터->pid제어 이런식으로 진행합니다.


그리고 보통 스텝트레이서의 1차 및 2차 주행 속도는 어느정도나 되는지요??

대회 참가가 이번 시립대대회 참가가 처음이라 많이 지식이 부족합니다. ㅜㅜㅜ 


마지막으로 pid제어나 필터등... 참고하시는 서적같은게 있으신지요....

추천해주실만한 책이 있으시다면 ,,,, 꼭 공부해보고싶습니다.


긴글 읽어주셔서 너무너무 감사합니다. 대회때 찾아뵙고 인사드리겠습니다!!


oejonline@nate.com






조회 수 :
4459
등록일 :
2014.07.19
19:11:17 (*.42.218.17)
엮인글 :
http://zetin.uos.ac.kr/xe/index.php?document_srl=458079&act=trackback&key=c6b
게시글 주소 :
http://zetin.uos.ac.kr/xe/458079

'8' 댓글

김상현

2014.07.19
20:24:09
(*.212.156.153)
profile

스텝모터 스펙을 살펴보시면 각 속도별로 토크 그래프가 있는데 그걸 넘지않게 제어하시면 탈조 안날거에요 


저성능 MCU의 경우 실시간으로 연산이 안되기에 미리 계산해놓은 테이블을 사용할뿐이구요. 고성능 MCU를 사용하신다면 실시간으로 계산해도 무방합니다. 딱히 디지털 로우패스필터 말고는 사용하지 않구요. 당연한 이야기지만 제어주기는 MCU 성능 내에서 빠를수록 좋죠 .


근데 feedback이 없는데 어디에 PID제어를 하시나요 ? 질문 내용중에 PID가 잘 이해가 안가네요 . 



보통 대회 출전하는 트레이서들은 2m/s 정도 주행합니다.


특별히 참고하는 서적은 없고 , 전공서적만 사용합니다.

오지원

2014.07.20
14:11:51
(*.42.218.17)

제어주기가 5ms이기 때문에 5ms를 주기로 feedback을 하고 있습니다.

혹시 제가 알고 있는 pid가 잘못된것인지요?

센서값에 무게중심법을 이용해서 좌 우로 약 -250~250의 값이 나옵니다. 

직선을 달릴때는 0 의 가까운 값이 나오고있습니다.

그래서 -250~250사이의 데이터값이 나오면 그 데이터 값을 pid함수로 받아서

양쪽 모터에 카운트값을 주게됩니다. 

이렇게 된다면 조정된 모터값에 따라 라인트레이서가 라인을 추종하게되고

다음 제어 주기때 조정된 모터값에 대한 센서값이 다시 pid함수로 받게되고....

이런식이 feedback이 되는것이 아닌지요? 

김상현

2014.07.20
14:50:58
(*.212.156.153)
profile

아 라인의 위치에 적용하셨군요


근데 이런 경우 overshoot나 제어값이 진동하거나 하면 스텝모터에 무리가 갈 수 있으니 일단 D I 를 빼고 해보시고 , 


그 사용하시는 모터 스펙에 따른 테이블을 만들던지, 실시간으로 계산하던지 해서 적절한 토크로 굴려보세요 


오지원

2014.07.20
15:30:08
(*.42.218.17)

답변 정말 감사합니다!!! 많은 도움을 받아서 정말 감사할 뿐입니다.

저는 계속 pid를 라인의 위치에 하였는데요... 혹시 다른 방법도있으신지요?

저는 라인을 추종해야 하기때문에 라인에 pid를 적용했습니다.

이런 방법말고 라인을 추종하는 방법이 또 있는지요?

혹시 센서값에 따른 가속도 테이블을 이용하시는지요?

가속도 테이블에 대한 여러 자료를 찾아보고 있는데 제가 검색을 

못하는 것인지 응용을 못하는 것인지... 이해가 잘 되지 않습니다....

제가 찾은 자료에는 등가속도 공식을 변형해서 초기 속도 v0=0이라 가정하고 

등가속도 공식 2번을 정리해서 시간 t에 대한 수식을 얻는데요

진행하고싶은 거리 S와 가속도 a를 대입하면 t를 구해서 

이 t를 이용하여 모터에 대입할 카운트 수를 구하는것 같습니다.

저는 이 이후로 어떻게 적용을 해야할지 잘 모르겠습니다...

가속도테이블 프로그램같은 것을 써보면 배열을 작성해주는데


데이터 값이 점차적을 줄어들기는 하지만 중간중간 2번씩 유지되는 값들도 있더라구요

예를 들어 200 -> 199 -> 198->197 이런식이 아니라

200 -> 199 -> 199->199->198->198->198->197->197 이런식으로 값이 줄어들더라구요...

왜이렇게 하는것이며 어떻게하면 이렇게 만들수 있는지요?

혹시 log형태를 만들기 위해서 그러는 것인지요?

실시간을 코드를 작성하려면 어떤식으로 하시는지요?

질문이 많아서 정말 죄송합니다....ㅜㅜ

염치없지만 너무나도 배우고싶어서 이렇게 또 질문을합니다 ㅜ

읽어주셔서 감사합니다!!

김상현

2014.07.20
16:30:06
(*.212.156.153)
profile

timer&counter가 소숫점이 아니기에 느린 가속도를 표현할때는 어쩔수없이 그렇게 만들어지는거 같네요 

예를 들어 가속도를 1m/s^2 을 내는 테이블이 100 99 98 ... 이런식으로 1씩 변하는 상황이라면

속도가 올라가서 가속도를 0.5m/s^2 을 내야 할 때는 100 100 99 99 98 98 이런식으로 되겠지요 . 이것은 mcu 의 timer값이 정수라 어쩔수 없네요 


다시한번 말씀드리지만 로봇의 무게와 바퀴의 지름을 알고 있고, 해당 속도에서의 최대 토크를 스펙에서 알고 있으므로  이 상태에서의 로봇의 최대 가속도를 계산해서  그 가속도가 넘지 않도록 해야되는데요 . 이걸 속도별로 미리 계산해놓으면 테이블이고 아니면 실시간계산이지요 .    



오지원

2014.07.20
18:29:51
(*.42.218.17)

답변해주셔서 정말 감사합니다!

많이 배울수 있는 좋은 기회였습니다.

zetin분들께서는 정말 대단하다는 생각밖에 들지 않네요 !!

대회때 찾아뵙고 인사드리겠습니다!

수고하세요~

김상현

2014.07.21
10:50:40
(*.16.63.146)
profile

^^

김상현

2014.07.19
20:26:42
(*.212.156.153)
profile

캡처.PNG

예를 들면 이런 그래프가 있는데 고속일수록 토크가 낮아집니다. 

그러므로 각 구간별 최대 가속도를 제한해서 해보시면 될 거 같습니다.


첨부 :
캡처.PNG [File Size:13.8KB/Download9]
문서 첨부 제한 : 0Byte/ 500.00MB
파일 제한 크기 : 500.00MB (허용 확장자 : *.*)
옵션 :
:
:
:
:
List of Articles
번호 제목 글쓴이 날짜 조회 수
41 단국대학교 MAZE 입니다. 올해 트레이서 대회 관련 문의 드립니다. [4] MAZE_18 2018-03-27 4807
40 이번 라인트레이서 기록인증서와 참가확인서 문의드립니다 [2] 유감임다 2017-08-31 3997
39 어...질문해도 괜찮은 질문일지는 모르겠지만... [3] windseraphim 2015-10-26 4381
38 안녕하세요 질문드립니다 [1] 붕붕이 2015-07-20 4054
37 우편물 주소 요청 [1] 재활용쓰레기 2015-07-16 4431
36 라인트레이서 영상 관련해서 글 남깁니다. [2] 정용호 2015-05-18 4014
35 초보자 질문이요 [7] windseraphim 2014-08-21 4633
34 규정 관련 질문드립니다. [4] windseraphim 2014-08-02 4264
33 질문드립니다! [1] LeeMG 2014-07-27 3982
32 안녕하세요 질문하나만 부탁드릴게요 ㅜㅜ [2] 쿠하스 2014-07-21 4251
» 안녕하세요~ 고려대학교 하드웨어 동아리 kuhas입니다. [8] 쿠하스 2014-07-19 4459
30 안녕하세요 고려대학교 하드웨어 동아리 kuhas입니다~ [1] 쿠하스 2014-07-15 4321
29 안녕하세요 단국대학교 MAZE입니다~~ [3] MAZE육근호 2014-07-04 4397
28 안녕하세요 경남대학교 로봇동아리입니다. [3] ljy8287 2014-06-21 4393
27 안녕하세요 동양미래대학 Micro Mouse 동아리입니다. [8] Practice 2013-08-19 7471
26 질문 하나만 더드려도 될까요? [19] equation 2013-08-19 8795
25 ope-5685에 관해서 질문 드릴것이 있습니다. [2] equation 2013-08-18 10049
24 압축공기와 노즐을 이용한 부상이동장치에 관해 관심있으신 분 찾습니다. 환경온도계 2013-08-13 7040
23 라인 트레이서 대회에 대해 질문 드려봅니다 [1] HelpMe 2013-05-14 11890
22 안녕하세요. [3] equation 2012-08-20 13786



XE Login