본문 바로가기

ROS9

ROS 패키지 생성하기(한 노드에 여러기능 ) 아래에서 하나의 노드에 퍼블리셔나 서브크라이버 . 하나씩만 기능을 주었었다. 하지만 , 하나의 노드에 여러개의 기능을 넣어서 작성하는 것이 가능하고 , 또한 대부분 그렇게 패키지가 구성되어 있다. 먼저 , 토픽이나 서비스를 이용할 시 디렉토리를 msg 나 ,srv디렉토리를 만들어주었는데 ! 두가지의 기능을 이용하려면 , 두 개의 디렉토리를 다 만들어서 각 디렉토리에 메시지 파일을 만들어 주어 사용한다. 위와 같은 식으로 디렉토리를 만들고 , src에 기존대로 노드 파일을 만든다. 이번에 만든 것은 두개의 노드로, 하나는 퍼블리셔와 서비스 서버의 기능을 하는 노드, 하나는 서브스크라이버와 서버스 클라이언트 기능을 하는 노드이다. 아래는 노드를 작성한 코드이다. 1 2 3 4 5 6 7 8 9 10 11 1.. 2021. 6. 17.
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.
ROS 패키지 생성하기(Publisher, Subscriber, Topic사용) 한번 기본적인 패키지를 생성해보려고 한다. Topic 메세지를 이용한 Publisher , Subscriber 노드의 패키지이다. ROS는 C++ , python 을 주로 활용하여 코드를 작성하는데 , C++의 활용도가 조금 더 높다고 한다. 먼저 모든것의 선행조건은 해당 디렉토리로의 이동이다. 앞서 이야기 했듯이 ROS 패키지는 워크스페이스의 src 디렉토리에서 생성한다. src로 이동 하여 , 패키지를 생성하는 명령어를 실행한다. $ catkin_create_pkg [생성할 패키지 이름] [의존성패키지1 의존성패키지2 ........] 위 명령에서의 [생성할 패키지이름]은 yh_210608_1 이 되고 의존성패키지로는 3개가 포함되는데 , std_msgs 와 roscpp , message_genera.. 2021. 6. 8.
728x90