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

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

    关注

    5211

    文章

    20737

    浏览量

    338338
  • AIoT
    +关注

    关注

    9

    文章

    1699

    浏览量

    34330
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    BNC连接器规格尺寸避雷指南:手把手教你避开选型常见坑

    堆砌,手把手教你通过自检清单精准排雷,确保射频链路在数千次插拔后依然稳如泰山。10年避坑经验总结,助你告别选型错误带来的报废风险,让每个接头都实现真正的“无损传输”。
    的头像 发表于 05-13 09:34 571次阅读
    BNC连接器规格尺寸避雷指南:<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>避开选型常见坑

    瑞芯微(EASY EAI)RV1126B ROS2安装

    种“机器人框架(robotframeworks)”。1.2ROS2ROS1的区别ROS2作为ROS1的继任者,在保持
    的头像 发表于 04-28 17:03 636次阅读
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>ROS2</b>安装

    射频头坏了只能扔?手把手教你维修排查TNC插头,干货值得收藏!

    射频接头坏了只能剪掉重做?未必!本文由电蜂优选(elecbee)专家亲授,深度拆解 TNC 插头的维修排查全流程。从中心针偏移纠偏、氧化层化学清理到组装式接头的无损重组,手把手教你如何通过 VNA
    的头像 发表于 04-14 17:12 228次阅读
    射频头坏了只能扔?<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>维修排查TNC插头,干货值得收藏!

    开发必看,RK3576基于Ubuntu22.04安装 测试ROS2机器人系统

    本文介绍基于Ubuntu22.04安装ROS2机器人系统教程,并附带详细测试方法,基于触觉智能RK3576核心板方案,使用配套开发板PurplePiOH2演示。ROSROS2简介
    的头像 发表于 03-13 17:48 505次阅读
    开发必看,RK3576基于Ubuntu22.04安装 测试<b class='flag-5'>ROS2</b>机器人系统

    ROS2 SLAM建图与导航实战--基于米尔RK3576开发板

    前言 文档定位与目标读者 本文档面向具备ROS基础、希望深入理解并在实际项目中部署ROS2 Humble + SLAM Toolbox + Nav2完整建图与导航系统的机器人工程师
    发表于 03-12 17:55

    RK平台ROS2适配全指南:从编译到运行,手把手搞定嵌入式机器人开发

    在嵌入式机器人与智能硬件领域,瑞芯微(Rockchip)的 RK356x、RK3588 等 arm64 芯片凭借高性能、低功耗的优势,成为众多开发者的首选硬件平台;而 ROS2(Robot
    的头像 发表于 02-06 16:42 6073次阅读
    RK平台<b class='flag-5'>ROS2</b>适配全指南:从编译到运行,<b class='flag-5'>手把手</b>搞定嵌入式机器人开发

    初识ros2 功能包建立与可执行文件的配置

    等核心文件。详细说明了创建Python软件包(ament_python)的命令流程,包括编译(colcon build)和包管理(ros2 pkg list)等操作。
    的头像 发表于 01-22 13:41 535次阅读

    米尔RK3576成功上车!ROS2 Humble生态系统体验

    当RK3576的强劲“大脑”(四核A72+四核A53)与强大的GPU、VPU、NPU加速模块相遇,场高性价比的机器人开发革命正在悄然发生。我们成功将完整的Ubuntu 22.04与ROS2
    发表于 01-15 18:30

    从0到1,10+年资深LabVIEW专家,手把手教你攻克机器视觉+深度学习(5000分钟实战课)

    “告别检测系统能力缺陷!10+年LabVIEW视觉资深专家手把手教你:5000+分钟高清教程(含工具、算法原理、实战操作、项目优化全流程讲解)”——从传统视觉算法→深度学习建模→工业级部署"
    的头像 发表于 12-02 08:07 853次阅读
    从0到1,10+年资深LabVIEW专家,<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>攻克机器视觉+深度学习(5000分钟实战课)

    【迅为RK3568开发板NPU实战】别再闲置你的NPU!手把手教你玩转RKNN-Toolkit2 的使用

    【迅为RK3568开发板NPU实战】别再闲置你的NPU!手把手教你玩转RKNN-Toolkit2 的使用
    的头像 发表于 11-11 14:21 1656次阅读
    【迅为RK3568开发板NPU实战】别再闲置你的NPU!<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>玩转RKNN-Toolkit<b class='flag-5'>2</b> 的使用

    创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—ROS2系统使用说明

    本文围绕创龙科技研发的评估板,详解 ROS2 系统使用方法。涵盖 ROS2 环境搭建、核心概念讲解、节点通信测试、功能包创建与编译,以及可视化工具 RViz 的使用,还包括基于评估板的 ROS
    的头像 发表于 10-30 13:46 679次阅读
    创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—<b class='flag-5'>ROS2</b>系统使用说明

    RT-Thread Nano硬核移植指南:手把手实现VGLite图形驱动适配 | 技术集结

    VGLite是NXP提供的轻量级2D图形API,本文将手把手带你实现VGLite图形驱动适配RT-Thread。文章分为上、下两篇,将手把手教您移植。上篇对RT-ThreadNano内核与Finsh组件进行移植,下篇则教您改写S
    的头像 发表于 07-17 14:40 3723次阅读
    RT-Thread Nano硬核移植指南:<b class='flag-5'>手把手</b>实现VGLite图形驱动适配 | 技术集结

    【精选直播】手把手教你做PC第十二课:WIFI 驱动框架适配

    手把手教你做PC》系列直播课再度开播!《KaihongOS笔记本电脑开发实战第十二课:WIFI驱动框架适配》将于07月02日19:00开播↑扫码入群,领课程讲义资料包↑深开鸿资深工程师亲临直播间
    的头像 发表于 07-01 08:08 772次阅读
    【精选直播】<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>做PC第十二课:WIFI 驱动框架适配

    手把手教你如何调优Linux网络参数

    在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃。本文基于真实案例分析,从参数解读、问题诊断到优化实践,手把手教你如何调优Linux网络参数,支撑百万级并发连接。
    的头像 发表于 05-29 09:21 1302次阅读

    ros2教程

    电子发烧友网站提供《ros2教程.pdf》资料免费下载
    发表于 05-23 09:12 1次下载