知之者 不如好之者, 好之者 不如樂之者

기계처럼 살지 말고, 즐기는 인간이 되자

Project/ROS2 + CV + Robot (2023.12~2024.02)

RealSense 기반 ROS2 에서 Real Time CenterPose 실행

코방코 2024. 2. 20. 14:37
728x90

 

 

 

지난 글에서 Isaac ROS CenterPose 를 이용하여 ROS2 docker 환경에서

Object Pose Estimation 이 가능하도록 빌드하였습니다.

 

ROS2 기반 Isaac ROS CenterPose Example 수행하기

Categorized Object Pose Estimation 이 가능한 CenterPose를 ROS2에서 수행시키기 위해, NVIDIA에서 이미 만들어둔 Isaac ROS 기반의 CenterPose를 패키지로 붙여 Depth Camera로 Real Time 분석이 가능하도록 하고자 하였습

cobang.tistory.com

 

이제 이를 이용하여 Intel Real Sense D435 를 이용하여 

Real Time으로 CenterPose 가 수행 가능하도록 빌드하겠습니다.

 

먼저 지난 글에서 빌드했던 docker 환경 내부에

Realsense SDK 설치를 수행합니다.

 

그 전에 x 서버를 활성화 시킵니다.

xhost +local:root

 

docker exec -it <container ID> bash 명령으로 실행시키고

만약 exit 되어있다고 나타나면 

docker start <container ID> 명령으로 docker 컨테이너를 실행시키고 exec 시킵니다.

cd ~

git clone https://github.com/IntelRealSense/librealsense.git

sudo apt-get install libssl-dev libusb-1.0-0-dev libudev-dev pkg-config libgtk-3-dev cmake

sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev at

cd librealsense

sudo ./scripts/setup_udev_rules.sh

./scripts/patch-realsense-ubuntu-lts-hwe.sh

echo 'hid_sensor_custom' | sudo tee -a /etc/modules

mkdir build && cd build

cmake ../ -DBUILD_EXAMPLES=true

make -j$(nproc)

sudo make install

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib' >> ~/.bashrc

source ~/.bashrc

realsense-viewer

중간에 .sh 파일 관련해서 오류가 좀 발생하는데 무시하고 빌드하였습니다.

 

결과적으로 realsense가 붙었습니다.

 

이제 rviz에서 불러올 수 있도록 하겠습니다.

cd /workspace/isaac_ros-dev/src

git clone https://github.com/IntelRealSense/realsense-ros.git -b ros2-development

cd ..

colcon build

ros2 launch realsense2_camera rs_launch.py depth_module.profile:=640x480x30 pointcloud.enable:=true rgb_camera.color_format:=bgr8

 

이제 다른 터미널에서 /image 토픽과 /camera info 토픽을 만들어줍니다.

기존의 topic의 이름을 바꿔서 재발행하는 식으로 수행합니다.

컨테이너 이름은 변경하셔야합니다.

먼저 이미지 토픽입니다.

docker exec -it bc84c43fee93 bash

cd /workspace/isaac_ros-dev

sudo apt-get update

sudo apt-get install ros-humble-topic-tools

ros2 run topic_tools relay /camera/camera/color/image_raw /image

 

camera_info 토픽입니다.

docker exec -it bc84c43fee93 bash

cd /workspace/isaac_ros-dev

ros2 run topic_tools relay /camera/camera/depth/camera_info /camera_info

 

이제 CenterPose를 새 터미널에서 작동시킵니다.

docker exec -it bc84c43fee93 bash

cd /workspace/isaac_ros-dev

ros2 launch isaac_ros_centerpose isaac_ros_centerpose_triton.launch.py model_name:=centerpose_shoe model_repository_paths:=['/tmp/models']

 

새 터미널을 열고 GUI로 결과를 확인합니다.

docker exec -it bc84c43fee93 bash

ros2 run rqt_image_view rqt_image_view

 

rviz2 를 실행시켜 결과를 확인해도 됩니다.

 

ros2 topic 을 통해 결과 값을 확인해보겠습니다.

ros2 topic echo /centerpose/detections

 

실제와 정보가 많이 다릅니다.

box가 쳐지는 것을 보면 이 외에는 잘 인식이 되고있는 것 같은데,

camera coordinate가 잘못 도출되는 것을 보아

camera_info 처리 과정에 수정이 필요할 것 같습니다.

 

 

 

Docker 컨테이너 내부에 ROS2 UR3e 연결하기

지난 글에서 docker 컨테이너 내에서 Intel Real sense를 이용하여 Object Pose Estimation을 수행하는 과정을 작성했습니다. RealSense 기반 ROS2 에서 Real Time CenterPose 실행 지난 글에서 Isaac ROS CenterPose 를 이용

cobang.tistory.com

 

 

 

728x90
반응형