차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
activity:public:2020:ros:201120 [2020/11/20 15:35:20] – MsgTutorial.msg 추가 david | activity:public:2020:ros:201120 [2021/01/28 00:38:17] (현재) – khr9648 | ||
---|---|---|---|
줄 2: | 줄 2: | ||
2020년 11월 20일 금요일 13:30\\ | 2020년 11월 20일 금요일 13:30\\ | ||
ZOOM 화상회의 | ZOOM 화상회의 | ||
+ | {{youtube> | ||
=====1. ROS 기초 프로그래밍===== | =====1. ROS 기초 프로그래밍===== | ||
줄 33: | 줄 34: | ||
===2.1.2. package.xml=== | ===2.1.2. package.xml=== | ||
<sxh xml title: | <sxh xml title: | ||
- | <?xml version=" | + | <?xml version=" |
< | < | ||
- | < | + | < |
< | < | ||
- | < | + | < |
< | < | ||
<author email=" | <author email=" | ||
줄 45: | 줄 46: | ||
<url type=" | <url type=" | ||
< | < | ||
- | < | + | < |
< | < | ||
< | < | ||
- | < | + | < |
< | < | ||
< | < | ||
줄 56: | 줄 57: | ||
===2.1.3. CMakeLists.txt=== | ===2.1.3. CMakeLists.txt=== | ||
+ | 작성한 노드를 빌트 할때 즉 소스코드 작성 후 실행파일을 만들때 사용되는 옵션들 | ||
<sxh cpp title: | <sxh cpp title: | ||
cmake_minimum_required(VERSION 2.8.3) | cmake_minimum_required(VERSION 2.8.3) | ||
- | project(ros_tutorials_topic) | + | project(ros_tutorials_topic) |
- | find_package(catkin REQUIRED COMPONENTS message_generation std_msgs roscpp) | + | find_package(catkin REQUIRED COMPONENTS message_generation std_msgs roscpp) |
- | + | ||
- | add_message_files(FILES MsgTutorial.msg) | + | |
- | generate_messages(DEPENDENCIES std_msgs) | + | |
+ | add_message_files(FILES MsgTutorial.msg) | ||
+ | generate_messages(DEPENDENCIES std_msgs) | ||
+ | ##캐킨 패키지 옵션으로 라이브러리, | ||
catkin_package( | catkin_package( | ||
LIBRARIES ros_tutorials_topic | LIBRARIES ros_tutorials_topic | ||
줄 73: | 줄 75: | ||
include_directories(${catkin_INCLUDE_DIRS}) | include_directories(${catkin_INCLUDE_DIRS}) | ||
- | add_executable(topic_publisher src/ | + | ## |
+ | add_executable(topic_publisher src/ | ||
add_dependencies(topic_publisher ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) | add_dependencies(topic_publisher ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) | ||
target_link_libraries(topic_publisher ${catkin_LIBRARIES}) | target_link_libraries(topic_publisher ${catkin_LIBRARIES}) | ||
- | add_executable(topic_subscriber src/ | + | add_executable(topic_subscriber src/ |
add_dependencies(topic_subscriber ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) | add_dependencies(topic_subscriber ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) | ||
target_link_libraries(topic_subscriber ${catkin_LIBRARIES}) | target_link_libraries(topic_subscriber ${catkin_LIBRARIES}) | ||
줄 87: | 줄 90: | ||
int32 data | int32 data | ||
</ | </ | ||
+ | time, int32 : 메세지 형식 | ||
====2.3. 노드 코드 작성==== | ====2.3. 노드 코드 작성==== | ||
줄 92: | 줄 96: | ||
===2.3.1. 퍼블리셔(publisher)=== | ===2.3.1. 퍼블리셔(publisher)=== | ||
<sxh cpp title: | <sxh cpp title: | ||
- | #include " | + | #include " |
#include " | #include " | ||
줄 103: | 줄 107: | ||
// message file from the ' | // message file from the ' | ||
// ' | // ' | ||
- | ros:: | + | ros:: |
// Set the loop period. ' | // Set the loop period. ' | ||
ros::Rate loop_rate(10); | ros::Rate loop_rate(10); | ||
줄 117: | 줄 121: | ||
ROS_INFO(" | ROS_INFO(" | ||
ROS_INFO(" | ROS_INFO(" | ||
+ | //ROS INFO는 printf 와 비슷하다. ros의 경우 목적에 따라 다른 print 명령어 모양을 가지고 있다. | ||
ros_tutorial_pub.publish(msg); | ros_tutorial_pub.publish(msg); | ||
줄 136: | 줄 140: | ||
// message named ' | // message named ' | ||
// the ' | // the ' | ||
- | void msgCallback(const ros_tutorials_topic:: | + | void msgCallback(const ros_tutorials_topic:: |
{ | { | ||
ROS_INFO(" | ROS_INFO(" | ||
줄 145: | 줄 149: | ||
int main(int argc, char **argv) | int main(int argc, char **argv) | ||
{ | { | ||
- | ros:: | + | ros:: |
ros:: | ros:: | ||
줄 152: | 줄 156: | ||
// message file from the ' | // message file from the ' | ||
// ' | // ' | ||
- | ros:: | + | ros:: |
// A function for calling a callback function, waiting for a message to be | // A function for calling a callback function, waiting for a message to be | ||
줄 162: | 줄 166: | ||
</ | </ | ||
- | =====3. 서비스(Service) 서버 <-> 클라이언트 노드===== | ||
- | |||
- | |||
- | =====4. 액션(Action) 서버 <-> 클라이언트 노드===== | ||
- | |||
- | |||
- | =====5. 파라미터===== | ||
- | |||
- | |||
- | =====6. roslaunch 활용===== | ||