mkdir ros2test
cd ros2test
mkdir src
cd src
ros2 pkg create pkg_name --dependencies rclcpp std_msgs --cpp-node-name node_name
pkg_name是要建立的包名,node_name是節點名,可以根據功能需要命名。
依賴包的名字需要寫在--dependencies 後面,不同於ros1直接接在包名後面。
--cpp-node-name後面寫上準備寫入原始碼的cpp的名字(注意不需要.cpp),會在/pkg_name/src下自動生成cpp檔案
#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**)
#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)
rclcpp::subscription
::sharedptr subscription_;};
intmain
(int argc,
char
* ar**)
這種寫法和ros1官方的發布者寫法有些差別,類似ros1的寫法在ros2中也可執行,但是官方建議使用這種方式進行編寫節點,方便以後寫成元件,可以在同乙個執行緒中執行多個節點,類似ros1中的nodelet。
cd ..
colcon build
source install/setup.bash
ros2 run pkg_name node_name
IntelliJ IDEA 從零開始建立乙個專案
1 如果intellij idea中當前沒有開啟的專案,單擊歡迎介面上的建立新專案。否則,選擇 然後會開啟新建專案嚮導視窗 2 在嚮導的第一頁,在左側窗格中,選擇專案類別。這可能是你要使用的技術,專案的目標平台或執行時等。在頁面的右側部分以及後續步驟中的設定取決於所選專案類別。對於相應的說明,請參閱...
IntelliJ IDEA 從零開始建立乙個專案
1 如果intellij idea中當前沒有開啟的專案,單擊歡迎介面上的建立新專案。否則,選擇 然後會開啟新建專案嚮導視窗 2 在嚮導的第一頁,在左側窗格中,選擇專案類別。這可能是你要使用的技術,專案的目標平台或執行時等。在頁面的右側部分以及後續步驟中的設定取決於所選專案類別。對於相應的說明,請參閱...
IntelliJ IDEA 從零開始建立乙個專案
1 如果intellij idea中當前沒有開啟的專案,單擊歡迎介面上的建立新專案。否則,選擇 然後會開啟新建專案嚮導視窗 2 在嚮導的第一頁,在左側窗格中,選擇專案類別。這可能是你要使用的技術,專案的目標平台或執行時等。在頁面的右側部分以及後續步驟中的設定取決於所選專案類別。對於相應的說明,請參閱...