国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ros2 foxy創(chuàng)建一個(gè)包和節(jié)點(diǎn)-ubuntu20.04

這篇具有很好參考價(jià)值的文章主要介紹了ros2 foxy創(chuàng)建一個(gè)包和節(jié)點(diǎn)-ubuntu20.04。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

創(chuàng)建工作區(qū)目錄

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws

我們創(chuàng)建了兩個(gè)目錄,ros2_ws和在他下面的子目錄,運(yùn)行編譯的目錄在ros2_ws目錄下,src目錄下是我們生成的ros的包,我們自己編寫的代碼也都早src目錄下,colcon build編譯之后會在ros2_ws目錄下生成一下文件,運(yùn)行程序也是在ros2_ws這個(gè)目錄下。

創(chuàng)建包和節(jié)點(diǎn)

使用ros2 pkg create來創(chuàng)建包和節(jié)點(diǎn),該命令是在src目錄下執(zhí)行。

  1. 只創(chuàng)建包
ros2 pkg create <package_name> --build-type ament_cmake

2.創(chuàng)建包并添加依賴

ros2 pkg create my_package --build-type ament_cmake --dependencies std_msgs rclcpp
  • ament_cmake,適用于c++,是cmake的增強(qiáng)版
  • ament_python,適用于Python
  • 創(chuàng)建包的同時(shí)添加std_msgsrclcpp的依賴
  1. 創(chuàng)建包的同時(shí)添加節(jié)點(diǎn)
ros2 pkg create <package_name> --build-type ament_cmake --node-name <node_name> --dependencies std_msgs rclcpp
  • 創(chuàng)建包名填入package_name
  • 創(chuàng)建節(jié)點(diǎn)名填入node_name
  • 這里添加了std_msgsrclcpp兩個(gè)依賴,需要的依賴填在在后面

運(yùn)行節(jié)點(diǎn)的命令

ros2 run 包名 可執(zhí)行文件名
ros2 run package_name exectable_name
  1. 列出所有的包
ros2 pkg list
  1. 輸出某個(gè)包的路徑前綴
ros2 pkg prefix <package_name>
  1. 列出摸個(gè)包的清單信息
ros2 pkg xml <package_name>

colcon build編譯

我們在有src文件夾的目錄下,也就是執(zhí)行文件的目錄

編譯所有的包

colcon build

指定單獨(dú)編譯某個(gè)包:

colcon build --packages-select <package_name>

CMakeLists.txt文件

該文件是告訴編譯器,想要找某個(gè)節(jié)點(diǎn)去哪里找。

cmake_minimum_required(VERSION 3.5)
project(ros_learn)  //包的名稱

find_package

如果是添加了某些依賴,需要再find_package中添加

# find dependencies
find_package(ament_cmake REQUIRED)
find_package(std_msga REQUIRED)
find_package(rclcpp REQUIRED)

add_executable

添加節(jié)點(diǎn),表示如果編譯器要找那個(gè)節(jié)點(diǎn)到那個(gè)目錄下去找

// 表示告訴編輯器想要找infor_publish這個(gè)節(jié)點(diǎn)去src目錄下的infor_publish.cpp去找
add_executable(infor_publish src/infor_publish.cpp)

然后加上ament_target_dependencies這項(xiàng),該項(xiàng)里記錄者余姚的依賴和運(yùn)行節(jié)點(diǎn)

ament_target_dependencies(
  infor_publish
  "std_msga"
  "rclcpp"
)
//rclcpp和std_msga也可以不加雙引號

然后還需要安裝一下,安裝一下我們的可執(zhí)行節(jié)點(diǎn)

install(TARGETS 
		infor_publish
  DESTINATION lib/${PROJECT_NAME})

package.xml

該文件中需要添加一下我們手動(dòng)添加的依賴

<?xml version="1.0"?>
<?xml-model  schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
  <name>ros_learn</name>   <!-- 包的名稱 -->
  <version>0.0.0</version>
  <description>TODO: Package description</description>
  <maintainer email="aywq@todo.todo">aywq</maintainer>
  <license>TODO: License declaration</license>

  <buildtool_depend>ament_cmake</buildtool_depend>

  <depend>std_msgs</depend>
  <depend>rclcpp</depend>

  <test_depend>ament_lint_auto</test_depend>
  <test_depend>ament_lint_common</test_depend>

  <export>
    <build_type>ament_cmake</build_type>
  </export>
</package>

面相過程的方式生命一個(gè)節(jié)點(diǎn)

  • 要繼承rclcpp::Node的節(jié)點(diǎn)(auto node = std::make_shared<rclcpp::Node>("ros_1")),然后打印一條消息
    // 1. 導(dǎo)入庫文件
# include "rclcpp/rclcpp.hpp"

