# 기본 장치 이름 확인(Lidar USB)
ll /dev/ttyUSB*
# 상기 명령을 ubs를 연결하고 한번 빼고 한번 실행하면 서로 다르게 나오는 것이 장치 이름이다.
# 만약 장치 이름이 ttyUSB0이면 아래처럼 명령 실행
udevadm info -a -n /dev/ttyUSB0
# 엄청 많은 데이터가 나오는데 잘 찾아보면 KERNELS == "1-2" 같은 부분이 있다.
# 기본 장치 이름 확인(Mobile robot USB)
ll /dev/ttyUSB*
# 상기 명령을 ubs를 연결하고 한번 빼고 한번 실행하면 서로 다르게 나오는 것이 장치 이름이다.
# 만약 장치 이름이 ttyUSB1이면 아래처럼 명령 실행
udevadm info -a -n /dev/ttyUSB1
# 엄청 많은 데이터가 나오는데 잘 찾아보면 KERNELS == "3-1" 같은 부분이 있다.
오늘은 r1d2 udev 설정하는 법에 대해서 알아보자.
@ udev rules 설정 관련 일반 내용 아래 링크를 참조하자.
@ 일반적으로 r1d2 자율주행 패키지로 구매하셨다면 udev rules가 다 설정된 상태로 납품된다.
@ r1d2에 사용되는 Mobile robot 통신용 USB와 Lidar 통신용 USB는 장치 serial, idVendor, idProduct가 모두 같아 usb 포트 위치로 구속조건을 추가로 주는 방식으로 udev rules가 설정되어 있다. 그래서 Mobile 통신용 USB는 nuc 전면부에 Lidar 통신용 USB는 nuc 후면 부에 연결하여야 한다. 무슨 말인지 모르겠으면 상기 링크를 참조하자.
case1 : r1d2 자율주행 패키지에 달린 nuc를 포맷하여 udev rules를 재 설정해야 하는 경우
1. nuc에서 터미널 실행: Ctrl + Alt + t
2. git 설치
sudo apt install git -y
3. github 레포지토리 복사
git clone https://github.com/t-shaped-person/quick-ros2-setup.git
4. 스크립트 실행
cd quick-ros2-setup
sudo ./3_udev_rules_r1d2.sh
# 비밀번호 입력 필요
5. udev rules가 제대로 되었는지 확인(usb가 연결되어 있는 상태에서 확인 필요)
ll /dev/tty*
# 터미널에 약간 다른 색상으로 아래 내용 확인 가능
# lrwxrwxrwx root root 7 Jan 12 20:45 /dev/ttyLiDAR -> ttyUSB1
# lrwxrwxrwx root root 7 Jan 12 20:45 /dev/ttyMCU -> ttyUSB0
@ r1d2 ros2 패키지는 Mobile robot은 /dev/ttyMCU, Lidar는 /dev/ttyLiDAR 장치 이름과 통신하는 것으로 만들어져 있다. 만약 상기 내용처럼 뜨지 않으면 usb가 연결되지 않았거나 잘 못된 위치에 연결되었가나 Mobile robot 전원이 꺼져 있을 수 있으니 확인하자.
case2 : r1d2 자율주행 패키지에서 nuc를 빼고 구매하고 다른 PC(노트북)를 사용할 경우
1. 폴더 이동 및 파일 생성
cd /etc/udev/rules.d
sudo touch 98-omo-r1-mcu.rules
sudo touch 97-omo-r1-lidar.rules
2-1. 노트북에 Lidar usb 케이블을 연결하고 usb port 위치 확인
# 기본 장치 이름 확인(Lidar USB)
ll /dev/ttyUSB*
# 상기 명령을 ubs를 연결하고 한번 빼고 한번 실행하면 서로 다르게 나오는 것이 장치 이름이다.
# 만약 장치 이름이 ttyUSB0이면 아래처럼 명령 실행
udevadm info -a -n /dev/ttyUSB0
# 엄청 많은 데이터가 나오는데 잘 찾아보면 KERNELS == "1-2" 같은 부분이 있다.
2-2. 노트북에 Mobile robot usb 케이블을 연결하고 usb port 위치 확인
# 기본 장치 이름 확인(Mobile robot USB)
ll /dev/ttyUSB*
# 상기 명령을 ubs를 연결하고 한번 빼고 한번 실행하면 서로 다르게 나오는 것이 장치 이름이다.
# 만약 장치 이름이 ttyUSB1이면 아래처럼 명령 실행
udevadm info -a -n /dev/ttyUSB1
# 엄청 많은 데이터가 나오는데 잘 찾아보면 KERNELS == "3-1" 같은 부분이 있다.
3. udev rules 파일 수정
sudo nano 97-omo-r1-lidar.rules
# 아래 내용 입력
SUBSYSTEM=="tty", KERNELS=="1-2", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666", GROUP:="dialout", SYMLINK+="ttyLiDAR"
# KERNELS=="1-2" 에 해당하는 부분이 상기 2-1에서 확인한 usb port 위치이다.
sudo nano 98-omo-r1-mcu.rules
# 아래 내용 입력
SUBSYSTEM=="tty", KERNELS=="3-1", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666", GROUP:="dialout", SYMLINK+="ttyMCU"
# KERNELS=="3-1"에 해당하는 부분이 상기 2-2에서 확인한 usb port 위치이다.
sudo udevadm control --reload-rules
sudo udevadm trigger
4. udev rules가 제대로 되었는지 확인(usb가 연결되어 있는 상태에서 확인 필요)
ll /dev/tty*
# 터미널에 약간 다른 색상으로 아래 내용 확인 가능
# lrwxrwxrwx root root 7 Jan 12 20:45 /dev/ttyLiDAR -> ttyUSB1
# lrwxrwxrwx root root 7 Jan 12 20:45 /dev/ttyMCU -> ttyUSB0
@ r1d2 ros2 패키지는 Mobile robot은 /dev/ttyMCU, Lidar는 /dev/ttyLiDAR 장치 이름과 통신하는 것으로 만들어져 있다. 만약 상기 내용처럼 뜨지 않으면 usb가 연결되지 않았거나 잘 못된 위치에 연결되었가나 Mobile robot 전원이 꺼져 있을 수 있으니 확인하자.
@ 먼가 내용은 엄청 많은데 자세히 생각해 보면 아주 간단한 내용이다.
'OMOROBOT > ROS2 Package' 카테고리의 다른 글
[ros2 foxy] r1mini SLAM navigation 하기 (1) | 2023.11.15 |
---|---|
[ros2 foxy] r1mini SLAM mapping 하기 - cartographer (1) | 2023.11.14 |
[ros2 foxy] r1mini 원격 제어하기 - teleop (1) | 2023.11.13 |
[ros2 foxy] r1mini 용 foxy 원격 PC 설정하기 (1) | 2023.11.12 |
[ros2 foxy] r1mini에 foxy 패키지 설치하기 (1) | 2023.11.11 |