본문 바로가기

분류 전체보기119

ROS 패키지 생성하기(한 노드에 여러기능 ) 아래에서 하나의 노드에 퍼블리셔나 서브크라이버 . 하나씩만 기능을 주었었다. 하지만 , 하나의 노드에 여러개의 기능을 넣어서 작성하는 것이 가능하고 , 또한 대부분 그렇게 패키지가 구성되어 있다. 먼저 , 토픽이나 서비스를 이용할 시 디렉토리를 msg 나 ,srv디렉토리를 만들어주었는데 ! 두가지의 기능을 이용하려면 , 두 개의 디렉토리를 다 만들어서 각 디렉토리에 메시지 파일을 만들어 주어 사용한다. 위와 같은 식으로 디렉토리를 만들고 , src에 기존대로 노드 파일을 만든다. 이번에 만든 것은 두개의 노드로, 하나는 퍼블리셔와 서비스 서버의 기능을 하는 노드, 하나는 서브스크라이버와 서버스 클라이언트 기능을 하는 노드이다. 아래는 노드를 작성한 코드이다. 1 2 3 4 5 6 7 8 9 10 11 1.. 2021. 6. 17.
ROS launch 파일 만들기 roslaunch 는 여래개의 노드를 한번에 실행시킬수 있도록 하는 .launch 확장자를 가진 파일이다. 처음 패키지를 생성시에는 존재하지 않으며 , 우리가 원하는 대로 launch 파일을 만들 수 있다. 먼저 패키지디렉토리에서 launch 디렉토리를 만들고 , 그 하위에 파일명.launch 파일을 만들다. 간단하게만 구성을 해보면 launch 태그로 시작하고 태그로 끝낸다 안에 태그가 있는데 이것은 위와 같은 식으로 구성된다. 위를 실행시킬 노드 별로 해 주어야한다. 두 개를 실행시킨다면 두 개가 되는 것이다. 위에서 2021. 6. 11.
ROS 분석하는 방법(자주 쓰이는 분석 명령어...) 앞에서는 메시지파일부터 노드등 다 직접 만들어서 사용하였는데 , 물론 그렇게 해야 할 수도 있지만, 기존에 있는 패키지나 노드 , 메시지등 가져와서 사용하는 경우가 많다. 이때 이 패키지가 어떤 메시지를 사용하고 , 어떤 데이터를 받아오며 , 어떤데이터를 보내는지 등 패키지 내용을 알아야 사용할 수 있다. 이때 노드가 적을 수도 있고 , 많을 수도 있는데 많을경우 이 많은 노드에 일일이 들어가며 확인 할 순 없으니 , 대략적은 분석을 하기 위한 명령어가 존재한다. 이는 메시지가 topic 일때 , service일때 조금 다르며, 아래에서 하나씩 실행해보며 보려한다. 많은 명령어가 있지만 , 자주 쓰이는 명령어들이다. 먼저 roscore는 켜 놓는다.. 그리고 launch 파일을 켜던지 노드 하나를 켜고,.. 2021. 6. 11.
ROS 패키지 생성하기(ServiceServer, ServiceClient, Service사용) 이번에는 Service 메세지를 이용하여 패키지를 만들어 본다. 노드로는 Service Server, Service Client 의 구성이 된다. 먼저 무조건 선행되어야할 ... 워크스페이스(catkin_ws)의 src로 이동한다. ( 패키지 생성 디렉토리 ) 그 다음으로는 패키지 생성 명령어를 입력한다. $ catkin_create_pkg [패키지이름] [의존성패키지1 의존성패키지2 .....] 이번에도 메세지 파일을 내가 만들어 쓸 것 이기 때문에 message_generation 을 추가하였다. src 하위로 yh_tuto_service 디렉토리가 생성되고 , 하위로 package.xml , CMakeLists.txt 파일, include, src 디렉토리가 생성된다. 패키지 디렉토리로 이동하여 작.. 2021. 6. 9.
728x90