ros에서 어떠한 기능을 만들기 위해 NODE를 생성하고 이 NODE를 실행시켜야 한다.
그런데 Node는 ROS Package안에 만들어야 한다. 따라서 원하는 기능을 만들어 보기 위해서는 가장먼저 Package를 생성을 해야 한다. 이 Package를 만들고 그 안에 Node를 만들어 실행해 보자.
1. ROS Package 만들기
A. 새로운 ROS Package를 만들기 위해서 terminal을 열고 아래 명령어
i. cd ~/catkin_ws/src // 경로 변경
catkin_create_pkg TEST roscpp // TEST 패키지 생성
catkin_create_pkg [생성할 패키지 이름] [의존성패키지1 의존성패키지2 ........]
B. 위 명령어를 통해 TEST라는 Package를 생성하고 roscpp 의존성을 설정했다.
i. roscpp는 ros 내에서 C++ code를 사용하기 위해서 필요한 패키지이다.
C. 위 명령어를 실행하면 아래와 같이 ~/catkin_ws/src/TEST 폴더와 그 아래 [CMakeLists.txt], [package.xml] 파일이 생성된다.
2. ROS Node 만들기
A. ROS에서 Node를 만들어 보자
Node를 만들기 위해서는 기본적으로 node 내용에 해당하는 cpp 혹은 py 파일을 만들고 해당 파일의 정보를 CMakeLists.txt에 추가하여 빌드 하면 Node를 실행 할 수 있다.
3. ROS Node 기본 형태 (C++)
A. Node를 만들어 보았으니 이제 Node에 Code를 추가해 보죠.
추가할 Code의 내용은 "~~~~ WELCOME TO ROS WORLD ~~~~~~" 를 출력
i. #include <iostream>
int main(int argc, char **argv) //c++ 의 기본 함수형태
{
std::cout << "~~~~ WELCOME TO ROS WORLD ~~~~~~" << std::endl; // Print
return 0;
}
B. 추가로 Build를 위해 CMakeLists.txt와 package.xml을 작성해 줘야 하는데 지금 당장은 우선 아래 코드를 복사해서 붙여 넣기
i. <CMakeLists.txt>
1. 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 ##
#############
ii. <package.xml>
1. <?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>
C. 위와 같이 Code를 입력 후 Workspace에서 catkin_make를 실행 해보면 아래와 같이 Build가 됨
D. 그리고 rosrun TEST tmp 명령어
ros에서 어떠한 기능을 만들기 위해 NODE를 생성하고 이 NODE를 실행시켜야 한다.
그런데 Node는 ROS Package안에 만들어야 한다. 따라서 원하는 기능을 만들어 보기 위해서는 가장먼저 Package를 생성을 해야 한다. 이 Package를 만들고 그 안에 Node를 만들어 실행해 보자.
1. ROS Package 만들기
A. 새로운 ROS Package를 만들기 위해서 terminal을 열고 아래 명령어
i. cd ~/catkin_ws/src // 경로 변경
catkin_create_pkg TEST roscpp // TEST 패키지 생성
catkin_create_pkg [생성할 패키지 이름] [의존성패키지1 의존성패키지2 ........]
B. 위 명령어를 통해 TEST라는 Package를 생성하고 roscpp 의존성을 설정했다.
i. roscpp는 ros 내에서 C++ code를 사용하기 위해서 필요한 패키지이다.
C. 위 명령어를 실행하면 아래와 같이 ~/catkin_ws/src/TEST 폴더와 그 아래 [CMakeLists.txt], [package.xml] 파일이 생성된다.
2. ROS Node 만들기
A. ROS에서 Node를 만들어 보자
Node를 만들기 위해서는 기본적으로 node 내용에 해당하는 cpp 혹은 py 파일을 만들고 해당 파일의 정보를 CMakeLists.txt에 추가하여 빌드 하면 Node를 실행 할 수 있다.
3. ROS Node 기본 형태 (C++)
A. Node를 만들어 보았으니 이제 Node에 Code를 추가해 보죠.
추가할 Code의 내용은 "~~~~ WELCOME TO ROS WORLD ~~~~~~" 를 출력
i. #include <iostream>
int main(int argc, char **argv) //c++ 의 기본 함수형태
{
std::cout << "~~~~ WELCOME TO ROS WORLD ~~~~~~" << std::endl; // Print
return 0;
}
B. 추가로 Build를 위해 CMakeLists.txt와 package.xml을 작성해 줘야 하는데 지금 당장은 우선 아래 코드를 복사해서 붙여 넣기
i. <CMakeLists.txt>
1. 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 ##
#############
ii. <package.xml>
1. <?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>
C. 위와 같이 Code를 입력 후 Workspace에서 catkin_make를 실행 해보면 아래와 같이 Build가 됨
D. 그리고 rosrun TEST tmp 명령어