RealSense 기반 ROS2 에서 Real Time CenterPose 실행
지난 글에서 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