Robotics/ROS

[Robotics] Depth Camera Rviz 띄워보기

쫑쫑JJONG 2023. 4. 6. 20:41
728x90

 

roscore

일단 rviz를 사용하기 위해서는 roscore를 돌리는 것이 필수라고 하기 때문에

ip 주소 확인부터 해준다

ifconfig

다음 명령어를 터미널에 입력하면

리눅스에서

유선인 경우 enp3s0으로 나오고 무선일 때는 wlp2s0로 나오는데 본인의 경우 무선일 때 wlo1로 나왔다

(ip 주소인 경우 inet의 주소를 확인하면 된다)

 

현재 돌리고 있는 데스크탑을 Master로 사용할 것이기 때문에

HOSTNAME을 지금의 ip주소로 바꿔주자

 

지금의 환경변수를 확인하고 싶으면

env

만약 환경 변수를 편집하고 싶으면

vim ~/.bashrc

를 누르고 i 를 누른다음 편집이 완료되면

esc -> :wq 입력

그 다음

source ~/.bashrc

 

만약 다음과 같이

bash: export: `/home/kist/catkin_ws/src': not a valid identifier

이런 오류가 나온다면 본인이 = 앞뒤에 스페이스바를 넣었는지 확인해보자

 

<수정 전>

export ROS_PACKAGE_PATH= ~/catkin_ws/src:/opt/ros/noetic/share

<수정 후>

export ROS_PACKAGE_PATH=~/catkin_ws/src:/opt/ros/noetic/share

이 실수를 너무 자주한다 ㅠㅠ(주 언어가 파이썬이여서)

 

 

그러고 나서 roscore를 실행 시켜보면 잘 작동된다

roscore

 

 

rviz

roscore를 실행시킨 상태로 새로운 터미널을 열어서 rviz를 실행시키자

 

만약 맨 처음 다운로드 받을 때

ros-[ROS_DISTRO]-desktop-full

로 받았다면 rviz는 다운로드 되어 있다

하지만 만약 설치가 안되었으면 

sudo apt-get install ros-[본인버전]-rviz

해주고

rviz

실행시켜주면

 rviz를 사용할 수 있다

 

아무것도 안켜져서

 

roscore -> roslaunch -> rviz 순으로 진행했는데

일반적인 roslaunch를 하면 

roslaunch realsense2_camera rs_camera.launch

새로운 터미널 열고

rviz

Global Options 에 Fixed Frame을 camera_depth_frame 으로 바꿔주고

 

왼쪽 창 아래에 보면 Add 버튼을 누르면 

다음과 같은 창이 뜨는데 

실험용이므로

 

 

By topic 에 depth 안에 있는 DepthCloud를 눌러주자

 

그러면 다음과 같이 뜬다

참고하고 있는 책에 PointCloud를 사용하길래 다시 Add를 눌러 (depth cloud는 꺼주고)

by display type 에 있는 pointcloud2를 눌러주면

아무것도 안나오고 심지어 topic도 받아오지 못한다

 

 

rviz topic 값 받아오지 못하는 문제 해결

곰곰히 고민해보고 여러가지를 시도해본 결과 내린 결론은

 

roslaunch에 있다

아래의 링크를 들어가보면  realsense를 위한  다양한 roslaunch 파일들의 설명이 있는데

먼저 desktop-full로 받았므로 밑에 링크에 있는 launch들은 모두 데스크탑에 들어있는 것 같다

 

https://dev.intelrealsense.com/docs/ros-wrapper

 

ROS & ROS2

The ROS wrapper allows you to use Intel RealSense Depth Cameras with ROS and ROS2.The ROS Wrapper Releases (latest and previous versions), can be found at Intel RealSense ROS releasesThese are the ROS2 supported Distributions: Rolling Ridley (Ubuntu 22.04

dev.intelrealsense.com

 

하지만

위에서 보았듯이 내가 작동 시킨 것은 starting camera node 에 있는 것으로

 

rs_camera.launch 파일을 실행 한 것이다

그렇기 때문에 간단한 동작만 가능하고 pointcloud는 실행이 되지 않는 것이다

그 예시로 demo_pointcloud.launch를 실행시키면 

 

다음과 같은 코드

roslaunch realsense2_camera demo_pointcloud.launch

 

터미널의 warning 은 일단 무시해주기로 했다

정상적으로 작동한다

 

이제 Depth camera의 정보를 가져오는 것을 연습해보자

728x90