[사용 환경]
Ubuntu version : 20.04
ROS version : noetic
Ubuntu Desktop
엠디로봇에서 인휠 모터를 구매하여 구동 테스트 하던 중에 RS485 인식이 안되는 이슈가 있었다
결과적으로 잘 해결했기 때문에 방법을 공유하고자 한다
Shot out to MD로봇 인휠모터 구매하시는 분들
cd /dev에서 ls -al 명령어를 찍어보면 다음과 같이 ttyUSB0 포트에 인식이 되는 것을 확인할 수 있다
*참고 : chomd 777 ttyUSB* 명령어를 이용하여 권한을 부여하는 것이 좋다
그리고 md로봇에서 지원하는 ROS 패키지를 설치한다.
//git clone
git clone https://github.com/jeonsion/Olaf.git
//ROS workspace 디렉터리로 이동
cd <ros workspace>
//build
catkin_make
그리고 다음 명령어를 인휠 모터를 bring up 한 다음, turtlebot3_teleop_keyboard 패키지를 이용하여 컨트롤 하려고 한다
//terminal 1
roscore
//terminal 2
roslaunch md md_robot_node.launch
//terminal 3
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
//terminal 4
rqt_graph
그리고 다음 이슈가 발생했다
에러 : Unable to open port
포트 인식에 문제가 있는 듯 하다
권한을 줘도 해결이 되지 않는다
md 로봇 ROS 패키지 안에 port관련 코드를 살펴보자
md_robot_node 디렉터리의 com.cpp 파일을 보면 30번째 줄에 포트가 설정된 것이 보인다
분명 내가 이전에 /dev 디렉터리에서 확인한 ttyUSB0이 맞는데 왜그런지 감이 잡히질 않았다
그러던 중 리눅스에서 RS485 등 시리얼 통신 관련하여 확인할 수 있는 tool이 있다는 것을 찾아볼 수 있었다
ex) minicom, screen 등등
위 툴을 이용하여 해결했다
1. minicom 설치하기
sudo apt-get install minicom -y
2. minicom 설정하기
sudo minicom -s
그 다음 키보드 방향키를 이용하여 Serial port setup 탭으로 들어간다
아래와 같이 설정이 되어 있을 것이다
여기서 A - Serial Device 명을 /dev/modem에서 -> /dev/ttyUSB0으로 변경해준다
E - Bps/Par/Bits 도 57600으로 수정해준다
설정이 끝났으면, 변경사항을 default로 저장하도록 Save setup as dfl을 선택하고 나오면된다
Result
결과 적으로 roslaunch md md_robot_node.launch 명령어를 입력 시 Serial Port initialized 가 터미널에 나오면 정상적으로 실행된 것이다
'Robotics 🤖 > Olaf' 카테고리의 다른 글
MD로봇 MD200T, MDH100 인휠모터 테스트 (MDAS 프로그램) (0) | 2024.02.21 |
---|---|
MD로봇 인휠모터 ROS로 구동하기 (2) (0) | 2024.01.24 |
MD로봇 인휠 모터 구동하기 (1) (11) | 2024.01.24 |
프로젝트 개요 : 제설 로봇 만들기 (0) | 2024.01.24 |