1 분 소요

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가 동시에 설치되어 있었을때 빈번히 발생하는 문제로, 이를 위해서는

  1. 파이썬3를 기본 파이썬(default)로 설정해주거나,(심볼릭 링크 설정)
    sudo ln -s /usr/bin/python3 /usr/bin/python
    
  2. 파이썬3로 실행하도록 각 파이썬파일을 마다 일일이 셰뱅(shebang)을 수정해주거나,(명시적 지정)
    #!/usr/bin/env python3
    
  3. 파이썬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에 기본템플릿 오픈소스 넣어서 활용해보기

해당링크로 들어가면 아래와 같이 깃허브 레포지토리로 들어가게 된다.

brave_ibzMubGfuw

위 레포지토리를 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

brave_79w3saelnP

2.rqt_graph

brave_NR6tEUXXy2

usage_example.py파일의 케이스별 분석

case(1)

brave_3do6ORGR4u

result(1)

brave_NK9F2vxB7y

case(2)

brave_Oxt0cZON96

result(2)

brave_U6XJ7noWVx

언어:

카테고리:

업데이트:

댓글남기기