Piper ros 및 jetpack 버전 문의사항

안녕하세요.

PiPER를 jetson thor상에서 사용하고 있습니다.

현재 PiPER ROS를 사용해볼려고 하는데요.

이전 PiPER에 대한 안내를 받았을 때, Ubuntu 24.04에서는 PiPER가 제대로 동작하지 않을 수 있다는 답변을 유선상으로 받았습니다.

현재 Jetson Thor는 jetpack 7.x 이상만 지원하는것으로 인지하고 있는데요.

Thor상에서 Ubuntu 22.04버전에 대해 사용하고 계신건지 혹은 PiPER가 Ubuntu 24.04(Jetpack 7.x)에서 정상작동 되는것인지 문의드립니다.

안녕하세요, mjung11님.
WeGo Robotics 기술지원팀입니다.

PiPER ROS 및 Jetson Thor 환경에 관한 문의 주셔서 감사합니다.

현재 상황을 정리해 드리면 다음과 같습니다.

■ PiPER 공식 ROS 패키지 지원 현황

현재 AgileX에서 제공하는 piper_ros 및 piper_sdk는 Ubuntu 22.04 / ROS 2 Humble 환경을 기준으로 개발 및 검증되어 있습니다. Ubuntu 24.04 (ROS 2 Jazzy) 환경에 대한 공식 지원은 아직 제공되지 않으며, 일부 Python 의존성 및 CAN 인터페이스 관련 동작에서 문제가 발생할 수 있습니다.

■ Jetson Thor (JetPack 7.x) 환경에 대하여

Jetson Thor는 JetPack 7.x 전용 플랫폼으로, Ubuntu 24.04만 공식 지원됩니다. 이로 인해 Ubuntu 22.04 네이티브 환경 구성이 어렵습니다.

현 시점에서 저희가 권장드리는 방법은 Docker 컨테이너를 활용한 Ubuntu 22.04 / ROS 2 Humble 환경 구성입니다. Jetson Thor 위에서 Ubuntu 22.04 기반 Docker 컨테이너를 실행하면, GPU 및 CAN 인터페이스는 호스트의 드라이버를 공유하면서 piper_ros를 안정적으로 사용하실 수 있습니다.

구체적인 Docker 환경 구성 방법은 추가 문의 주시면 별도로 안내해 드리겠습니다.

■ Ubuntu 24.04 네이티브 지원 관련

Ubuntu 24.04 / ROS 2 Jazzy 공식 지원 여부는 AgileX 개발팀에 확인 중이며, 업데이트되는 사항은 신속하게 공유드리겠습니다.

추가 문의 사항이 있으시면 언제든지 연락 주세요.
감사합니다.

WeGo Robotics 기술지원팀 드림

안녕하세요 sw.han님.

확인 감사드립니다.

Docker 환경 구성 방법에 대해 추가로 안내해주시길 요청드립니다.

감사합니다.

안녕하십니까, 아래 단계를 통해 ubunt 22.04 도커 설정을 하시면 됩니다.

  1. docker 설치
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker
  1. ros2 이미지 받기
docker pull osrf/ros:humble-desktop

jetson의 경우, 아래 명령어를 실행해주세요.

docker pull dustynv/ros:humble-desktop-l4t-r36.2.0
  1. GUI 권한 허용 (터미널로 실행하는 경우 이를 실행해야 rviz등의 gui가 켜집니다.)
xhost +local:docker
  1. 컨테이너 실행
docker run -it \
  --network host \
  --privileged \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v /dev:/dev \
  osrf/ros:humble-desktop \
  bash


위와 같이 root@user:/#이 나타나며, 여기서 작업을 실행하면 됩니다.

docker 환경에서 빠져나오기 위해서는 exit을 입력하시면 됩니다.

만약 여러 터미널에서 docker를 사용하고자 하는 경우, 아래처럼 실행하시면 됩니다.

(1) 최초 사용 터미널

# 일반 PC
docker run -it \
  --name ros2_humble \
  --network host \
  --privileged \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v /dev:/dev \
  -v $(pwd):/workspace \
  -w /workspace \
  osrf/ros:humble-desktop \
  bash
# Jetson의 경우
docker run -it \
  --name ros2_humble \  
  --network host \
  --privileged \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v /dev:/dev \
  -v $(pwd):/workspace \
  -w /workspace \
  dustynv/ros:humble-desktop-l4t-r36.2.0 \
  bash

-v $(pwd):/workspace$(pwd)가 현재 터미널 경로를 자동으로 가져와 컨테이너의 /workspace 폴더와 연결해주고 동기화되도록 해줍니다. workspace의 이름은 자유롭게 지정할 수 있습니다.


사진과 같이 나타나는 workspace에 들어가면, 컨테이너를 만들 당시 있던 경로인 wego_km_ws의 내용물이 있습니다.

특정 경로를 고정으로 마운트하고 싶으시다면 $(pwd)대신 절대 경로로 써도 됩니다.
예) -v /home/wego/wego_ws:/workspace

-w /workspace는 컨테이너 시작 시 위치입니다.

만약 /home/usr로 시작하고 싶다면,

docker run -it \
  --name ros2_humble \
  --network host \
  --privileged \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v /dev:/dev \
  -v /home/usr:/home/usr \
  -w /home/usr \                                             
  osrf/ros:humble-desktop \ # 자신의 버전에 맞게 사용
  bash

와 같이 실행하면 됩니다.

예시와 같이 usrwego라면 /home/wego로 지정하면 됩니다. 그렇게 하면 호스트에서와 같이 사용할 수 있습니다.

(2) 이후 추가하는 터미널

docker exec -it ros2_humble bash