본문 바로가기

작업 일기

Raspberry Pi 4B에서 모터 드라이버 (MD200T) 구동하기

- 개발 환경 : Raspberry Pi 4B (Ubuntu 18.04 / ROS melodic)

- 준비물 : 모터 드라이버 (MD200T) (DC12~48V, 10A x 2ch, 200W x 2ch)

- 참조 : https://www.mdrobot.co.kr/tech-support/?q=YToxOntzOjEyOiJrZXl3b3JkX3R5cGUiO3M6MzoiYWxsIjt9&bmode=view&idx=6051407&t=board

 


 

 

Step1. Raspberry Pi 4B에 Ubuntu 18.04 설치하기

https://do-9un6.tistory.com/2

 

Raspberry Pi 4B에 Ubuntu 18.04 설치하기

- 준비물 : Raspberry Pi 4B, SD Card, SD Card Reader - 참조 : https://www.youtube.com/watch?v=zasvSKaobVI&t=576s (유투브 구선생) Step1. SD Card 포맷 - SD 카드를 USB 리더기에 꽂아주고 PC에 연결합..

do-9un6.tistory.com

 

 

Step2. Ubuntu 18.04에 ROS melodic 설치하기

https://do-9un6.tistory.com/4

 

Ubuntu 18.04에 ROS melodic 설치하기

- 개발환경 : Raspberry Pi 4B (Ubuntu 18.04) - 참조 : http://wiki.ros.org/melodic/Installation/Ubuntu Step1. Ubuntu 18.04 설치 https://do-9un6.tistory.com/2 참고 Step2. ROS melodic 설치 - Ubuntu 18..

do-9un6.tistory.com

 

 

 

Step3. MD200T 연결하기

 

https://www.mdrobot.co.kr/tech-support/?q=YToxOntzOjEyOiJrZXl3b3JkX3R5cGUiO3M6MzoiYWxsIjt9&bmode=view&idx=6051407&t=board

 
 

14. MDT시리즈 모터 제어기와 연동하여 사용가능한 ROS 패키지 및 메뉴얼 : 기술자료 다운로드-엠디

MDT시리즈 모터 제어기와 연동하여 사용가능한 ROS패키지 및 메뉴얼입니다. SLAM, NAVIGATION 등을 이용해 산출된 선속도와 각속도를 업로드한 패키지 내에 노드에 위 내용의 토픽을 Publish해주시면 S

www.mdrobot.co.kr

 

- 위 링크에서 필요한 파일을 다운로드 받습니다. (아래에 파일 첨부해두었습니다.)

MD_ROS_라이브러리_사용_메뉴얼V35a (4).pdf
0.66MB
md_v2.2b.zip
0.02MB

 

- 만약 워크스페이스를 만들지 않았다면, 아래를 참고해주세요.

더보기
$ mkdir –p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make
$ source devel/setup.bash

- $ source devel/setup.bash를 매번 입력하지 않으려면 아래의 명령어를 통해 bash 파일을 수정하면 됩니다.

$ gedit ~/.bashrc

//bash 파일이 열리면 맨 밑에 아래의 구문 추가
source ~/catkin_ws/devel/setup.bash

 

- md_v2.2b.zip 파일의 압축을 풀고, catkin_ws/src 폴더에 추가한 뒤, 아래의 코드를 입력하여 패키지를 추가합니다.

$ cd ~/catkin_ws && catkin_make

 

 

 

 

Step4. 심볼릭 링크 만들기

- ttyUSB*가 수시로 변경되기 때문에 심볼릭 링크를 지정하는 것이 좋습니다. (보통 꽂는 순서대로 ttyUSB0, ttyUSB1,,,) 

 

- USB Port 권한 주기 (dialout 그룹에 추가)

$ sudo usermod -a -G dialout $USER
$ sudo reboot

 

- 해당 포트의 Vender ID, Product ID, Serial Number 파악하기

$ lsusb
$ udevadm info -a /dev/ttyUSB0 | grep '{serial}'

* 확인해보니 해당 USB-Serial adapter에는 고유 serial 값이 없었다. ( ATTRS{serial}=="0000:01:00.0"은 기본적으로 존재하는 값이였음)

 

-원래는 마지막줄의 0001처럼 고유 시리얼 넘버가 있어야함. (이때는 serial 넘버는 생략하고 입력하면 된다.)

 

 

- 알아낸 정보를 이용한 rules file 생성

$ cd /etc/udev/rules.d
$ touch MD.rules
$ gedit MD.rules

KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0666", GROUP:="dialout", SYMLINK+="MD"

 

- udev 재시작 및 PC 재시작

$ sudo service udev restart
$ sudo reboot

 

- 심볼릭 링크 확인

$ ls -al /dev/

- 변경한 심볼릭 링크를 패키지가 인식할 수 있도록 md_v2.2b/src/com.cpp 파일 수정

 

 

 

 

 

Step5. 패키지 파일 수정 및 실행

 

- md.launch 파일 수정

  (본인의 로봇에 맞게 설정해야합니다.)

 

- src/cmd_main.cpp 수정

  (deg/s로 되어있는 값을 rad/s로 바꿔줍니다.)

- 패키지 실행

$ roscore
$ roslaunch md md.launch

 

- 키보드 제어

$ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
$ export TURTLEBOT3_MODEL=burger
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch