[긴급] 라즈베리파이 os와 ROS2 압축폴더 문제
페이지 정보

본문
REMOTE PC 버전: Ubuntu 20.04
ROS 버전: ROS2 foxy
MYBOX에서 제공하는 STELLA_N2_PI_X4PRO_ROS2_v2.0.img 를 sd카드에 굽고
https://idearobot.gitbook.io/stella-n2-raspberry-pi-4/stella-n2-2/raspberry-pi-single-board-computer/untitled
위 블로그에서 명시하는 명령어를 수행했습니다.
sudo apt-get update && sudo apt-get upgrade
하는 과정에서 ros2 저장소의 GPG 키가 만료되었거나 변경되었다는 오류가 떴고, 새로운 ROS2 저장소의 GPG 키를 추가해줬습니다.
이때 ROS2 저장소에서 제공하는 python3-colcon-notification 패키지가 라즈베리파이 os (Buster) 가 구버전이라 기본 dpkg 도구가 처리할 수 없는 최신 압축 방식을 지원하여 호환성 문제로 ros2 패키지를 업데이트/업그레이드를 시킬 수 없었고,
이로 인한 오류로
wget https://raw.githubusercontent.com/ntrexlab/ROS_INSTALL_SCRIPT/main/install_ros2_foxy_rp4.sh && chmod 755 ./install_ros2_foxy_rp4.sh && bash ./install_ros2_foxy_rp4.sh
명령어 실행에서도 오류가 떴습니다.
stella_ahrs, stella_md, ydlidar_ros2_driver 이 세가지 패키지에서 zst 압축 문제로 설치되지 않는 에러가 발생합니다.
ls -la /dev/ 로 연결된 디바이스를 확인해도
YDLIDAR, MW, BT 항목은 있으나 AHRS는 확인되지 않습니다. 윈도우에서 UI로 AHRS가 잘 인식되는 것은 확인했고
https://blog.naver.com/idea_robot/223205922143
위 블로그에서 통신 설정도 마쳤습니다.
어떻게 해결해야 할지 알려주시면 감사하겠습니다.
- 이전글stella_teleop 모터 구동 문제 25.07.24
- 다음글[긴급] 원격 PC AHRS 폴더 없음, ros2 command not found 25.07.19
댓글목록

최고관리자님의 댓글
최고관리자 작성일
안녕하세요.
아이디어 로봇입니다.
STELLA_N2_PI_X4PRO_ROS2_v2.0.img 파일을 사용하셨다면 해당 라즈베리파이에는 이미 ROS2가 설치되어 있고 STELLA 패키지도 빌드가 되어있습니다.
wget 명령어는 ros 설치 명령어이기 때문에 실행하시게 되면 오히려 충돌이 발생할 수 있습니다.
GPG키 만료의 경우 ros2 foxy에 대한 공식 지원이 종료되었기 때문에 발생하는 것으로 예상됩니다.
이에 가장 권장되는 해결 방안은 지원이 종료되지 않은 ros2 Humble 버전을 사용하시는 것입니다.
AHRS의 경우 ls -la /dev/ 를 확인하였을 때 ttyUSBn이 0~2까지 있는지 추가 확인 부탁 드리며,
USB 케이블의 문제일 수도 있기 때문에 윈도우에 연결하셨을 때와 로봇에 장착하셨을 때 같은 케이블을 사용하셨는지도 알려주시면
문제 원인을 파악하여 해결 방법을 안내 드리겠습니다.

김김김님의 댓글
김김김 작성일
/opt 디렉터리 안에 ros 디렉토리가 없는데 정상인가요?
ls -la /dev/ 를 확인하였을 때 ttyUSBn이 0~2 까지 있는 것은 확인 했습니다만, 다른 모듈들과는 다르게 AHRS->ttyUSB0 는 확인할 수 없었습니다. 윈도우에 연결했을 때와 로봇에 장착했 때 같은 케이블을 사용했습니다. 혹시 stella n2 pi x4pro ros2 humble 버전은 이미지가 없나요?

최고관리자님의 댓글의 댓글
최고관리자 작성일
저희가 제작한 라즈베리파이 이미지는 ROS를 wget 명령어를 사용하여 설치하였습니다.
이 경우 opt 디렉터리가 아닌 다른 경로에 설치가 되며 ROS 실행에는 문제가 없음을 확인하고 이미지를 생성하였습니다.
이미지를 구운 뒤 바로 ros2 launch stella_bringup robot.launch.py 명령어를 사용하여 보시면 ROS가 작동하는 것을 확인하실 수 있습니다.
라즈베리파이OS는 ROS의 공식 지원 OS가 아니기 때문에 이러한 문제가 일부 발생합니다.
ttyUSBn이 0~2 까지 있는 것이 확인 되었다면 AHRS는 정상 연결이 되어 있지만,
일부 설정 값이 다르게 적용되어 rules에서 AHRS를 감지하지 못하고 있는 상태인 것으로 예상됩니다.
YDLIDAR와 MD로 연결되지 않은 ttyUSB를 기준으로
udevadm info -a /dev/ttyUSBn | grep idVendor
udevadm info -a /dev/ttyUSBn | grep idProduct
udevadm info -a /dev/ttyUSBn | grep serial
명령어를 사용하시어 각 값을 확인하시고
STELLA 패키지 내부의 stella_bringup/stella.rules 파일을 nano혹은 vi와 같은 수정 툴으로 AHRS 부분에 값을 확인하신 값으로 수정하여 주신 다음
cd 명령어로 stella_bringup 디렉터리로 이동하시고
sh delete_udev_rules.sh 와 sh create_udev_rules.sh 를 한 번 씩 실행하여 주시면 AHRS의 rules가 적용될 것 입니다.
stella n2 pi x4pro ros2 humble 버전은 저희가 다른 개발 일정으로 인해 이미지를 만들지 못하여서 x4 버전 이미지로 설치하신 후
https://github.com/ntrexlab/STELLA_N1_PI_X4_PRO_ROS2_v2.0/tree/Humble/stella/ydlidar_ros 해당 라이다 패키지로 라이다 패키지만 교체하시어
빌드 후 사용하시면 문제 없이 사용하실 수 있으실 것입니다.

김김김님의 댓글
김김김 작성일그리고 라즈베리파이에 관련 패키지들이 이미 빌드되어 있다면, ros나 스텔라 라이브러리를 설치하지 않고 바로 ros를 활성화 시키고 launch.py를 실행시켜도 되는 것인지 궁금합니다.

최고관리자님의 댓글의 댓글
최고관리자 작성일
네 이미지 파일을 공유하는 가장 큰 이유가 복잡하고 시간이 많이 소요되는 ROS 설치 과정을 생략하여 바로 ros를 사용하실 수 있게 하기 위한 것이기 때문에 바로 실행 시키실 수 있습니다.
다만 현재 상태에서는 X4-PRO와 AHRS rules의 설정은 필요하실 것 같습니다.

김김김님의 댓글의 댓글
김김김 작성일해결했습니다. 감사합니다!
