ROS机器人操作系统
文章平均质量分 68
ROS机器人操作系统
我与nano
嵌入式开发,物联网,PCB,linux应用,卡尔曼,pid,Jetson nano,树莓派,K210,深度学习,机器视觉,Opencv,slam,Ros,自控
展开
-
ROS机器人操作系统——什么是ROS(一)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、ROS是什么?二、ROS的发展史三、ROS的特点总结前言大一下的时候接触过ROS,也只是单纯的知道这个东西,了解了一点皮毛,并没有系统的去学习。一年过去了,无人驾驶以及机器视觉还是更加吸引我,于是我打算重拾ROS,希望能在别人开源的基础上做到二次开发,实现我想要的功能。一、ROS是什么?随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求原来越强烈,而已有的开源机器人系统又不能很好的适应需求。2010年Willow Garage公司原创 2022-03-10 00:02:58 · 29774 阅读 · 7 评论 -
ROS机器人操作系统——ROS的核心概念(二)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、ROS的通信机制二、ROS中的开发工具1.命令行&编辑器2.可视化工具三、ROS的应用功能四、ROS的生态系统总结前言ROS的核心就是提高机器人研发中的软件复用率,共分为四大部分。一、ROS的通信机制松耦合分布式通信,所有的框架可以抽象成一个节点图,用箭头代表他们之间的通信。节点是ROS中重要的一部分,通过各个节点实现功能的拼接,节点是唯一的,不允许重名节点之间通过节点管理器进行连接像图像、雷达等都是ROS中定义好原创 2022-03-10 11:16:06 · 1085 阅读 · 0 评论 -
ROS机器人操作系统——ROS命令行工具的使用(三)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、启动小海龟二、工具介绍1.rqt_graph2.读入数据总结前言一、启动小海龟启动ROS Master管理器roscore启动小海龟仿真器rosrun turtlesim turtlesim_node启动小海龟控制节点rosrun turtlesim turtle_teleop_key要把光标放在小海龟控制节点终端上才可以用上下左右控制小海龟移动二、工具介绍1.rqt_graph代码如下(示例):impo原创 2022-03-10 12:56:06 · 1156 阅读 · 0 评论 -
ROS机器人操作系统——创建工作空间与功能包(四)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、工作空间1.创建工作空间2.编译工作空间3.设置环境变量4.检查环境变量二、功能包1.创建功能包2.编译功能包总结前言工作空间与功能包是ROS工程中两个非常重要的概念一、工作空间src放置功能包的文件1.创建工作空间mkdir -p ~/catkin_ws/src #-p检测路径,没有就创建cd ~/catkin_ws/srccatkin_init_workspace后面的src是不能更改的2.编译工作空间cd ~/原创 2022-03-10 14:15:14 · 1531 阅读 · 0 评论 -
ROS机器人操作系统——发布者Publisher的编程实现(五)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、话题模型二、实现功能1.创建功能包2.实现发布者(c++)3.配置发布者代码编译规则4.编译运行代码5.设置环境变量6.实现发布者(python)总结前言发布于订阅是ROS中比较重要的一部分一、话题模型这是小海龟的话题模型二、实现功能1.创建功能包$ cd ~/catkin_ws/src$ catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs tu原创 2022-03-10 16:03:29 · 660 阅读 · 0 评论 -
ROS机器人操作系统——订阅者Subscriber的编程实现(五)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、话题模型二、实现功能1.创建订阅者C++2.Python代码3.配置订阅者代码编译规则4.编译并运行订阅者总结前言与发布者相对应的是ROS系统里的订阅者,也是ROS里经常使用的知识。一、话题模型二、实现功能1.创建订阅者C++如何实现一个订阅者• 初始化ROS节点;• 订阅需要的话题;• 循环等待话题消息,接收到消息后进入回调函数;• 在回调函数中完成消息处理。/** * 该例程将订阅/turtle1/pose话题,消息原创 2022-03-10 19:32:46 · 277 阅读 · 1 评论 -
ROS机器人操作系统——话题消息的定义与使用(六)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、如何自定义话题消息二、实现方法1.创建.msg文件2.添加功能包依赖3.配置cmake编译规则1.添加功能包2.添加编译文件规则3.在catkin_package中创建运行的依赖三、创建发布者与订阅者1.发布者2.订阅者3.配置代码编译规则总结前言前面学习了发布与订阅,前面的都是ROS中定义好的一些东西,当我们需要的东西ROS没有被定义的时候,我们就需要自己定义这些。一、如何自定义话题消息➢ 定义msg文件;➢ 在package.xml原创 2022-03-10 20:52:43 · 644 阅读 · 0 评论 -
ROS机器人操作系统——客户端Client的编程实现(七)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、服务模型二、实现方法1.创建功能包2.创建客户端3.配置编译规则4.编译并运行客户端总结前言前面介绍了发布者与订阅者的实现,Client是一种新的通信方式一、服务模型二、实现方法1.创建功能包$ cd ~/catkin_ws/src$ catkin_create_pkg learning_service roscpp rospy std_msgs geometry_msgs turtlesim2.创建客户端如何实现一个客原创 2022-03-10 21:54:04 · 358 阅读 · 0 评论 -
ROS机器人操作系统——服务端Server的编程实现(八)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、服务模型二、实现方法1.创建一个服务器2.代码编译规则3.运行服务器前言一、服务模型二、实现方法1.创建一个服务器如何实现一个服务器• 初始化ROS节点;• 创建Server实例;• 循环等待服务请求,进入回调函数;• 在回调函数中完成服务功能的处理,并反馈应答数据。c++/** * 该例程将执行/turtle_command服务,服务数据类型std_srvs/Trigger */#include <ros/r原创 2022-03-11 13:17:33 · 466 阅读 · 0 评论 -
ROS机器人操作系统——服务数据的定义与使用(九)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、服务模型二、自定义服务数据1.创建一个服务器2.添加功能包依赖3.添加编译选项4.生成头文件三、代码实现1.创建客户端2.创建服务器3.设置编译规则4.编译并运行总结前言前面学习了Spawn和Trigger两种在ROS中已经定义好的服务方式,但是在很多情况下这两种服务方式并不能满足我的需求。为了满足我们自己的需求,我们需要自己定义一个服务数据并且使用它。一、服务模型二、自定义服务数据➢ 定义srv文件;➢ 在package.xml中原创 2022-03-12 19:54:31 · 875 阅读 · 0 评论 -
ROS机器人操作系统——参数的使用与编程方法(十)
ROS机器人操作系统文章目录ROS机器人操作系统一、参数模型二、使用步骤1.引入库2.读入数据总结一、参数模型二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')import sslssl._create_defa原创 2022-03-13 14:16:53 · 435 阅读 · 0 评论 -
ROS机器人操作系统——ROS中的坐标系管理系统(十一)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、TF坐标变换二、小海龟案例1.安装功能包2.运行功能包3.运行代码总结前言前面学习了ROS中的一些基本知识,但是我们在使用ROS时,有很多工具需要我们去学习。比如机器人的坐标变换,通过一个4*4的矩阵进行平移和旋转。一、TF坐标变换在我们使用机器人的时候,通常存在很多坐标,就比如摄像头和底盘的坐标是完全不同的,我们需要通过复杂的计算可以将两个坐标系结合起来,但是这是非常复杂的一个办法,在ROS中就提供一种功能包TF坐标变换,通过查询的原创 2022-03-13 20:17:39 · 2352 阅读 · 0 评论 -
ROS机器人操作系统——tf坐标系广播与监听的编程实现(十二)
ROS机器人操作系统文章目录ROS机器人操作系统一、创建功能包二、创建TF广播代码三、创建TF监听器总结一、创建功能包$ cd ~/catkin_ws/src$ catkin_create_pkg learning_tf roscpp rospy tf turtlesim二、创建TF广播代码如何实现一个tf广播器• 定义TF广播器(TransformBroadcaster)• 创建坐标变换值;• 发布坐标变换(sendTransform)C++ * 该例程产生tf数据,并计算、发原创 2022-03-13 21:18:50 · 576 阅读 · 0 评论 -
ROS机器人操作系统——launch启动文件的使用方法(十三)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):imp原创 2022-03-14 14:13:00 · 2716 阅读 · 0 评论 -
ROS机器人操作系统——常用可视化工具的使用(十四)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、QT工具箱二、Rviz三、Gazebo前言ROS操作系统中提供了很多可视化工具,这些工具方便我们调试机器人。一、QT工具箱输入ros_然后按tab键补全就行了二、RvizRviz是一款三维可视化工具,可以很好的兼容基于ROS软件框架的机器人平台。➢ 在rviz中,可以使用可扩展标记语言XML对机器人、周围物体等任何实物进行尺寸、质量、位 置、材质、关节等属性的描述,并且在界面中呈现出来。➢ 同时,rviz还可以通过图形化的方式,原创 2022-03-14 22:01:02 · 1290 阅读 · 0 评论 -
ROS机器人操作系统——Launch文件与参数服务器详解(十五)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、launch文件标签二、launch文件标签详解1.根标签2.嵌套3.节点总结前言ROS中的launch文件与参数服务器在我们调试机器人的时候非常重要,对于launch文件以及参数服务器我们要深入了解学习。一、launch文件标签前面说到,launch文件是可实现多节点启动和参数配置的xml文件。二、launch文件标签详解1.根标签<launch>..............</launch>2原创 2022-03-15 15:37:26 · 1862 阅读 · 0 评论 -
ROS机器人操作系统——如何将ROS与STM32连接(十六)
ROS机器人操作系统文章目录ROS机器人操作系统前言一、两种控制器的功能二、硬件连接总结前言前面学习了ROS的基本操作,仅仅只使用这个操作系统并没有什么用处,还需要讲他与硬件相结合从而控制机器人的运动。`一、两种控制器的功能ROS主控采用的Jetson nano B01 STM32主控用的是F407,通过Jetson 驱动雷达采集信息,然后串口像STM32发送相关的运动指令,串口接收到后执行相应的动作。二、硬件连接硬件连接很简单用的是平衡小车之家的ROS STM32控制板,其内置电平转原创 2022-03-15 16:31:21 · 1070 阅读 · 0 评论