0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【新手掃盲】手把手教你創(chuàng)建自己的ROS2應用(一)

地瓜機器人 ? 2022-11-10 15:52 ? 次閱讀

系列文章背景介紹

X3派的官方文檔雖然非常的詳細,但是基本都是以簡單的單一示例進行相關的介紹和說明,不是特別的系統(tǒng),當我們了解文檔的內容、嘗試了示例的運行后仍然需要系統(tǒng)化的去掌握相關的知識,特別是新手小白用戶,會非常迷茫且無從下手。

該系列文章的相關知識來源于官方文檔,以從零開始的視角將文檔中所有的示例整合到自己的ROS應用包中變得更加系統(tǒng)化,也方便后續(xù)配合自己的業(yè)務進行優(yōu)化和迭代。

一、開發(fā)環(huán)境的搭建

請根據(jù)自己的情況完成X3派系統(tǒng)的安裝、網(wǎng)絡的配置以及TROS的部署,相關資料可以查閱官方文檔,相信大家也都比較熟悉了。

1、以【root】身份SSH登錄到X3派

登錄密碼為:root,IP地址替換為自己的實際IP地址。

ssh root@192.168.31.192

2、在X3派中執(zhí)行下面的命令腳本進行系統(tǒng)的更新以及ROS2編譯環(huán)境依賴安裝

apt -y update && apt -y full-upgrade && apt-get install -y python3-catkin-pkg && pip install empy && pip install -U colcon-common-extensions

二、創(chuàng)建ROS2工作空間

知識點:在ROS中,一個工作空間可以包含很多的功能包。

1、通過下面的命令腳本創(chuàng)建工作空間,比如我希望把工作空間放到/opt/workspace/geek_tros路徑

mkdir -p /opt/workspace/geek_tros

2、進入到剛剛創(chuàng)建好的工作空間中

cd /opt/workspace/geek_tros

3、加載啟動ROS2環(huán)境

知識點:該命令的目的是將ROS2環(huán)境加入到bash中,可以理解為配置ROS2環(huán)境變量的過程,這樣我們才能在后面正常使用ros2的相關命令。值得注意的是這個方式只在當前登錄的命令行終端生效,當我們每次退出登錄或者關閉命令行終端再次進入時都需要重新執(zhí)行這條命令腳本。

source /opt/tros/setup.bash

三、創(chuàng)建一個ROS2功能包

1、通過下面命令創(chuàng)建名為example_package的功能包,通過這個功能包實現(xiàn)簡單的人體檢測功能

知識點:ros2 pkg create是創(chuàng)建功能包的命令,example_package為功能包的名稱(可以自己取名),命令中的--build-type參數(shù)為功能包的編譯方式,--dependencies參數(shù)為功能包關聯(lián)的相關依賴庫,其中rclcpp和sensor_msgs均為ROS2官方提供庫,dnn_node為地平線的AI推理庫。

ros2 pkg create example_package --build-type ament_cmake --dependencies rclcpp sensor_msgs dnn_node

2、通過下面的命令腳本創(chuàng)建功能包的程序文件:example.cpp,也可以自己取名

touch /opt/workspace/geek_tros/example_package/src/example.cpp

四、開發(fā)工具

接下來就是代碼的編寫工作了,這里使用CLion作為我們的后續(xù)的開發(fā)工具,我們將借助CLion的遠程開發(fā)方式進行功能包的程序開發(fā)。

1、下載并安裝Clion

下載地址:https://www.jetbrains.com/clion/

2、再本地電腦中找一個位置用于存放功能包的源碼,例如我的是【D:\GeekROS\geek_tros\】,使用Clion打開這個目錄

pYYBAGNsmk2AZGmfAADwBcWZnQk384.png

3、點擊Clion的【File】->【Settings】

poYBAGNsmk2AGrf4AAEIIz5SH2M612.png

4、在彈出的窗口中依次選擇【Toolchains】->【+】->【Remote Host】

poYBAGNsmk6AcerZAAGm8iaEsI0186.png

5、選擇【Remote Host】后的界面如下,其中【Name】自己取一個,然后點擊【齒輪】按鈕

pYYBAGNsmk6AS4XWAAHBlNK34JY564.png

6、再彈出的窗口中選擇【+】,根據(jù)圖示填寫X3派的遠程主機連接相關配置信息,點擊【OK】

pYYBAGNsmk6AZYAuAAFh53b_evQ815.png

7、配置成功后會看到如下圖所示的信息,點擊【OK】

