【ros2】ros2环境安装与基础入门

news2024/11/26 13:42:43

😏★,°:.☆( ̄▽ ̄)/$:.°★ 😏
这篇文章主要介绍ros2环境安装与基础入门。
学其所用,用其所学。——梁启超
欢迎来到我的博客,一起学习,共同进步。
喜欢的朋友可以关注一下,下次更新不迷路🥞

文章目录

    • :smirk:1. ros2介绍
    • :blush:2. ros2安装
    • :satisfied:3. ros2基础使用

😏1. ros2介绍

ROS 2 (Robot Operating System 2)是一个开源的机器人操作系统,它是ROS(Robot Operating System)的下一代版本。它提供了一系列工具、库和约定,用于构建机器人应用程序。与ROS 1相比,ROS 2具有更强大的功能,更好的性能和更好的可靠性。

ROS 2采用分布式消息传递机制,可以在不同的计算机上进行通信,并支持多种编程语言,包括C++、Python、Java等。ROS 2还提供了更好的安全性和实时性,使其适用于更广泛的机器人应用场景。

ROS 2的核心组件包括:

rclcpp:ROS客户端库,在C++中使用。 rclpy:ROS客户端库,在Python中使用。
rosidl:服务接口定义语言,用于描述ROS消息和服务。 rmw:ROS中间件,用于管理节点之间的通信。
ros2cli:命令行界面工具,用于管理ROS 2系统。

ROS2的一大特点是集成了DDS,支持的DDS有:

Fast RTPS:该实现基于eProsima的Fast RTPS库,是ROS 2默认的DDS实现。Fast RTPS是一个高性能、可靠的DDS实现,采用了快速序列化机制(Fast Buffers)和动态类型支持(DynamicTypes),支持多种平台和编程语言。
Cyclone DDS:该实现由ADLINK开发,是另一个高性能、开源的DDS实现。Cyclone DDS支持多种平台和编程语言,并提供了一些高级功能,如分布式安全和QoS配置。
RTI Connext DDS:该实现由Real-Time Innovations公司开发,是一个商业级别的DDS实现。RTI Connext DDS提供了广泛的功能和工具,如实时监测、故障诊断和网络优化等。

😊2. ros2安装

Ubuntu 18.04可以安装ROS 2 Dashing DiademataROS 2 Eloquent Elusor版本。建议使用Eloquent版本,因为它是最新的长期支持版本,并提供了更多的功能和改进。

小鱼的安装命令:wget http://fishros.com/install -O fishros && . fishros

根据需求选择对应的ros2版本即可。

😆3. ros2基础使用

示例测试:

# 发布订阅
ros2 run demo_nodes_cpp listener
ros2 run demo_nodes_cpp talker
# 小乌龟
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
# CLI
ros2 pkg list
ros2 node list
ros2 node info <node_name>
ros2 pkg create <package-name>  --build-type  {cmake,ament_cmake,ament_python}  --dependencies <依赖名字> # 创建功能包
ros2 bag record /topic_name
rviz2
gazebo

代码模板:https://github.com/mikeferguson/ros2_cookbook

国内参考:https://fishros.com/d2lros2foxy/#/codebook/README

安装colcon编译工具并测试案例:

# 安装编译工具
sudo apt-get install python3-colcon-common-extensions
# 下载源码
mkdir colcon_test && cd colcon_test
git clone https://ghproxy.com/https://github.com/ros2/examples src/examples -b eloquent
colcon build
# 运行自己编译的节点
source install/setup.bash
ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function
source install/setup.bash
ros2 run examples_rclcpp_minimal_publisher publisher_member_function

