코딩일지(2024-08-01)
PCL개발 1일차
기본적으로 패키지는 ~/catkin_ws/src 아래에 설치한다는 것을 알았다.
이후 그곳에 있는 파이썬을 ros로 실행하기 위해 (python3명령어가 아니라) rosrun명령어로 실행해야 한다는 것을 알았다.
트러블슈팅(shebang의 중요성)
이슈>
jacksmith@jacksmith-desktop:~/catkin_ws$ rosrun rviz_template usage_example.py
/usr/bin/env: ‘python’: No such file or directory
이는 파이썬2와 파이썬3가 동시에 설치되어 있었을때 빈번히 발생하는 문제로, 이를 위해서는
- 파이썬3를 기본 파이썬(default)로 설정해주거나,(심볼릭 링크 설정)
sudo ln -s /usr/bin/python3 /usr/bin/python
- 파이썬3로 실행하도록 각 파이썬파일을 마다 일일이 셰뱅(shebang)을 수정해주거나,(명시적 지정)
#!/usr/bin/env python3
- 파이썬3를 기본으로 사용하도록 설정해주는 패키지를 설치해주거나,
sudo apt install python-is-python3
이런 다양한 방식들이 있겠다. 나는 두번째 방식을 취했다. 세부순서는 다음과 같았다.
# 1. Shebang 라인 수정: 파이썬3를 기본으로 참조하도록 설정
usage_example.py >> "#!/usr/bin/env python3"
# 2. 스크립트 실행 권한 설정
chmod +x /home/jacksmith/catkin_ws/src/rviz_template/src/usage_example.py
# 3. rosrun 명령어로 파일 실행
rosrun rviz_template src/usage_example.py
catkin_ws/src에 기본템플릿 오픈소스 넣어서 활용해보기
해당링크로 들어가면 아래와 같이 깃허브 레포지토리로 들어가게 된다.
위 레포지토리를 git clone으로 받는다. 이후 이를 실행하는 방법은 총 두가지다.
실행방법(1): 각 노드를 개별적으로 실행하는 방법
기본적으로 로스 마스터를 실행시켜주고(roscore), rviz_template 패키지(레포지토리가 곧 패키지다) 안에 있는 uage_example.py를 실행시켜 총 두개의 노드를 생성하고 실행시킨다. 그리고 마지막으로 노드들간의 인터렉션을 시각화해주는 툴인 rviz를 실행시켜준다.
roscore
rosrun rviz_template usage_example.py
rviz -d [rviz 파일 경로]/rviz_config.rviz
cf. 위에서 언급한 두개의 노드는 다음과 같다.
- visual_rviz_node: 마커를 생성하는 노드
- rviz_node: 마커를 subscribe해 시각화해주는 노드
실행방법(2): 실행해야 할 각 노드가 하나로 묶여 설정되어 있는 런치파일 하나만 실행하는 방법
rosrun을 이용해 각 노드를 개별적으로 실행시킬 수 있다. 하지만 이는 귀찮다.
이를 위해 만들어진게 roslaunch인데, 위에서 정리한 명령어를 xml형식으로 바꾼 것 뿐이다.
# format
roslaunch [package_name] [launch_name]
# me
roslaunch rviz_template example.launch
(이 launch파일이 ros상에서 다양한 명령어들을 묶어놓은 명령어 매크로 파일이라 여겨도 무방할 것 같다. 마치 리눅스상에서 다양한 명령어들을 묶어놓은 배시파일이 있는 것처럼 말이다.)
result>
1.rviz
2.rqt_graph
댓글남기기