/odom 토픽이 가끔 들어오지 않는 현상

해당 문제를 마주한 순서는 아래와 같습니다.

(1) R1 Serial USB를 PC에 연결한 후 아래 링크 Launch 파일을 실행하였습니다.
-omo_r1/omo_r1_motor.launch at omo_r1_master · omorobot/omo_r1 · GitHub

(2) 아래 명령어를 통해 odom 토픽 데이터를 확인하면서 R1 로봇을 앞뒤로 움직였을때 모든 데이터 요소가 0으로 변화가 없습니다.
$ rostopic echo /odom

(3) R1 로봇을 다시 껏다 켜서 Launch 파일 실행을 반복하니 /odom 토픽 데이터가 정상적으로 확인될 때도 있습니다.

아래 링크 python 코드에서 모터로부터 Encoder 값을 읽어오는 부분이 문제인 것 같은데 모터에서 엔코더 값을 시리얼 통신으로 못 보내는 건지 의문이네요.
-omo_r1/omo_r1_motor_node.py at omo_r1_master · omorobot/omo_r1 · GitHub

모터로부터 Encoder 값을 제대로 읽어오는지 2차 확인하는 방법이 있으면 좋을것 같습니다.
R1을 구매한 이후로 계속 겪는 현상인데 추후 업데이트 일정이나 해결 방법이 있을까요?

혹시 어떤 usb 시리얼 포트를 사용하셨나요?
일부 usb 시리얼 포트가 윈도우 환경에서는 정상적으로 동작하는데 우분투 리눅스 환경에서 오동작 하거나 패킷이 일부 깨져서 들어오는 경우가 있더군요.
한번 제게 DM 주셔서 사용하고계신곳과 연락처를 남겨주시면 연락드리고 처리 방법을 논의하도록 하겠습니다.

Ubuntu 환경에서 /dev/ttyUSB0 를 통해 시리얼 포트 연결했습니다.

개인 메시지를 보내려고 하는데 잘 안되네요.

아 네 kyuhyong@omorobot.com으로 연락 주십시오

이메일 보내드렸습니다. 확인 부탁드립니다.

추천해주셨던 다른 종류의 USB to RS232 케이블을 사용하여도 /odom 토픽이 들어오지 않는 현상이 동일하게 발생되었기에 omo_r1_motor_node.py 코드를 활용하여 몇 가지를 테스트하였고 그 결과는 아래와 같습니다.

  1. $ ls /dev/tty* 명령어를 통해 케이블 연결 확인

  2. $ roslaunch omo_r1_bringup omo_r1_motor.launch 파일 실행
    그러나 /odom 토픽 데이터가 로봇을 움직여봐도 0으로 고정되어 있습니다.

  3. omo_r1_motor_node.py 코드 내 def read_packet 부분 165줄 아래에 print(whole_packet)을 추가하여 R1 로봇 인터페이스 보드에서 보내는 시리얼 내용 확인

  4. 시리얼 내용 확인 결과
    /odom 토픽 데이터가 제대로 확인될 때 : “QODO,0,0” “QDIFFV,0,0” QENCOD,0,0" 등 여러가지의 데이터가 실시간 수치 변화와 동시에 일정하게 들어오는 반면
    /odom 토픽 데이터 변화가 없을 때 : “QDIFFV,0,0” 데이터만 들어옴 (수치 변동 없이)

omo_r1_motor_node.py 를 통해 로봇에 연결할 때 시리얼 내용이 부분적으로 비어있는 경우 엔코더 값을 받지 못해 /odom 토픽 데이터가 제대로 확인되지 않는 것 같습니다.

해당 내용을 확인해주셔서 해결 방법을 알려주시면 감사하겠습니다.

안녕하세요, 답변이 늦어져서 죄송합니다. 요즘 코로나로 고생중이었네요…
아무래도 증상을 확인하기 위해서 AS 신청서를 작성하셔서 입고처리하는게 나을꺼 같습니다.
번거롭지만 양해 부탁드립니다.