运行如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/649763.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【RF-SSA-LSTM】随机森林-麻雀优化算法优化时间序列预测研究(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

红帽认证考试难倒你?这些知识点可以帮你一臂之力

话不多说直接上干货&#xff0c;本篇文章适用于备考Linux红帽认证的同学。 常用的RPM软件包命令 常用的Yum命令 systemd与system V init的区别以及作用 如果想要将系统默认的运行目标修改为“多用户的文本界面”模式&#xff0c;可直接用ln命令把多用户模式目标文件链接到/e…

Pytest教程__用例分组(6)

用例分组 pytest进行分组测试的方法是使用装饰器 pytest.mark.标记名称&#xff0c;被标记为相同名称的用例可以看做为同一个组。 分组用例的运行方式是在执行命令中追加 -m "标记名称"的参数。 执行结果如下&#xff1a; 从结果可以看出&#xff0c;未被标记的用例…

aPaaS平台和低代码开发平台是一回事吗?哪个更好?

零代码、低代码、APaaS系统应从哪些指标考察选型&#xff1f;低代码、零代码、APaaS哪一个更好&#xff1f; 零代码、低代码、APaaS的概念在行业内已经流行了很长一段时间。那这3个概念分别指的是什么&#xff1f;企业如果要用该如何选&#xff1f;又有哪些好用的低代码平台推…

Oracle集群管理 -CRSD层进程启动过程与故障分析

1 CRSD启动过程 整体以及依赖关系如图展示&#xff1a; crsd.bin从OCR中获取所需要的资源列表。 crsd.bin启动对应的代理进程。代理进程oraagent_root启动集群的公网资源之后集群的VIP和scan vip资源也被启动。代理进程oraagent_grid启动进而vip对应的listener资源&#xff0c;…

unity制作愤怒的小鸟

文章目录 一、 介绍SpringJoint2D 、line renderer制作发射绳基类bird脚本的基础功能给bird添加飞行拖尾效果pig类游戏胜利的小星星烟花界面摄像机跟随移动游戏失败的界面多种小鸟的制作&#xff1a;黄鸟、绿鸟、黑鸟地图选择关卡选择数据保存制作多个关卡场景异步加载游戏全局…

Unity基础4——LineRenderer

一、参数面板 二、参数介绍 Loop&#xff1a;是否首尾相连 Positions&#xff1a;线段的点 Width&#xff1a;线段宽度曲线的调整 Color&#xff1a;颜色变化 需要搭配材质才有效果 Corner Vertices&#xff1a;角顶点、圆角 此属性指&#xff0c;在一条线中绘制角时使用了…

模块化互联产品 --青翼自研 模拟采集FMC子卡产品资料

FMC121是一款基于FMC标准规范&#xff0c;实现2路14-bit、1GSPS ADC同步采集&#xff0c;2路16-bit 2.5GSPS DAC同步回放功能子卡模块。该模块遵循VITA57.1标准&#xff0c;可直接与FPGA载卡配合使用&#xff0c;板卡ADC器件采用ADI的AD9680芯片&#xff0c;该芯片具有两个模拟…

软件进行验收测试的必要性体现在哪些方面?

在软件开发的过程中&#xff0c;验收测试是一个非常重要的环节。为确认软件是否符合预期需求而进行的一种测试工作。目的是验证软件是否满足其预期功能、性能以及质量等要求。通过对软件进行全面、系统的测试&#xff0c;可以发现和解决软件开发过程中存在的问题和缺陷&#xf…

第19章:索引的创建与设计原则

一、索引的声明与使用 1.1索引的分类 功能逻辑&#xff1a;普通索引&#xff0c;主键索引&#xff0c;唯一索引&#xff0c;全文索引 物理实现方式&#xff1a;聚簇索引和非聚簇索引 作用字段个数&#xff1a;单列索引和联合索引 1.普通索引 对表中的任何字段都可以创建&…

MT6853 (天玑 720)核心板,5G核心板

天玑720是一款中端移动设备的5G入门级体验&#xff0c;采用了7纳米制程&#xff0c;并集成了低功耗的5G调制解调器。它配备了一个八核CPU&#xff0c;其中包括两个主频为2GHz的Arm Cortex-A76大核和6个2GHz的Cortex-A55小核。此外&#xff0c;它还搭载了Mali-G57 MC3的GPU&…

django REST框架- Django-ninja

Django 是我学习的最早的web框架&#xff0c;大概在2014年&#xff0c;当时选他原因也很简单就是网上资料比较丰富&#xff0c;自然是遇到问题更容易找答案&#xff0c;直到 2018年真正开始拿django做项目&#xff0c;才对他有了更全面的了解。他是一个入门有门槛&#xff0c;学…

教程示例:嵌入式软件移植 printf

在嵌入式中printf 这种功能强大的函数可谓是c语言库函数的中的一股清流&#xff01;也就是太好用了吧&#xff01;今天分享的例程有 stm32f4ZG 和 cc2530f256&#xff0c;这个两款芯片的移植例程和移植教程&#xff01;相信你看完后也可以移植到别的芯片去&#xff01; 使用的…

YouTubeDNN

这个youTubeDNN主要是工程导向&#xff0c;对于推荐方向的业界人士真的是必须读的一篇文章。它从召回到排序整个流程都做了描述&#xff0c;真正是在工业界应用的经典介绍。 作者首先说了在工业上YouTube视频推荐系统主要面临的三大挑战&#xff1a; 1.Scale(规模)&#xff1…

微软ChatGPT技术的底层支撑——GPU

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天我们来看一看微软ChatGPT技术的底层支撑——GPU。 想要了解GPU&#xff0c;你必须要清楚CPU、GPU、TPU三者的关系。 微软的chatgpt是基于复杂的人工神经网络和强化学习的技术&#xff0c;这是如何运算的…

数据建模学习2--作业-利用matlab解决实际问题

文章目录 Malthus模型问题用最小儿二乘法估计阻滞增长模型自来水运输问题利用 Dijkstra 算法计算下图中起点 D 至各顶点得最短距离&#xff0c;需要给出 仅供参考 Malthus模型问题 1790-1980年间美国每隔10年的人口数量记录如下表所示。 表1 1790-1980年间美国每隔10年的人口…

基于ENVI和哨兵2数据提取云南玉溪和安宁山火受灾面积

引言 2023年4月11日15时27分,云南省玉溪市江川区九溪镇发生森林火情。当地森林草原防灭火指挥部立即启动应急预案,组织力量扑救。省、市、区各级共投入森林消防、消防救援、公安民警、武警官兵、专业扑火队、民兵、干部群众共计4000余人开展扑救工作,妥善转移安置部分可能受…

Blender 十大重点功能带你一次了解!

一、 Cycles 渲染速度提升二到八倍 在今年四月的Cycles X公告中&#xff0c;大家得知了在Blender 3.0 中将会有Cycles X 提供一种全新的渲染风貌&#xff0c;许多人开始纷纷测试新功能。如今随着3.0的上市&#xff0c;我们可以看到与2.93 版本中使用的Cycles比较起来&#xff…

Android kotlin 实现仿蜜源ViewPager和指示器对应上面TabLayout功能

文章目录 一、实现效果二、引入依赖三、源码实现1、ViewPager实体类2、指示器样式(自定义类)3、主视图实现一、实现效果 二、引入依赖 在app的build.gradle在添加以下代码 1、TabLayout:implementation com.google.android.material:material:1.1.0 2、implementation com.gi…

90后自述,00后都这么卷了吗?

在程序员职场上&#xff0c;什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事&#xff0c;我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事&#xff0c;可遇不可求&#xff0c;向他学习还来不及呢。 真正让人反感的&#xff0c;是技术平平&#x…