pYYBAGNsmk-ANjmOAAGdrd1kFpo537.png

8、根據(jù)下圖所示,打開遠程主機的文件游覽器

poYBAGNsmk-AXPTAAAFIe_qTvD0432.png

9、在彈出的界面中,通過下拉菜單選擇剛剛配置的遠程主機

poYBAGNsmk-AaQmmAAENNXvvtAI063.png

10、選擇后你會看到X3派遠程主機上的文件資源

pYYBAGNsmk-AQCV8AAEjoQAwdBU308.png

11、點擊Clion的【File】->【Settings】,在彈出的窗口按照下圖所示選擇X3派中的ROS2工作空間

poYBAGNsmk-Adfh9AAGKizJZpSA033.pngpoYBAGNsmlCAfao1AAGt-bmP22A150.png

12、到這里我就完成了遠程開發(fā)的相關配置,在項目名上右鍵可以看到相關的操作菜單,每次修改完代碼,我們進行本地程序和X3派遠程程序的上傳和下載操作

pYYBAGNsmk-AJbkqAAGgTgt5QS4325.png

13、按照上圖的三步操作可以將X3派的程序下載到本地電腦進行代碼編寫

pYYBAGNsmlCAcCXdAAGrcDdHfSo597.png

14、你也可以使用CLion中的命令行工具直連X3派進行命令行的調試

pYYBAGNsmlCAEwh0AAGsJWOAgy8809.png

五、本章節(jié)概述

通過本章節(jié)的閱讀,你將掌握TROS的部署、開發(fā)環(huán)境的搭建、工作空間及功能包的創(chuàng)建、開發(fā)工具及遠程開發(fā)方式配置。
下一節(jié)我們將進行example_package功能包的開發(fā),實現(xiàn)完整的人體檢測應用。

原作者:MakerYang

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5059

    文章

    18973

    瀏覽量

    302033
  • AIoT
    +關注

    關注

    8

    文章

    1379

    瀏覽量

    30519
