logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

ROS2与ROS1的区别

ROS2(Robot Operating System 2)是ROS(Robot Operating System)的下一代版本。

文章图片
ROS2 linux中,通过ssh远程传输文件ls

这条命令是使用SCP(Secure Copy)命令将本地计算机上的源代码文件夹(~/src)递归地复制到远程计算机(192.168.31.170)上指定的目录(~/wqh/)中。我先ssh远程连接小车,这里的小车IP为:192.168.31.170。连接成功后我在主目录中创建了一个wqh的目录。通过ssh远程传输文件到小车上。

文章图片
#ssh#运维#linux
ROS2通信机制接口

在通信过程中,需要传输数据,就必然涉及到数据载体,也即要以特定格式传输数据。在ROS2中,数据载体称之为接口(interfaces)。通信时使用的数据载体一般需要使用接口文件定义。常用的接口文件有三种:msg文件、srv文件与action文件。每种文件都可以按照一定格式定义特定数据类型的“变量”。

文章图片
ROS2实现本地推信和分组通信(域ID)

ROS2本身是一个分布式通信框架,可以很方便的实现不同设备之间的通信,ROS2所基于的中间件是DDS,当处于同一网络中时,通过DDS的域ID机制(ROS_DOMAIN_ID)可以实现分布式通信,大致流程是:在启动节点之前,可以设置域ID的值,不同节点如果域ID相同,那么可以自由发现并通信,反之,如果域ID值不同,则不能实现。默认情况下,所有节点启动时所使用的域ID为0,换言之,只要保证在同一网络,

文章图片
ROS2操作命令

ROS2的文件系统核心是功能包,我们可以通过编译指令colcon和ROS2内置的工具指令ros2来实现功能包的创建、编译、查找与执行等相关操作。

文章图片
#java#linux#开发语言
ROS2安装终端

或者,也可以直接使用快捷键。

文章图片
ROS2文件系统

如前所述,ROS虽然称之为机器人操作系统,但实质只是构建机器人应用程序的软件开发工具包,ROS必须依赖于传统意义的操作系统,目前ROS2可以运行在Linux、Windows、Mac或RTOS上。主要由数据分发服务DDS与ROS2封装的关于机器人开发的中间件组成。DDS是一种去中心化的数据通讯方式,ROS2还引入了服务质量管理 (Quality of Service)机制,借助该机制可以保证在某些较

文章图片
#开发语言#服务器
ROS2创建功能包

上述指令执行完毕,将创建ws00_helloworld目录,且该目录下包含build、install、log、src共四个子级目录。

文章图片
#java#linux#前端
ROS2的组成体系

整个ROS生态由通信(Plumbing)、工具(Tools)、功能(Capabilities)与社区(Community)四大部分组成。

文章图片
ROS2话题通信之自定义消息(C++)

C++文件中包含自定义消息相关头文件时,可能会抛出异常,可以配置VSCode中c_cpp_properties.json文件,在文件中的 includePath属性下添加一行:"${workspaceFolder}/install/base_interfaces_demo/include/**"添加完毕后,包含相关头文件时,就不会抛出异常了,其他接口文件或接口包的使用也与此同理。

文章图片
#c++#开发语言
    共 40 条
  • 1
  • 2
  • 3
  • 4
  • 请选择