int main(int argc,char **argv)
{
    //2.初始化客戶端庫
    rclcpp::init(argc,argv);
    //3.使用智能指針創(chuàng)建新的節(jié)點(diǎn)對象
    auto node = std::make_shared<rclcpp::Node>("ros_1");// 當(dāng)我們初始化節(jié)點(diǎn)的時(shí)候要給他一個(gè)參數(shù),給節(jié)點(diǎn)起一個(gè)名字

    // ros的打印
    RCLCPP_INFO(node->get_logger(),"打印內(nèi)容");

    //4.使用spin循環(huán)節(jié)點(diǎn)
    rclcpp::spin(node);
    //5. 關(guān)閉客戶端庫
    rclcpp::shutdown();
}

以面向?qū)ο蟮姆绞絼?chuàng)建一個(gè)節(jié)點(diǎn)

  • 在面相對象的節(jié)點(diǎn)的創(chuàng)建過程中,我們要聲明一個(gè)類,該類要繼承rclcpp::Node:public rclcpp::Node),否則該類無法擁有擁有日志打印,創(chuàng)建服務(wù)話題的能力。
  • 構(gòu)造函數(shù)要給在初始化列表給父類的Node傳節(jié)點(diǎn)的名字
// 1. 導(dǎo)入庫文件
# include "rclcpp/rclcpp.hpp"
# include <string>

// 定義一個(gè)類
// 先要讓這個(gè)類繼承rclcpp::Node,只有繼承了這個(gè)  才能擁有日志打印,創(chuàng)建服務(wù)話題的能力
class infor_publish :public rclcpp::Node 
{
private:
    /* data */
public:
    infor_publish(std::string name);  //構(gòu)造函數(shù)在定義是不用繼承初始化列表
    ~infor_publish();
};
// 我們在聲明構(gòu)造函數(shù)是要調(diào)用父類的構(gòu)造函數(shù),給他傳一個(gè)參數(shù),參數(shù)為節(jié)點(diǎn)的名字
infor_publish::infor_publish(std::string name):Node(name)
{
    RCLCPP_INFO(this->get_logger(),"hahaha:%s",name.c_str()); // name是一個(gè)string類型的,我們需要把他c的字符串打印
}
infor_publish::~infor_publish()
{
    RCLCPP_INFO(this->get_logger(),"bye!!!");
}

int main(int argc,char **argv)
{
    //2.初始化客戶端庫
    rclcpp::init(argc,argv);
    //3.使用智能指針創(chuàng)建新的節(jié)點(diǎn)對象,在面相對象的這節(jié)點(diǎn)聲明,智能指針就要輸入類的類型,而不是rclcpp::Node
    auto node = std::make_shared<infor_publish>("ros2");

    //4.使用spin循環(huán)節(jié)點(diǎn)
    rclcpp::spin(node);
    //5. 關(guān)閉客戶端庫
    rclcpp::shutdown();
}

ros2 foxy創(chuàng)建一個(gè)包和節(jié)點(diǎn)-ubuntu20.04文章來源地址http://www.zghlxwxcb.cn/news/detail-432141.html

