본문 바로가기

전체 글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.
21년 6월 7일 저녁 인천 서구 심곡동 통큰대구막창 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