로스 드라이버 사용 문의(제어불가) > MotorControl_Forum

본문 바로가기
사이트 내 전체검색

MotorControl_Forum

로스 드라이버 사용 문의(제어불가)

페이지 정보

profile_image
작성자 madra
댓글 1건 조회 18회 작성일 25-04-16 09:26

본문

구매 MotorControl :MW-MDC24D100D-v2

사용 환경: 우분투 22.04 로스2 험블, 우분투 18.04 로스 멜로딕

개발 언어: cpp

기존 라이브러리인 아래 로스2 코드를 로스 코드로 포팅하여 연구중에 있습니다.
https://github.com/ntrexlab/2th_NtrexMotorDriver_lib_ROS

런치 동작을 확인하였고 최초 모터컨트롤러 동작으로 cmd_vel값을 topic pub하여 0.1m/s를 주어서 모터가 움직이는 것을 확인했으나,
0.0으로 linearx값을 수정하여도 정지하지 않습니다. -0.1 입력시 모터정지후 역방향 회전은 가능합니다.
하지만 0.2,0.5등의 속도에서는 이미 모터가 더 가속하거나 감속하여 움직이지도 않습니다.
이것은 추측이되 아마 0.1에서 이미 최대전압이 걸리는 것 같습니다.

포팅 코드 문제인가 싶어 로스2환경에서 재동작 실시하였으나, 같은 문제 발생중입니다.

아래 링크로부터 비슷한 현상이 보이는 듯 싶었고
https://idea.synology.me/bbs/board.php?bo_table=md&wr_id=173&page=1

 ros2_example/stella_md/include/mw/MW_serial.hpp 헤더파일을 확인하여 main내부에서 cmd_vel 콜백함수 내에서 0.0일 시 Motor_MoveCommand로 ch2에 slowstop을 걸어줬으나 동작하지 않았습니다(디버그 출력을 통해 해당 노드와 함수 앞뒤로 동작중임을 확인했습니다)

추후 윈도우 작업에서 알았으나 아마 quickstop은 작동할 것 같기도 하지만 시도해보진 않았고, 슬로우 스탑도 필요한 상황입니다.

원래 0.0에서 정지하지 않는건지, 오류가 있는건지 윈도우에서 제공하는 프로그램을 통해 드라이버로 명령을 내려봤으나 이상한 점이 많았습니다.
우선 전압 동작을 제외하고 속도,전류의 동작에서 모터의 속도는 항상 일정했습니다.
출력 전압이 20v, 전류가 0.8~9가 나왔습니다.
전압제어시만이 원하는 만큼 조절가능했고 최고속도 20v나왔습니다.

아마 나머지 제외에서 항상 일정한 최대값으로 되고 있는 것 같습니다.

또한 여기서도 특정조건에서 slow stop버튼은 동작하지 않았고 power off나 quick stop만이 가능했습니다.
일반적으로 속도로 제어했을 때 슬로우 스탑이 동작하지 않았고 전압제어했을때는 슬로우 스탑이 가능했으나, 발견하지 못한 특정 조건에서는 또 동작하지 않습니다.

제가 제어방식을 잘못이해하고있는 건지, 컨트롤러 문제인지, 펌웨어나 소스코드 문제인지 잘 모르겠습니다.

usb mini-b 타입으로 시리얼통신하였고
모터는 채널2에 연결하여 엔코딩 없이, 엔코딩 연결까지 하여 모두 실시하였고

동작과정중 토픽전달은 모두 정상적임을 확인했습니다.

댓글목록

profile_image

최고관리자님의 댓글

최고관리자 작성일

안녕하세요.

아이디어 로봇입니다.

포럼 서버에 조금 문제가 발생하여 답변이 늦었습니다. 죄송합니다.

우선 윈도우 UI에서 사용하시는 환경(입력 전압, 엔코더 정보 등)에 맞게 모터 드라이버가 설정되어 있는지 확인하여 주세요.

관련 설정은 아래 블로그를 참고하여 주시면 확인하실 수 있습니다.
https://blog.naver.com/idea_robot/223387089796
https://blog.naver.com/idea_robot/223418362536

회원로그인

회원가입