[Robotics] Depth Camera Rviz 띄워보기
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
정상적으로 작동한다
이제 Depth camera의 정보를 가져오는 것을 연습해보자