收藏 人收藏

    評論

    相關推薦

    手把手教你通過宏集物聯(lián)網(wǎng)工控屏&網(wǎng)關進行協(xié)議轉換,將底層PLC/傳感器的數(shù)據(jù)轉換為TCP協(xié)議并傳輸?shù)接脩?/a>

    手把手教你通過宏集物聯(lián)網(wǎng)工控屏&網(wǎng)關進行協(xié)議轉換,將底層PLC/傳感器的數(shù)據(jù)轉換為TCP協(xié)議并傳輸?shù)接脩艚K端
    的頭像 發(fā)表于 08-15 13:29 ?371次閱讀
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>通過宏集物聯(lián)網(wǎng)工控屏&amp;網(wǎng)關進行協(xié)議轉換,將底層PLC/傳感器的數(shù)據(jù)轉換為TCP協(xié)議并傳輸?shù)接脩? />    </a>
</div>                            <div   id=

    手把手教你在orcad中設置CIS元器件數(shù)據(jù)庫,提高工作效率

    元器件數(shù)據(jù)庫,就是實現(xiàn)上述查找元件、放置元件時所需要調用的數(shù)據(jù)庫。本文將手把手教你如何在orcad中配置CIS元器件數(shù)據(jù)庫。
    的頭像 發(fā)表于 06-15 17:27 ?5186次閱讀
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>在orcad中設置CIS元器件數(shù)據(jù)庫,提高工作效率

    手把手教你排序算法怎么寫

    今天以直接插入排序算法,給大家分享下排序算法的實現(xiàn)思路,主要包含以下部分內容:插入排序介紹插入排序算法實現(xiàn)手把手教你排序算法怎么寫在添加新的記錄時,使用順序查找的方式找到其要插入的位置,然后將
    的頭像 發(fā)表于 06-04 08:03 ?628次閱讀
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>排序算法怎么寫

    手把手帶你移植HAL庫函數(shù)

    開發(fā)者更高效地進行嵌入式開發(fā)。手把手帶你移植HAL庫函數(shù)HAL庫提供了套抽象接口,使開發(fā)者無需直接操作底層硬件寄存器,就能實現(xiàn)對硬件的控制。這種抽象使得代碼能夠更
    的頭像 發(fā)表于 05-18 08:04 ?1584次閱讀
    <b class='flag-5'>手把手</b>帶你移植HAL庫函數(shù)

    ZMC900E控制器之ROS2環(huán)境安裝指南

    ZMC900E是致遠電子研發(fā)的最新代高性能EtherCAT控制器,支持ROS2系統(tǒng),兼?zhèn)鋸姶蠊δ芎蛯崟r性,為工業(yè)應用帶來新的可能。本文將詳述ROS2特點和安裝,助力用戶在機器人上的二次開發(fā)
    的頭像 發(fā)表于 04-29 08:24 ?511次閱讀
    ZMC900E控制器之<b class='flag-5'>ROS2</b>環(huán)境安裝指南

    無刷電機無感FOC控制培訓系列課程

    | 本工作室推出電機控制無感foc電機控制系列培訓課程本課程主要讓想進階的算法工程師,和剛參加工作的工程師或者在校學生能夠進步提高自己的技能,1.從企業(yè)用人角度手把手教你做電機控制,
    發(fā)表于 03-10 13:52

    系統(tǒng)鏡像Ubuntu_ROS2ROS2是什么意思,帶有ROS2開發(fā)環(huán)境嗎?

    請問下,百度文庫資料里面,下圖所示的系統(tǒng)鏡像Ubuntu_ROS2ROS2是什么意思,帶有ROS2開發(fā)環(huán)境嗎?與前面4GB版本的鏡像有什么區(qū)別?
    發(fā)表于 03-01 23:06

    工程送樣!手把手教你用好廣和通RedCap模組FG131&amp;amp;FG132系列

    工程送樣!手把手教你用好廣和通RedCap模組FG131&FG132系列
    的頭像 發(fā)表于 01-11 18:22 ?650次閱讀
    工程送樣!<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>用好廣和通RedCap模組FG131&amp;amp;FG132系列

    【米爾-TIAM62開發(fā)板-接替335x-試用評測】()基于TIAM62開發(fā)板的ROS2交叉編譯

    【米爾-TIAM62開發(fā)板-接替335x-試用評測】(ROS2交叉編譯 1. 前言 該測試報告詳細介紹了TIAM62開發(fā)板的交叉編譯環(huán)境、ROS2編譯的步驟以及遇到的問題和解決方案、簡單的測試
    發(fā)表于 12-05 20:58

    最新ChatGPT詳細注冊圖文解說教程 ChatGPT賬號注冊詳細步驟分析

    2024年注冊ChatGPT詳細教程,手把手教你完成ChatGPT的注冊
    的頭像 發(fā)表于 12-04 17:18 ?8586次閱讀
    最新ChatGPT詳細注冊圖文解說教程  ChatGPT賬號注冊詳細步驟分析

    在TogetherROS中如何安裝ROS2功能包

    安裝ROS2功能包 接下來,還有個很重要的配置,那就是安裝ROS2功能包,我們說TogetherROS是基于ROS2深度優(yōu)化的,很多模塊還是會復用
    的頭像 發(fā)表于 12-01 16:02 ?899次閱讀
    在TogetherROS中如何安裝<b class='flag-5'>ROS2</b>功能包

    ROS2中自帶例程測試

    如果你是ROS2的開發(fā)者,可能對剛才我們使用的ROS2命令比較熟悉,這時你可能也會產(chǎn)生個問題:我們之前也安裝了ROS2系統(tǒng),那
    的頭像 發(fā)表于 11-28 16:29 ?881次閱讀
    <b class='flag-5'>ROS2</b>中自帶例程測試

    ros1和ros2的通信模型

    數(shù)據(jù) ROS2: 參與者(DomainParticipant):個參與者Participant就是個容器,對應于個使用DDS的用戶,任何DDS的用戶都必須通過Participan
    的頭像 發(fā)表于 11-27 11:26 ?734次閱讀
    <b class='flag-5'>ros</b>1和<b class='flag-5'>ros2</b>的通信模型

    如何創(chuàng)建新的ROS工作空間

    創(chuàng)建新的ROS工作空間 由于ROS Motion Planning運動規(guī)劃庫與Navigation導航包存在些同名但源碼和功能不同的功能包,比如global_planne。 因此,個
    的頭像 發(fā)表于 11-26 17:09 ?1319次閱讀
    如何<b class='flag-5'>創(chuàng)建</b>新的<b class='flag-5'>ROS</b>工作空間

    DDS在ROS2中的應用

    DDS在ROS2中的應用 DDS在ROS2系統(tǒng)中的位置至關重要,所有上層建設都建立在DDS之上。在這個ROS2的架構圖中,藍色和紅色部分就是DDS。 剛才我們也提到,DDS是種通信的
    的頭像 發(fā)表于 11-24 17:54 ?845次閱讀
    DDS在<b class='flag-5'>ROS2</b>中的應用