포트폴리오 정리하던중에 odrive가 여러 문제가 있었던 점이 연구노트에서 자주 나왔어서.. 한번은 정리해야겠다고 생각했다.
결론적으로는 보드 오류도 있었고, 기구적? 인 부분이 미스도 있었고.. sw적인 문제도 있는거 같기도하고..
하지만 odrive의 강점은 open source이면서도 강력한 기능들을 제공하니까.. 의미가 있는 프로젝트라고 본다.
foc를 해보겟다고 생각은 했었는데... 결국 할수도 없었고... 시간도 없었고..
최근에는 웹으로 config하는 기능이 등장한거 같은데 나중에 취미로 모터 다시 할때... 건드려보자. 장난감으로 가지고 놀기에는 매우 파워풀 하게 변신하는 중으로 보여서 기대된다.
아래는 직접 문답했던 글들을 정리한 것... (당시에는 골 아픈 문제였다)
1. 가장 큰 문제는..가끔씩 odrive가 먹통이 되는 일.
진짜 코드가 날아갔다기..보다는 mcu lock up되는 현상인데.. 이 현상은 아직도 가끔 나고있는 걸로 알고있다.
최신 버전에서는 어떻게 되었는지는 모르겠지만, 어느정도는 sw문제이지 않을까..라고 생각된다.
최종적으로는 전원단 안정을 위해 페라이트 정도만 적용해주었다. 이미 충분히 입력단에 cap은 있었기 때문에..
전기적인 노이즈라고 밖에... 하지만 이걸 보면 또 생각이 달라진다..
https://github.com/odriverobotics/ODrive/issues/527
Firmware on STM32 Flash is modified unexpectly · Issue #527 · odriverobotics/ODrive
After using make flash command flash the firmware binary of ODrive to the STM32, the STM32 have probability that cannot boot up normally. After reflash the binary again, the operation of STM32 can ...
github.com
https://blog.fearcat.in/a?ID=01600-1f37013a-559d-4d62-904d-c8b448a78171
How to unlock STM32 self-locking? (Unlocking method) No Cortex-M SW Device Found/HardFault_Handler - Fear Cat
When the chip is locked, we must first check what kind of error is it. Under normal circumstances, you should encounter an error when downloading Keil. View Image View Image cannot find Cortex™-M core Flash download failed Open the J-Link-Commander View
blog.fearcat.in
왜 mcu lock 되었는지 찾아보는데, 딱히 쓸만한 정보가 뭔지 모르겠다.. (stm32f405 reference 참고)
저 링크에서는 원인을 이렇게 얘기하는데 굉장히 두루뭉실하지만 검증해야하는 것들만 나열하고있다. 맞는 말인데.. 내가 만든 코드가 아니니까.. 어쩔 도리가 없었다.
1) startup file problem
2) heap or short circuit
3)external crystal oscillator abnormality
4)array out-of-bound operation
5)interrupt processing error..
2. 너무 핀이 가까이 있어... 원인을 찾았다~
https://discourse.odriverobotics.com/t/solved-the-hall-sensor-pull-up-resistor-is-strange/1994
[Solved] The Hall sensor pull-up resistor is strange
Hi. I have a weird problem Encoder pull-up resistor is strange. I am using a V3.5-48V ODrive. The motor uses BLDC 24V, 100W, 3000RPM. Gear ratio 1: 12.5 (motor information is in English, sorry.) This motor uses Hall sensors on M0. With reference to the hov
discourse.odriverobotics.com
이것도 재미있던 기억.
원인은 알고보니 핀이 너무 붙어있었더라...
좀 허탈했다. 파형 분석 다하고 코드적으로 이상이길 바랬는데 보드이슈면 또 1~2주를 까먹는거라...
지금 돌이켜보면 이런 보드를 로봇에 넣어서 할 생각을 했던 것도 좀.....
앞으로는 안그래야지 ^ㅛ^
3. 뭐가 이상한거야 대체..? 라고 했는데..
https://discourse.odriverobotics.com/t/scooter-motor-encoder-tunning-sudden-motor-rotation/2918
Scooter motor + encoder tunning.. Sudden motor rotation!
Hi. I’m recently making mobile robot using scooter motors and incremental encoders. There was a problem during tuning. Test Environment ubuntu 16.04 With a load of 60 kg on the robot odrive V3.6-56V, and 0.4.10 is the latest firmware version. Scooter mot
discourse.odriverobotics.com
폭주하는 이슈.. 한때 이것때문에 속썩였다.
결론은... 모터 외부에 부착한 엔코더가 slip이 나는 것으로 생각된다. 고무벨트였었다.
사실 정확한 원인은 아닐수도있다.
어쨌든 당시에 사용했던 중국제 인휠모터는 내부에 홀센서만 있었고, 주행용으로 엔코더를 부착해야만 했다. 저속에서도 나름 잘 구동하게 하기위해서도 있었고..중국제 인휠 모터+ 가이드링 구조 + 엔코더 와의 고무벨트로 해서 휠속도를 측정하는 용도였다.
급가감속시에 엔코더와 연결된 부분이 slip나는 것이 아닐까 했고.. 결국 기구부와 엔코더를 교체해서 해결봣던 기억이 난다.
어쩌면 우리쪽 회로가 뭔가 노이즈가 있었던 걸지도 모르지.
4. 저항 브레이크 계산관련 질문.. (아직 잘 이해가 안되긴해..)
https://discourse.odriverobotics.com/t/power-resistor-calculation/1961/3
Power resistor calculation
Thank you very much. @LowiekVDS I have a good understanding the summary of power register. In my case, i use a battery. so, little worried about that. just want to make it a more clearer in most cases & applications like 50W, 100W… 0.5ohm… Because If w
discourse.odriverobotics.com
회생제동저항 이야기다.
이 이거는.. 아마 application에 따라서 급가속, 기동토크시, 급 브레이크시에 모두 전기적인 환경이 다를 텐데 어떻게 적합한 저항을 선정하냐는 질문이었다.
https://discourse.odriverobotics.com/t/power-break-resistor-selection-with-loads/622/3
Power / Break Resistor Selection with loads
Thanks for the insight, @madcowswe! Do you know how this V_emf = motor_rpm / motor_kv changes, if there’s an additional mechanical load attached to the motor (in our case, extra joints of an arm)?
discourse.odriverobotics.com
확실한건 저항값이 너무 높으면 안된다는 것이다.
왜냐면 회생제동으로 모터드라이버를 역전압으로 부터 보호하기위해 남는 에너지들을 열로 소손하게하는데 너무 높은 저항값(10옴) 이면 전류가 제대로 흐르지 못한다는 이야기.. 배터리는 충분히 받쳐주지만 배터리 bms감당못할수도 있으니까 안정적으로 하기위해서는 저항을 좀 넣자.. 정도의 의견.
아무래도...회로쟁이가 아니었기에 견문이 짧기도하고, 커뮤니티일뿐 정확한 지식은 아니라고 생각한다.
하지만 파워풀한 모터드라이버임에는 확실하다.
여유를 가지고 다시 해보면 좋겠다.
'Motor > ODrive' 카테고리의 다른 글
ODrive parameter 정리 (0) | 2022.05.15 |
---|