0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【新手扫盲】手把手教你创建自己的ROS2应用(一)

地瓜机器人 2022-11-10 15:52 次阅读

系列文章背景介绍

X3派的官方文档虽然非常的详细,但是基本都是以简单的单一示例进行相关的介绍和说明,不是特别的系统,当我们了解文档的内容、尝试了示例的运行后仍然需要系统化的去掌握相关的知识,特别是新手小白用户,会非常迷茫且无从下手。

该系列文章的相关知识来源于官方文档,以从零开始的视角将文档中所有的示例整合到自己的ROS应用包中变得更加系统化,也方便后续配合自己的业务进行优化和迭代。

一、开发环境的搭建

请根据自己的情况完成X3派系统的安装、网络的配置以及TROS的部署,相关资料可以查阅官方文档,相信大家也都比较熟悉了。

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

登录密码为:root,IP地址替换为自己的实际IP地址。

ssh root@192.168.31.192

2、在X3派中执行下面的命令脚本进行系统的更新以及ROS2编译环境依赖安装

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

二、创建ROS2工作空间

知识点:在ROS中,一个工作空间可以包含很多的功能包。

1、通过下面的命令脚本创建工作空间,比如我希望把工作空间放到/opt/workspace/geek_tros路径

mkdir -p /opt/workspace/geek_tros

2、进入到刚刚创建好的工作空间中

cd /opt/workspace/geek_tros

3、加载启动ROS2环境

知识点:该命令的目的是将ROS2环境加入到bash中,可以理解为配置ROS2环境变量的过程,这样我们才能在后面正常使用ros2的相关命令。值得注意的是这个方式只在当前登录的命令行终端生效,当我们每次退出登录或者关闭命令行终端再次进入时都需要重新执行这条命令脚本。

source /opt/tros/setup.bash

三、创建一个ROS2功能包

1、通过下面命令创建名为example_package的功能包,通过这个功能包实现简单的人体检测功能

知识点:ros2 pkg create是创建功能包的命令,example_package为功能包的名称(可以自己取名),命令中的--build-type参数为功能包的编译方式,--dependencies参数为功能包关联的相关依赖库,其中rclcpp和sensor_msgs均为ROS2官方提供库,dnn_node为地平线的AI推理库。

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

2、通过下面的命令脚本创建功能包的程序文件:example.cpp,也可以自己取名

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

四、开发工具

接下来就是代码的编写工作了,这里使用CLion作为我们的后续的开发工具,我们将借助CLion的远程开发方式进行功能包的程序开发。

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、再弹出的窗口中选择【+】,根据图示填写X3派的远程主机连接相关配置信息,点击【OK】

pYYBAGNsmk6AZYAuAAFh53b_evQ815.png

7、配置成功后会看到如下图所示的信息,点击【OK】

pYYBAGNsmk-ANjmOAAGdrd1kFpo537.png

8、根据下图所示,打开远程主机的文件游览器

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、到这里我就完成了远程开发的相关配置,在项目名上右键可以看到相关的操作菜单,每次修改完代码,我们进行本地程序和X3派远程程序的上传和下载操作

pYYBAGNsmk-AJbkqAAGgTgt5QS4325.png

13、按照上图的三步操作可以将X3派的程序下载到本地电脑进行代码编写

pYYBAGNsmlCAcCXdAAGrcDdHfSo597.png

14、你也可以使用CLion中的命令行工具直连X3派进行命令行的调试

pYYBAGNsmlCAEwh0AAGsJWOAgy8809.png

五、本章节概述

通过本章节的阅读,你将掌握TROS的部署、开发环境的搭建、工作空间及功能包的创建、开发工具及远程开发方式配置。
下一节我们将进行example_package功能包的开发,实现完整的人体检测应用。

原作者:MakerYang

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5113

    文章

    19337

    浏览量

    311247
  • AIoT
    +关注

    关注

    8

    文章

    1443

    浏览量

    31501
