테스트 환경
Product : CLEB-G-01A
카메라 : CLCC-G-01x
JETPACK Version : 5.1.2
예제 실행 방법
Docker 설치 및 개발 환경 설정 해당 페이지를 참고하여 개발 환경을 세팅한다.
isaac ros common 과 image segmentation 레포지토리를 워크스페이스에 다운
cd ${ISAAC_ROS_WS}/src git clone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git git clone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_image_segmentation.git
image segmentation 패키지에서 샘플데이터 파일 추출
cd ${ISAAC_ROS_WS}/src/isaac_ros_image_segmentation && \ git lfs pull -X "" -I "resources/rosbags/"
docker 컨테이너 실행
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \ ./scripts/run_dev.sh
의존패키지 설치
sudo apt-get install -y ros-humble-isaac-ros-unet ros-humble-isaac-ros-triton ros-humble-isaac-ros-dnn-image-encoder
model 레포지토리를 생성하고 PeopleSemSegNet ShuffleSeg etlt 파일과 cache 파일 다운
mkdir -p /tmp/models/peoplesemsegnet_shuffleseg/1 cd /tmp/models/peoplesemsegnet_shuffleseg wget https://api.ngc.nvidia.com/v2/models/nvidia/tao/peoplesemsegnet/versions/deployable_shuffleseg_unet_v1.0/files/peoplesemsegnet_shuffleseg_etlt.etlt wget https://api.ngc.nvidia.com/v2/models/nvidia/tao/peoplesemsegnet/versions/deployable_shuffleseg_unet_v1.0/files/peoplesemsegnet_shuffleseg_cache.txt
샘플데이터의 config 파일 복사
cp /workspaces/isaac_ros-dev/src/isaac_ros_image_segmentation/resources/peoplesemsegnet_shuffleseg_config.pbtxt /tmp/models/peoplesemsegnet_shuffleseg/config.pbtxt
etlt 파일을 TensorRT 모델 파일로 컨버트(다른 단계보다 시간이 많이 소요되는 단계이다)
/opt/nvidia/tao/tao-converter -k tlt_encode -d 3,544,960 -p input_2:0,1x3x544x960,1x3x544x960,1x3x544x960 -t int8 -c peoplesemsegnet_shuffleseg_cache.txt -e /tmp/models/peoplesemsegnet_shuffleseg/1/model.plan -o argmax_1 peoplesemsegnet_shuffleseg_etlt.etlt
launch 파일로 image segmentation 실행
ros2 launch isaac_ros_unet isaac_ros_unet_triton.launch.py model_name:=peoplesemsegnet_shuffleseg model_repository_paths:=['/tmp/models'] input_binding_names:=['input_2:0'] output_binding_names:=['argmax_1'] network_output_type:='argmax' input_image_width:=1200 input_image_height:=632
카메라 영상의 토픽을 전송하기 위해 다른 터미널에서 docker 컨테이너 실행
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \ ./scripts/run_dev.sh ros2 run image_publisher image_publisher_node /dev/video0 --ros-args -r image_raw:=image
뷰어로 영상을 보기 위해 다른 터미널에서 docker 컨테이너 실행
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \ ./scripts/run_dev.sh ros2 run rqt_image_view rqt_image_view