
ROS开发设计
文章平均质量分 76
机器人操作系统
loongembedded
本人目前在佛山一家上市公司负责智能终端、服务机器人的研发工作,欢迎大家的指教和交流!。
展开
-
ros命名空间
在ROS中,命名空间是一种用于组织和区分节点、话题、服务和参数等资源的层次结构。命名空间使用斜线(/)作为分隔符,类似于文件系统中的路径。原创 2023-12-16 09:15:23 · 427 阅读 · 0 评论 -
ROS运行管理---launch文件
文章目录1. launch文件概述1.1 luanch文件概念1.2 luanch文件作用2. launch文件启动示例3. launch文件语法1. launch文件概述1.1 luanch文件概念launch 文件是一个 XML 格式的文件,可以启动本地和远程的多个节点,还可以在参数服务器中设置参数。1.2 luanch文件作用简化节点的配置与启动,提高ROS程序的启动效率。luanch文件需求背景举例:一个程序中可能需要启动多个节点,比如:ROS 内置的小乌龟案例,如果要控制乌龟运动,原创 2022-05-07 08:53:15 · 1651 阅读 · 0 评论 -
ROS运行管理---ROS元功能包(metapackage)
文章目录1. 元功能包概念2. 元功能包作用3. 元功能包实现3.1 创建一个功能包3.2 修改package.xml3.3 修改CMakeLists.txt1. 元功能包概念MetaPackage是Linux的一个文件管理系统的概念。是ROS中的一个虚包,里面没有实质性的内容,但是它依赖了其他的软件包,通过这种方法可以把其他包组合起来,我们可以认为它是一本书的目录索引,告诉我们这个包集合中有哪些子包,并且该去哪里下载。例如:sudo apt install ros-noetic-desktop-原创 2022-05-07 08:38:59 · 1477 阅读 · 0 评论 -
ROS通信机制三---参数服务器
文章目录1. 参数服务器模型2. 参数操作示例1. 参数服务器模型参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点也可以往其中存储数据,关于参数服务器的典型应用场景如下:路径规划时,需要参考小车的尺寸,我们可以将这些尺寸信息存储到参数服务器,全局路径规划节点与本地路径规划节点都可以从参数服务器中调用这些参数参数服务器,一般适用于存在数据共享的一些应用场景。2. 参数操作示例..原创 2022-04-21 21:53:53 · 552 阅读 · 0 评论 -
ROS通信机制二---服务通信
文章目录参考链接ROS架构(五)——ROS的通信机制1. 服务通信模型2.服务通信示例2.1 自定义srv2.1.1 创建sum.srv文件2.1.2 配置package.xml2.1.3 配置CMakeLists.txt2.1.4 编译2.1.5配置c_cpp_properties.json文件2.1 服务端2.2 客户端2.3 CMakeLists.txt参考链接ROS架构(五)——ROS的通信机制1. 服务通信模型服务通信是ROS中一种极其常用的通信模式,服务通信是基于请求响应模式的,是一种应原创 2022-04-21 19:28:06 · 1492 阅读 · 0 评论 -
ROS简介
1.1.2ROS设计目标机器人开发的分工思想,实现了不同研发团队间的共享和协作,提升了机器人的研发效率,为了服务“ 分工”,ROS主要设计了如下目标:代码复用:ROS的目标不是成为具有最多功能的框架,ROS的主要目标是支持机器人技术研发中的代码重用。分布式:ROS是进程(也称为Nodes)的分布式框架,ROS中的进程可分布于不同主机,不同主机协同工作,从而分散计算压力。原创 2022-04-15 10:27:37 · 451 阅读 · 0 评论 -
ROS通信机制一---话题通信
文章目录总述1. 话题通信模型2. 话题通信实现示例2.1 发布方总述ROS的核心——分布式通信机制ROS是一个分布式框架,为用户提供多节点(进程)之间的通信服务,所有软件功能和工具都建立在这种分布式通信机制上,所以ROS的通信机制是最底层也是最核心的技术。1. 话题通信模型话题通信实现模型是比较复杂的,该模型如下图所示,该模型中涉及到三个角色:●ROS Master (管理者)●Talker (发布者)●Listener (订阅者)ROS Master 负责保管 Talker 和 Lis原创 2022-04-15 10:09:59 · 2456 阅读 · 0 评论 -
ROS文件系统
文章目录参考链接1.文件系统结构2. 工作空间src目录2.1 CMakeLists.txt文件2.2 功能包目录结构2.2.1 CMakeLists.txt文件2.2.2 package.xml文件参考链接(1) 机器人操作系统入门(二)ROS文件系统:添加链接描述(2) 详解ROS文件系统:添加链接描述1.文件系统结构ROS文件系统指的是ROS源代码的组织形式,其结构大致如下图:默认包含三个文件夹:src/: ROS的catkin软件包(C++源代码包)build/: catkin(C原创 2022-04-08 21:49:17 · 2482 阅读 · 0 评论 -
ros hello world功能包创建及编译
文章目录1. 创建工作空间和功能包2.新建cpp文件3.修改CMakeLists.txt4.编译问题4.1 Could NOT find rospy (missing: rospy_DIR)5. 运行可执行文件5.1 运行roscore的Resource not found: roslaunch的解决方法5.2 Command 'rosrun' not found问题5.3 执行可执行文件1. 创建工作空间和功能包参考添加链接描述2.新建cpp文件在创建的功能包helloworld/src下创建he原创 2022-04-07 07:57:45 · 3471 阅读 · 0 评论 -
ROS坐标系
文章目录学习链接[ROS坐标转换讲解 | Autolabor Simulation](https://blog.youkuaiyun.com/autolabor/article/details/85120806)学习链接ROS坐标转换讲解 | Autolabor Simulation原创 2022-03-31 08:10:46 · 166 阅读 · 0 评论 -
编写简单的服务和客户端(C++)---ROS学习第10篇
文章目录1. 编写服务节点2. 编写客户端节点3. 构建节点4. 运行可执行文件1. 编写服务节点这里,我们将创建简单的服务(Service)节点add_two_ints_server,该节点将接收两个整数,并返回它们的和。将当前目录切换到之前的教程中创建的study包中,另外请确保你已经按照[之前介绍]中的指示创建了本教程(https://loongembedded.blog.youkuaiyun.com/article/details/122423436)中需要的服务AddTwoInts.srv。#inclu原创 2022-01-19 08:28:35 · 524 阅读 · 0 评论 -
编写简单的发布者和订阅者(C++)---ROS学习第9篇
文章目录1.编写发布者节点2. 编写订阅者节点3.构建节点4.运行节点1.编写发布者节点在之前创建的study/src目录下创建talker.cpp文件并粘贴以下内容进去#include "ros/ros.h"#include "std_msgs/String.h"#include <sstream>/** * This tutorial demonstrates simple sending of messages over the ROS system. */int m原创 2022-01-18 20:58:17 · 1179 阅读 · 0 评论 -
创建ROS消息和服务---ROS学习第8篇
文章目录1. msg和srv介绍2. 使用msg2.1 创建msg2.2 使用rosmsg3. 使用srv3.1 创建srv3.2 使用rossrv4. msg和srv的一般步骤5.获取帮助6. 复习1. msg和srv介绍● msg(消息):msg文件是文本文件,用于描述ROS消息的字段。它们用来为不同编程语言编写的消息生成源代码。● srv(服务):一个srv文件描述一个服务。它由两部分组成:请求(request)和响应(response)。msg文件存放在软件包的msg目录下,srv文件则存放原创 2022-01-11 13:07:13 · 930 阅读 · 0 评论 -
基于firefly rk3399 Android 7.1实现的ros服务小机器人
系统是用的firefly提供的Android 7.1自己编译的,系统层面改动不多,由于是在Android上实现ros功能,所以涉及的移植工作相对来说比较多且繁琐;程序主要以apk形式运行,涉及到的算法都通过交叉编译编译成so库,通过jni调用; 手机和板子之间使用的是websocket通讯,通过手机可以很好的控制小车进行导航,定位,自动回冲等常见功能;第一张是主要组成介绍,那个显示器其实没啥用,不过不接显示器你怎么知道是Android系统呢; 第二张是之前已经建好的图,还算工整; 第三张打开的建图程序,转载 2022-01-06 17:31:10 · 584 阅读 · 0 评论 -
使用rqt_console和roslaunch---ROS学习第7篇
文章目录1. 准备工作2.使用rqt_console和rqt_logger_level2.1 日志记录器级别2.2 使用roslaunch2.3 launch文件2.4 launch解析本篇介绍在ROS中使用rqt_console和rqt_logger_level进行调试,以及使用roslaunch同时启动多个节点1. 准备工作本篇会用到rqt和turtlesim这两个软件包,需要先安装:$ sudo apt-get install ros-noetic-rqt ros-noetic-rqt-co原创 2022-01-05 20:35:33 · 606 阅读 · 2 评论 -
理解ROS服务和参数---ROS学习第6篇
文章目录1.ROS服务2.使用rosservice2.1 rosservice list2.2 rosservice type2.3 rosservice call3. 使用rosparam3.1 rosparam list3.2 rosparam set和rosparam get3.3 rosparam dump和rosparam load1.ROS服务服务时节点之间通讯的另一种方式。服务允许节点发送一个请求(request)并获得一个响应(response)。2.使用rosserviceross原创 2021-12-29 08:36:19 · 2734 阅读 · 0 评论 -
理解ROS话题---ROS学习第5篇
文章目录1. 通过键盘控制turtle2. ROS话题2.1 使用rqt_graph1. 通过键盘控制turtle(1) 打开一个终端运行roscore(2) 再打开一个新的终端来打开turtlesim_node节点kandi@ubuntu:~$ rosrun turtlesim turtlesim_node弹出一个乌龟的界面(3) 再打开一个新的终端,通过键盘控制turtlekandi@ubuntu:~$ rosrun turtlesim turtle_teleop_key现在就原创 2021-12-24 10:53:40 · 1232 阅读 · 0 评论 -
ROS工具篇---rqt
文章目录1. rqt_grap1. rqt_graprqt_graph用动态的图显示了系统中正在发生的事情。rqt_graph是rqt程序包中的一部分。$ rosrun rqt_graph rqt_graph你原创 2021-12-24 09:09:11 · 4874 阅读 · 0 评论 -
理解ROS节点---ROS学习第4篇
文章目录1.图概念速览2.节点3.客户端库4.roscore5.使用rosnode6.使用rosrun1.图概念速览计算图(Computation Graph)是一个由ROS进程组成的点对点网络,它们能够共同处理数据。ROS的基本计算图概念有节点(Nodes)、主节点(Master)、参数服务器(Parameter Server)、消息(Messages)、服务(Services)、话题(Topics)和袋(Bages),它们都以不同的方式向图(Graph)提供数据。●节点:节点是一个可执行文件,它可原创 2021-12-23 08:56:02 · 1218 阅读 · 0 评论 -
ROS初级教程1---官方ROS文件系统导览
文章目录1.文件系统概念简介2.文件系统工具2.1使用rospack2.2使用roscd2.2.1 子目录2.2.2 roscd log2.3 使用rosls2.3 Tab补全1.文件系统概念简介•软件包(packages):包是ROS代码的软件组织单元,每个软件包都可以包含程序库、可执行文件、脚本或其他构建。•Manifests(package.xml):清单(Manifest)是对软件包的描述。它用于定义软件包之间的依赖关系,并记录有关软件包的元信息,如版本、维护者、许可证。2.文件系统工具程原创 2021-12-16 09:54:39 · 1837 阅读 · 0 评论 -
ROS学习--第3篇:ROS基础---创建工作空间和软件包
1.创建工作空间 catkin_ws创建src文件,放置功能包源码:mkdir -p ~/catkin_ws/src进入src文件夹:cd ~/catkin_ws/src初始化文件夹:catkin_init_workspace这样就在src文件中创建了一个 CMakeLists.txt 的文件,目的是告诉系统,这个是ROS的工作空间。2.编译工作空间 catkin_make所有编译工作都要在catkin_ws文件夹下编译:cd ~/catkin_ws/编译,编译完成后,会发现catki原创 2021-12-04 13:08:19 · 2963 阅读 · 0 评论 -
ROS基本概念
1.节点节点是主要的计算执行进程,如果你想要有一个可以与其他节点进行交互的进程,那么你需要创建一个节点,并将此节点链接到ROS网络。通常情况下,系统包含能够实现不同功能的多个节点。最好让每一个节点都具有特定的单一功能,而不是系统中创建一个包罗万象的大节点。节点需要使用如roscpp或rospy的ROS客户端库进行编写。2.节点管理器ROS节点管理器向ROS系统中其他节点提供命名和注册服务,它像服务一样跟踪和记录主题的发布者和订阅者。节点管理器的作用是使ROS节点之间能够相互查找,一旦这些节点找到了彼此原创 2021-11-23 20:17:08 · 855 阅读 · 0 评论 -
ROS: catkin和rosmake创建和编译功能包、执行节点
ROS: catkin和rosmake创建和编译功能包原创 2021-11-20 18:19:35 · 484 阅读 · 0 评论