建立資料夾
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build
1 建立功能包
建立乙個pubsub的包
ros2 pkg create --build-type ament_cmake cpp_pubsub
改xml檔案裡的郵箱
2 寫發布節點
建立ros2_talker.cpp檔案
touch ros2_talker.cpp
具體**如下:
#include
#include
#include
"rclcpp/rclcpp.hpp"
#include
"std_msgs/msg/string.hpp"
using
namespace std::chrono_literals;
/* this example creates a subclass of node and uses std::bind() to register a
* member function as a callback from the timer. */
class
minimalpublisher
:public rclcpp::node
private
:void
timer_callback()
rclcpp::timerbase::sharedptr timer_;
rclcpp::publisher
::sharedptr publisher_;
size_t count_;};
intmain
(int argc,
char
* ar**)
注意!!!
記得右擊ros2_talker.cpp檔案,選擇成為可執行檔案
3 寫訂閱節點
建立ros2_listener.cpp檔案
touch ros2_listener.cpp
具體**如下:
#include
#include
"rclcpp/rclcpp.hpp"
#include
"std_msgs/msg/string.hpp"
using std::placeholders::_1;
class
minimalsubscriber
:public rclcpp::node
private
:void
topic_callback
(const std_msgs::msg::string::sharedptr msg)
const
rclcpp::subscription
::sharedptr subscription_;};
intmain
(int argc,
char
* ar**)
4 修改 cmakelists.txt
在 find_package(ament_cmake required)下面新增
find_package(rclcpp required)
find_package(std_msgs required)
5 新增可執行檔案的名字為ros2_talker和ros2_listener
add_executable(ros2_talker src/ros2_talker.cpp)
ament_target_dependencies(ros2_talker rclcpp std_msgs)
add_executable(ros2_listener src/ros2_listener.cpp)
ament_target_dependencies(ros2_listener rclcpp std_msgs)
6 新增 install(targets…) 把可執行檔案安裝到install去
install(targets
ros2_talker
ros2_listener
destination lib/$
)
7 編譯和執行
cd ~/ros2_ws
colcon build --packages-select cpp_pubsub
source install/setup.bash
執行兩個節點
ros2 run cpp_pubsub ros2_talker
ros2 run cpp_pubsub ros2_listener
ROS2官方教程 ROS2 概念概覽
原文 ros是乙個基於匿名訊息發布 publish 或訂閱 subscribe 機制的中間層,這種機制可以幫助訊息能夠在不同的ros程序之間傳輸。在ros2系統中的核心是ros圖 ros graph ros圖指的是乙個ros系統中的節點網路以及它們之間通訊時的聯絡。在ros圖中,節點是必要的組成部分...
ROS2官網教程學習筆記理解ROS2節點篇
提前準備 學習任務 3 ros2 node info 總結以下內容主要對官網教程進行翻譯 在ros2中單獨提出了graph概念,在接下來的教程中,將學習構成ros2網路的一系列關於ros2核心概念。ros網路乙個由ros2中的元素在同一時刻進行資料處理組成的網路。換個視覺化的方式來說它包含所有可執行...
ros2學習 CLI Tools 配置環境
總結 ros 2依賴於使用shell環境組合工作空間的概念。工作區 是乙個ros術語,表示您在系統中使用ros 2開發的位置。核心ros 2工作區稱為底層。後續的本地工作區稱為覆蓋。在使用ros 2開發時,通常會同時啟用多個工作區。工作去通過setup.bash 進行設定和切換,跟ros1 一樣的操...