Language
$ sudo apt install -y ros-melodic-tf \ ros-melodic-joy \ ros-melodic-teleop-twist-joy \ ros-melodic-teleop-twist-keyboard ros-melodic-laser-proc \ ros-melodic-rgbd-launch ros-melodic-depthimage-to-laserscan \ ros-melodic-rosserial-arduino ros-melodic-rosserial-python \ ros-melodic-rosserial-server \ ros-melodic-rosserial-client \ ros-melodic-rosserial-msgs ros-melodic-amcl \ ros-melodic-map-server \ ros-melodic-move-base \ ros-melodic-urdf \ ros-melodic-xacro \ ros-melodic-compressed-image-transport \ ros-melodic-rqt-image-view \ ros-melodic-gmapping \ ros-melodic-navigation \ ros-melodic-interactive-markers \ ros-melodic-ar-track-alvar \ ros-melodic-ar-track-alvar-msgs \ ros-melodic-usb-cam
위에 설치해야할 모듈들이 저희 omo_r1 pkg를 구동하는데 필요한 모듈들입니다. 이 중에는 이미 여러분들이 설치를 진행했을 수도 있는 모듈도 포함하고 있습니다.
omo_r1 ROS 패키지는 아래 github 페이지에서 다운로드할 수 있습니다.
https://github.com/omorobot/omo_r1
앞서 설치한 ROS catkin_ws 폴더에서 다음과 같이 입력하시면 됩니다.
$ cd ~/catkin_ws/src $ git clone https://github.com/omorobot/omo_r1.git $ git clone https://github.com/PinkWink/ydlidar.git
$ cd ~/catkin_ws $ catkin build
R1로봇은 PC와 USB-to-Serial(USB시리얼) 포트를 통해 연결됩니다. Ubuntu 리눅스에서 USB시리얼 장치는 /dev/ttyUSB0, /dev/ttyUSB1 따위로 등록되는데, 로봇 구동명령을 실행할때 이 경로를 매번 설정해주어야하는 번거로움이 있습니다. 다음과정을 통해 USB시리얼 장치를 등록하면 자동으로 /dev/ttyMotor 로 설정됩니다.
cd ~/catkin_ws/src/omo_r1/omo_r1_bringup/scripts/ 로 이동하여 create_udev_rules.sh 스크립트를 실행합니다.
$ cd ~/catkin_ws/src/omo_r1/omo_r1_bringup/scripts/ $ sudo ./create_udev_rules.sh [sudo] password for cto: This script copies OMO R1 udev rules to /etc/udev/rules.d/ Motor Driver (USB Serial from RS232) : /dev/ttyUSBx to /dev/ttyMotor : 98-omo-r1.rules created OpenCR IMU (USB Serial) : /dev/ttyACMx to /dev/imu : 99-opencr-cdc.rules created YD LiDAR (USB Serial) : /dev/ttyUSBx to /dev/ttyLiDAR : ydlidar.rules created Reload rules
이렇게 하면 /dev/ttyMotor 가 확인됩니다.
만약 이 스크립트를 실행했는데도 /dev/ttyMotor가 확인되지 않으면 ☹ lsusb 명령으로 USB시리얼 장치의 ID를 확인해주어야합니다.
$ lsusb ... Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter ...
여기서 ID 이후에 나오는 1a86이 vendor ID이고 다음 7523이 product ID 입니다. 만약 이 값이 아닌 다른 값으로 검색되는 경우 해당 ID를 수정해주어야합니다. 터미널에 다음을 입력하여 98-omo-r1.rules 파일을 엽니다.
$ sudo nano /etc/udev/rules.d/98-omo-r1.rules
여기서 idVendor와 idProduct를 위에 lsusb 명령으로 확인한 값으로 변경합니다.
SUBSYSTEM==”tty”, ATTRS{idVendor}==”1a86“, ATTRS{idProduct}==”7523“….
Ctrl-X키를 눌러 빠져나온 다음 다음을 입력하여 udev를 다시 적용합니다.
$ sudo udevadm control --reload-rules $ sudo udevadm trigger
이제 다시한번 /dev/ttyMotor 가 보이는지 확인합니다.
만약 이렇게 해도 검색이 안된다면 USB장치의 문제가 있는것일 수 있으므로 다른 장비를 사용하거나 PC를 재부팅해보시기 바랍니다.