收藏 人收藏

    相关推荐

    《零基础开发AI Agent——手把手教你用扣子做智能体》

    《零基础开发AI Agent——手把手教你用扣子做智能体》是本为普通人量身打造的AI开发指南。它不仅深入浅出地讲解了Agent的概念和发展,还通过详细的工具介绍和实战案例,帮助读者快速掌握
    发表于 03-18 12:03

    手把手教你做星闪无人机—KaihongOS星闪无人机开发实战》系列课程课件汇总

    为助力开发者迅速掌握『KaihongOS轻量系统开发技术』与『星闪无线通信技术』,实现快速上手与深度体验,“开鸿Developer社区”携手“电子发烧友”再次联合推出《手把手教你做星闪无人机
    发表于 03-18 10:33

    手把手教你做PC-KaihongOS笔记本电脑开发实战》课件汇总

    ”携手“电子发烧友”联合推出了 《KaihongOS手把手系列直播课程》,该系列课程以实际产品为案例,详细讲解每个产品的开发全流程。 此次首发内容是《手把手教你做PC-KaihongOS笔记本电脑开发
    发表于 03-18 10:25

    【第四章 定时任务】手把手教你玩转新版正点原子云

    【第四章 定时任务】手把手教你玩转新版正点原子云 承接上篇,除了报警联动这个功能,原子云还有个特色功能也是各开发者喜欢用的,定时任务功能。 【正点原子】云平台:原子云(点击登录原子云) 前言
    发表于 03-13 10:19

    【第三章 警报联动】手把手教你玩转新版正点原子云

    本帖最后由 jf_85110202 于 2025-3-13 14:43 编辑 【第三章 警报联动】手把手教你玩转新版正点原子云 新版原子云网址:原子云(点击登录原子云) 原子云特色功能:设置
    发表于 03-12 16:05

    【第二章 模型与设备连接】手把手教你玩转新版正点原子云

    【第二章 模型与设备连接】手把手教你玩转新版正点原子云玩过物联网的朋友们都知道,我们在接触各大主流云平台时会知道物模型的概念。 本实验就是针对原子云中模型与设备连接,举个简单例子说明,温度传感器通过
    发表于 03-12 09:27

    【第章 透传策略】手把手教你玩转新版正点原子云

    【第章 透传策略】手把手教你玩转新版正点原子云 1. 本次实验使用正点原子D40 Mini 4G Cat1 DTU数传模块 1.1 D40数传模块资料 具体使用和资料下载可到:D40 Mini
    发表于 03-05 16:52

    开发者集结!《手把手教你做星闪无人机》第二课开讲啦!

    开发者集结!《手把手教你做星闪无人机》第二课开讲啦!
    的头像 发表于 02-17 19:40 164次阅读
    开发者集结!《<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>做星闪无人机》第二课开讲啦!

    使用myCobot 280机械臂结合ROS2系统搭建机械分拣站

    这篇文章是来自Automatic Addison的开源项目,已获作者授权转载自github。本项目的主要内容是使用myCobot 280机械臂结合ROS2系统搭建机械分拣站。
    的头像 发表于 01-15 09:22 353次阅读
    使用myCobot 280机械臂结合<b class='flag-5'>ROS2</b>系统搭建机械分拣站

    手把手教你做星闪无人机》即将开播,锁定15日晚七点!

    ”再次联合推出《手把手教你做星闪无人机—KaihongOS星闪无人机开发实战》系列课程,该课程与《手把手教你做PC—KaihongOS笔记本电脑开发实战》同步并行,
    的头像 发表于 01-13 19:42 251次阅读
    《<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>做星闪无人机》即将开播,锁定15日晚七点!

    手把手教你做PC》课程即将启动!深开鸿引领探索KaihongOS笔记本电脑开发实战

    ”携手“电子发烧友”联合推出了《KaihongOS手把手系列直播课程》,该系列课程以实际产品为案例,详细讲解每个产品的开发全流程。此次首发内容是《手把手教你做PC-
    的头像 发表于 01-06 20:46 271次阅读
    《<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>做PC》课程即将启动!深开鸿引领探索KaihongOS笔记本电脑开发实战

    Air780E模组LuatOS开发实战 —— 手把手教你搞定数据打包解包

    本文要说的是低功耗4G模组Air780E的LuatOS开发实战,我将手把手教你搞定数据打包解包。
    的头像 发表于 12-03 11:17 424次阅读
    Air780E模组LuatOS开发实战 —— <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>搞定数据打包解包

    手把手教你通过宏集物联网工控屏&amp;网关进行协议转换,将底层PLC/传感器的数据转换为TCP协议并传输到用户

    手把手教你通过宏集物联网工控屏&网关进行协议转换,将底层PLC/传感器的数据转换为TCP协议并传输到用户终端
    的头像 发表于 08-15 13:29 786次阅读
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>通过宏集物联网工控屏&amp;网关进行协议转换,将底层PLC/传感器的数据转换为TCP协议并传输到用户

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

    今天以直接插入排序算法,给大家分享下排序算法的实现思路,主要包含以下部分内容:插入排序介绍插入排序算法实现手把手教你排序算法怎么写在添加新的记录时,使用顺序查找的方式找到其要插入的位置,然后将
    的头像 发表于 06-04 08:03 873次阅读
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>排序算法怎么写

    ZMC900E控制器之ROS2环境安装指南

    ZMC900E是致远电子研发的最新代高性能EtherCAT控制器,支持ROS2系统,兼备强大功能和实时性,为工业应用带来新的可能。本文将详述ROS2特点和安装,助力用户在机器人上的二次开发
    的头像 发表于 04-29 08:24 784次阅读
    ZMC900E控制器之<b class='flag-5'>ROS2</b>环境安装指南