지난 글에서 Isaac ROS CenterPose 를 이용하여 ROS2 docker 환경에서
Object Pose Estimation 이 가능하도록 빌드하였습니다.
이제 이를 이용하여 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 처리 과정에 수정이 필요할 것 같습니다.
'Setup & Example > ROS2 + 예제' 카테고리의 다른 글
Docker 컨테이너 내부에 ROS2 UR3e 연결하기 (1) | 2024.02.27 |
---|---|
ROS2 기반 Isaac ROS CenterPose Example 수행하기 (0) | 2024.02.20 |
ROS2 에서 Vision 기반 UR3e Pick and Place 수행하기 (0) | 2024.02.16 |
ROS2 에서 Intel realsense 기반 YOLOv8 분석하고 결과 topic publishing 하기 (0) | 2024.02.06 |
ROS2 MoveIt2 이용하여 UR3e 의 Link Position 및 Quaternion 획득하기 (0) | 2024.01.31 |