차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
| activity:public:2020:ros:201120 [2020/11/20 15:28:22] – 코드 수정 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}) | ||
| 줄 84: | 줄 87: | ||
| ====2.2. 메세지(msg) 등록==== | ====2.2. 메세지(msg) 등록==== | ||
| <sxh cpp title: | <sxh cpp title: | ||
| - | 여기에 코드 작성 | + | Time stamp | 
| + | int32 data | ||
| </ | </ | ||
| + | time, int32 : 메세지 형식 | ||
| ====2.3. 노드 코드 작성==== | ====2.3. 노드 코드 작성==== | ||
| 줄 91: | 줄 96: | ||
| ===2.3.1. 퍼블리셔(publisher)=== | ===2.3.1. 퍼블리셔(publisher)=== | ||
| <sxh cpp title: | <sxh cpp title: | ||
| - | #include " | + | #include " | 
| #include " | #include " | ||
| 줄 102: | 줄 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); | ||
| 줄 116: | 줄 121: | ||
| ROS_INFO(" | ROS_INFO(" | ||
| ROS_INFO(" | ROS_INFO(" | ||
| + | //ROS INFO는 printf 와 비슷하다. ros의 경우 목적에 따라 다른 print 명령어 모양을 가지고 있다. | ||
| ros_tutorial_pub.publish(msg); | ros_tutorial_pub.publish(msg); | ||
| 줄 135: | 줄 140: | ||
| // message named ' | // message named ' | ||
| // the ' | // the ' | ||
| - | void msgCallback(const ros_tutorials_topic:: | + | void msgCallback(const ros_tutorials_topic:: | 
| { | { | ||
| ROS_INFO(" | ROS_INFO(" | ||
| 줄 144: | 줄 149: | ||
| int main(int argc, char **argv) | int main(int argc, char **argv) | ||
| { | { | ||
| - | ros:: | + | ros:: | 
| ros:: | ros:: | ||
| 줄 151: | 줄 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 | ||
| 줄 161: | 줄 166: | ||
| </ | </ | ||
| - | =====3. 서비스(Service) 서버 <-> 클라이언트 노드===== | ||
| - | |||
| - | |||
| - | =====4. 액션(Action) 서버 <-> 클라이언트 노드===== | ||
| - | |||
| - | |||
| - | =====5. 파라미터===== | ||
| - | |||
| - | |||
| - | =====6. roslaunch 활용===== | ||