到了這里,關(guān)于ros2 foxy創(chuàng)建一個(gè)包和節(jié)點(diǎn)-ubuntu20.04的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ubuntu20.04安裝ROS【詳細(xì)】

    ubuntu20.04安裝ROS【詳細(xì)】

    Ubuntu20.04安裝ROS與Ubuntu18.04大差不差,安裝過程基本沒出現(xiàn)問題,按以下教程操作即可。 該命令打開源文件可能會比較慢 將文件里的替換為 然后執(zhí)行 再執(zhí)行 1.新建文件夾,并進(jìn)入文件夾 2、下載項(xiàng)目 若找不到命令,安裝git即可 3、另打開一個(gè)終端,備份原文件 4、安裝rosdep 5、替

    2024年02月12日
    瀏覽(38)
  • Ubuntu20.04安裝ROS----魚香ROS一鍵安裝

    Ubuntu20.04安裝ROS----魚香ROS一鍵安裝

    輸入以下命令行: 選擇1 選擇1 ROS1 選擇1 ? 下載noetic版本 ROS2 選擇3 下載galactic版本

    2024年02月05日
    瀏覽(29)
  • ros2機(jī)器人foxy版用筆記本攝像頭跑單目orb_slam3

    ros2機(jī)器人foxy版用筆記本攝像頭跑單目orb_slam3

    環(huán)境: ??? Ubuntu 20.04 ??? ROS2 foxy ??? OpenCV 4.4.0(4版本以上的應(yīng)該都可以) 安裝orb_slam3 搭建環(huán)境參考: https://mp.csdn.net/mp_blog/creation/editor/129137521 這將在lib文件夾中創(chuàng)建libORB_SLAM3.so,只需要安裝到這一步,生成 libORB_SLAM3.so 動(dòng)態(tài)庫即可。后面的ros程序安裝是ros1的,ros1早晚會

    2024年02月11日
    瀏覽(22)
  • ubuntu20.04安裝ros問題解惑

    一、配置密鑰問題 問題描述: 在安裝ROS noetic時(shí),當(dāng)運(yùn)行以下命令時(shí), 可能會遇到以下錯(cuò)誤 問題分析: 主要原因就是http://raw.githubusercontent.com是墻外地址,無法訪問 解決方法: 從另一個(gè)網(wǎng)址獲取密鑰 然后繼續(xù)按照官方步驟操作即可。 二、rosdep連接超時(shí)的問題 報(bào)錯(cuò) 問題描述 執(zhí)

    2024年02月15日
    瀏覽(99)
  • 【ROS】在 Ubuntu 20.04 安裝 ROS 的詳細(xì)教程

    【ROS】在 Ubuntu 20.04 安裝 ROS 的詳細(xì)教程

    由于自己裝過兩次 ROS,但是重頭再來一遍還是遇到了很多困難。尤其是當(dāng)遇到以前遇到過的問題,我依然會手足無措,翻邊互聯(lián)網(wǎng)的邊邊角角,試很多遍錯(cuò)才能解決問題。于是便萌發(fā)了寫下這個(gè) ROS安裝指南 的想法。 這里整理了我安裝 ROS 的流程以及遇到的所有問題,也提供

    2024年02月03日
    瀏覽(41)
  • 【ROS2 Foxy】解決 connext 中間件導(dǎo)致的警告:NDDSHOME environment variable has not been set

    執(zhí)行安裝命令: 終端出現(xiàn)警告: 這里我不想用這個(gè)中間件了,所以選擇直接卸載: [1] How to supress Connext warning in ROS2

    2024年02月16日
    瀏覽(20)
  • ubuntu20.04 ros http://wiki.ros.org/noetic/Installation/Ubuntu

    imu Calibration? ros? http://wiki.ros.org/noetic/Installation/Ubuntu 使用imu_utils進(jìn)行IMU的誤差標(biāo)定以及IMU姿態(tài)解算_非晚非晚的博客-CSDN博客 Ubuntu20.04編譯并運(yùn)行imu_utils,并且標(biāo)定IMU_學(xué)無止境的小龜?shù)牟┛?CSDN博客https://github.com/ethz-asl/kalibr ? imu rgb calibration

    2024年02月11日
    瀏覽(22)
  • 《Ubuntu20.04環(huán)境下的ROS進(jìn)階學(xué)習(xí)0》

    《Ubuntu20.04環(huán)境下的ROS進(jìn)階學(xué)習(xí)0》

    ? ? ? ? 在上一專欄,我們了解了ROS的基本功能。這一專欄將會在此基礎(chǔ)上做出進(jìn)一步拓展學(xué)習(xí)。那么首先我們要學(xué)會下載并閱讀別人的代碼。常用的兩個(gè)應(yīng)用商店一個(gè)是ROS的官方應(yīng)用商店ROS?index,另一個(gè)就是我們熟知的github了。走,去逛逛。 ? ? ? ? 這里我們先打開瀏覽

    2024年03月11日
    瀏覽(23)
  • 《Ubuntu20.04環(huán)境下的ROS進(jìn)階學(xué)習(xí)1》

    《Ubuntu20.04環(huán)境下的ROS進(jìn)階學(xué)習(xí)1》

    ? ? ? ? 在上節(jié)我們已經(jīng)逛了逛ROS官方應(yīng)用商店和全球最大開源平臺github。為了方便閱讀代碼和啟動(dòng)程序,本節(jié)我們來下載兩個(gè)好用的app,當(dāng)然是在Ubuntu上。 ????????這里為了方便我們直接打開谷歌瀏覽器,輸入vscode官網(wǎng)https://code.visualstudio.com/ 下載完成后他會在您的主目

    2024年03月09日
    瀏覽(27)
  • ubuntu20.04 ROS 環(huán)境下使用velodyne激光雷達(dá)

    ubuntu20.04 ROS 環(huán)境下使用velodyne激光雷達(dá)

    系統(tǒng)版本:ubuntu 20.04 ROS版本:noetic 激光雷達(dá)型號:velodyne VLP-16 網(wǎng)線接 PC/工控機(jī) 端口 將PC/工控機(jī)的網(wǎng)口配置為: ipv4,方式設(shè)置為手動(dòng) ip地址、掩碼以及網(wǎng)關(guān)設(shè)置成下圖 查看當(dāng)前話題 其中 /velodyne_points 就是 激光雷達(dá)發(fā)布的點(diǎn)云消息。 終端輸入rviz Fiex Frame 寫入 velodyne 添加

    2024年02月08日
    瀏覽(113)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包