일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- argparse 사용법
- 객체지향
- ROS Package 명
- Python list 내 for
- python
- Class(Object)
- ROS Package 만들기
- Object 상속
- Python for list
- Object Orient
- ROS Package 이름
- ROS Package 생성
- ROS Node 만들기
- argparse
- Python for range
- python for
- Today
- Total
일단해봐
[ROS] Study_2 Package 생성 (Node 생성) 본문
ROS에서 어떠한 기능을 만들기 위해 Node를 생성하고 이 Node를 실행시켜야 한다.
그런데 Node는 ROS Package안에 만들어야 한다. 따라서 원하는 기능을 만들어 보기 위해서는 가장먼저 Package를 생성을 해야 한다. 이 Package를 만들고 그 안에 Node를 만들어 실행해 보자.
ROS Package 만들기
새로운 ROS Package를 만들기 위해서 terminal을 열고 아래 명령어를 쳐보자.
cd ~/catkin_ws/src // 경로 변경
catkin_create_pkg TEST roscpp // TEST 패키지 생성
catkin_create_pkg [생성할 패키지 이름] [의존성패키지1 의존성패키지2 ........]
위 명령어를 통해 TEST라는 Package를 생성하고 roscpp 의존성을 설정했다. roscpp는 ros 내에서 C++ code를 사용하기 위해서 필요한 패키지이다.
위 명령어를 실하면 아래와 같이 ~/catkin_ws/src/TEST 폴더와 그 아래 [CMakeLists.txt], [package.xml] 파일이 생성된다.

ROS Node 만들기
ROS에서 Node를 만들어 보자 Node를 만들기 위해서는 기본적으로 node 내용에 해당하는 cpp 혹은 py 파일을 만들고 해당 파일의 정보를 CMakeLists.txt에 추가하여 빌드 하면 Node를 실행 할 수 있다.
ROS Node 기본 형태 (C++)
Node를 만들어 보았으니 이제 Node에 Code를 추가해 보죠. 추가할 Code의 내용은 아주 간단한게 "~~~~ WELCOME TO ROS WORLD ~~~~~~" 를 출력해 보는 걸로 해보죠. 내용은 아래와 같습니다.
#include <iostream>
int main(int argc, char **argv) //c++ 의 기본 함수형태
{
std::cout << "~~~~ WELCOME TO ROS WORLD ~~~~~~" << std::endl; // Print
return 0;
}
<ros1_node.cpp>
추가로 Build를 위해 CMakeLists.txt와 package.xml을 작성해 줘야 하는데 지금 당장은 우선 아래 코드를 복사해서 붙여 넣기 할께요. 지금 우리는 첫 코드를 짜는게 목적이니 두 Code는 나중에 보시죠.
(더보기 누르시면 Code가 보입니다.)
cmake_minimum_required(VERSION 3.0.2)
project(TEST)
find_package(catkin REQUIRED COMPONENTS roscpp)
################################################
## Declare ROS messages, services and actions ##
################################################
################################################
## Declare ROS dynamic reconfigure parameters ##
################################################
###################################
## catkin specific configuration ##
###################################
catkin_package(
)
###########
## Build ##
###########
include_directories(
include
${catkin_INCLUDE_DIRS}
)
add_executable(tmp src/ros1_node.cpp)
#target_link_libraries(tmp ${catkin_LIBRARIES}) # Libraries Link:
#############
## Install ##
#############
#############
## Testing ##
#############
<CMakeLists.txt>
<?xml version="1.0"?>
<package format="2">
<name>TEST</name>
<version>0.0.0</version>
<description>The TEST package</description>
<maintainer email="test1804@todo.todo">test1804</maintainer>
<license>TODO</license>
<buildtool_depend>catkin</buildtool_depend>
<!-- The export tag contains other, unspecified, tags -->
<export>
<!-- Other tools can request additional information be placed here -->
</export>
</package>
<package.xml>
위와 같이 Code를 입력 후 Workspace에서 catkin_make를 실행 해보면 아래와 같이 Build가 되는 것을 볼 수 있습니다.

그리고 rosrun TEST tmp 명령어를 통해 실하면 아래와 같은 결과가 보일꺼에요.

자 보이시나요? 이렇게 처음으로 ROS를 이용해 뭔가를 실행해 보았네요.
사실 엄밀히 말하면 위의 Code는 Node가 아닙니다. 단지 ROS를 이용해 실행 가능한 Code를 만들었을 뿐이에요!
이유는 다음 포스트에서 더 알아보는 걸로 할께욧!
고생하셨어요!
이전글: 2021.10.13 - [ROS] - [ROS] Study_1 Workspace 생성
[ROS] Study_1 Workspace 생성
참조: https://roboticsbackend.com/ros-multiple-catkin-workspaces/ http://wiki.ros.org/ko/catkin/Tutorials/create_a_workspace ROS의 Workspace는 이름 그대로 원하는 작업 수행을 위한 code를 작성하는 공..
goez.tistory.com
'ROS' 카테고리의 다른 글
[ROS] ROS Package 이름 변경 방법 (0) | 2021.10.17 |
---|---|
[git] git 사용법 기록 (0) | 2021.10.14 |
[ROS] Study_1 Workspace 생성 (0) | 2021.10.13 |