02 2022 档案
摘要:ROS常用组件 在ROS中内置一些比较实用的工具,通过这些工具可以方便快捷的实现某个功能或调试程序,从而提高开发效率。 TF坐标变换,实现不同类型的坐标系之间的转换: 注意: ROS使用右手坐标系 tf2常用的功能包有: tf2_geometry_msgs:可以将ROS消息转换成tf2消息。 tf2
阅读全文
摘要:ROS运行管理 ROS元功能包 在ROS中,提供了一种方式可以将不同的功能包打包成一个功能包,当安装某个功能模块时,直接调用打包后的功能包即可,该包又称之为元功能包(metapackage)。 概念: MetaPackage是Linux的一个文件管理系统的概念。是ROS中的一个虚包,里面没有实质性的
阅读全文
摘要:ROS中的头文件与源文件 头文件 在功能包下的 include/功能包名 目录下新建头文件: hello.h,示例内容如下: #ifndef _HELLO_H #define _HELLO_H namespace hello_ns{ class HelloPub { public: void run
阅读全文
摘要:ROS常用API ROS节点的初始化相关API: c++初始化 void init(int &argc, char **argv, const std::string& name, uint32_t options = 0); 参数列表: argc > 程序调用时传入实参的个数,第一个是文件自身 a
阅读全文
摘要:ROS通信机制实操 案例一 需求描述:编码实现乌龟运动控制,使乌龟做圆周运动。 实现分析: 乌龟运动控制实现,关键节点有两个,一个是乌龟运动显示节点 turtlesim_node,另一个是控制 节点,二者是订阅发布模式实现通信的,乌龟运动显示节点直接调用即可,运动控制节点之前是使用的 turtle_
阅读全文
摘要:通信常用命令 以下命令均为命令行命令 一、rosnode :操作节点 1. rosnode list //列出所有活动的节点 2. rosnode ping /pub //查看是否可以正常连通到pub节点 3. rosnode info /pub //查看节点pub的信息 4. rosnode ma
阅读全文
摘要:参数服务器理论模型 作用 参数服务器在ROS中主要用于实现不同节点之间的数据共享。 参数服务器相当于是独立于所有节点的一个公共容器, 可以将数据存储在该容器中,被不同的节点调用,当然不同的节点也可以往其中存储数据。 概念 以共享的方式实现不同节点之间数据交互的通信模式。 作用 储存一些多节点共享的数
阅读全文
摘要:参数服务器的具体实现 在c++中实现增删改查可以使用两套API实现 ros::NodeHandle ros::param c++ # include"ros/ros.h" int main(int argc, char *argv[]) { setlocale(LC_ALL,""); ros::in
阅读全文
摘要:服务通信模型 概念: 以请求响应的方式实现不同节点之间数据交互的通信模式 作用: 用于偶然的、对实时性有要求的、有一定逻辑处理需求的数据传输场景 角色: 1. Master >管理者 2. Server >服务端 3. Client >客户端 流程: Master会根据话题实现Server和Clie
阅读全文
摘要:服务通信实现 srv文件 服务通信是基于请求和响应,因此服务通信的消息载体需要包含“请求”和“响应”两个部分,默认的数据结构不能满足,所以需要自定义数据载体srv文件。 srv文件可用的数据类型与msg文件一致,且实现流程与msg文件类似。 实现流程: 1. 在功能包目录下创建srv文件夹,并创建x
阅读全文
摘要:自定义msg类型 msgs只是简单的文本文件,每行具有字段类型和字段名称,可以使用的字段类型有: int8, int16, int32, int64 (或者无符号类型: uint*) float32, float64 string time, duration //duration表示持续时间 ot
阅读全文
摘要:ROS话题通信模型 角色: 1. master >管理者 2. talker >发布者 3. listener >订阅者 流程: 管理者可以通过话题建立发布者与订阅者之间的连接 流程实现: 1. 发布者将话题与RPC地址发送给管理者进行注册。 2. 订阅者在管理者处注册自己关注的话题。 3. 将发布
阅读全文
摘要:创建工作空间 在终端中输入 mkdir -p demo01_ws/src //demo01为工作空间名,可自定义 //后缀需要有_ws长度 进入工作空间并初始化 cd demo01_ws catkin_make 进入src创建ros功能包并添加依赖 cd src catkin_create_pkg
阅读全文
摘要:在vscode中运行ros文件 1.创建工作空间并进行初始化 2.与工作空间目录下打开终端输入 code . //.和code中间存在空格 随后选择src目录,右键选择 create catkin package 键入功能包名 回车后输入依赖 roscpp rospy std_msgs c++ 于功
阅读全文