Ros
文章平均质量分 82
sinolover
完成项目,就要软硬兼施
展开
-
Ros 消息结构1
1、ROS的消息头信息 #Standard metadata for higher-level flow data types#sequence ID: consecutively increasing ID uint32 seq #Two-integer timestamp that is expressed as:# * stamp.secs: seconds (s转载 2017-11-13 10:19:18 · 1160 阅读 · 0 评论 -
ROS有三个层级的概念,分别是:文件系统级、计算图级和开源社区级
ROS有三个层级的概念,分别是:文件系统级、计算图级和开源社区级。文件系统级:ROS的内部结构、文件结构和所需的核心文件都在这一层里,理解ROS文件系统是入门ROS的基础。一个ROS程序的结构,是一些按不同功能进行区分的文件夹。一般的文件夹结构是:工作空间文件夹(workspace)->源文件空间文件夹(src)、编译空间文件夹(build)和开发空间文件夹(devel);源文件...转载 2019-05-29 09:13:49 · 3651 阅读 · 0 评论 -
ROS坐标系统,常见的坐标系和其含义
常见的坐标系在使用ROS进行定位导航等操作时,我们经常会遇到各种坐标系。每种坐标系都有明确的含义。理论上坐标系的名称可以是随意的,但是为了方便不同的软件间共享坐标信息,ROS定义了几个常见的坐标系。1.base_linkbase_link坐标系和机器人的底盘直接连接。其具体位置和方向都是任意的。对于不同的机器人平台,底盘上会有不同的参考点。不过ROS也给了推荐的坐标系取法。x 轴指向机...转载 2019-05-29 09:14:40 · 3105 阅读 · 2 评论 -
ros中的坐标系,
ros中的坐标系,主要包括:map,odom,base_link(base_footprint) 以及如laser,camera等传感器的坐标系;这些坐标系间的关系可以用下图表示:这是一个有向图,图中涉及四个坐标系,分别为map,odom,base_link和laser。箭头分别表示从父节点到子节点的变换,所以这里注意在写变换矩阵的时候,是先平移,后旋转,并且是按照动轴的方式(矩阵右...转载 2019-05-29 09:17:23 · 1616 阅读 · 0 评论 -
ROS中常见坐标系定义及基本单位
为了方便开发者代码复用,ROS中统一定义了常见的坐标系(REP),所有的坐标系都是右手坐标系。1. map--固定的世界坐标系,z轴垂直向上。在map中表示的移动平台的pose是没有drift,没有累计误差的。而且,pos的变化时不连续的,也就是说,pose是随时间间隔的跳动。在典型应用中,系统中的定位模块接收到传感器观测值,不断的重复计算机器人的pose,这样就可以估计drift...转载 2019-05-29 09:36:59 · 1275 阅读 · 0 评论 -
什么是欧拉角/姿态角?
用一句话说,欧拉角就是物体绕坐标系三个坐标轴(x,y,z轴)的旋转角度。在这里,坐标系可以是世界坐标系,也可以是物体坐标系,旋转顺序也是任意的,可以是xyz,xzy,yxz,zxy,yzx,zyx中的任何一种,甚至可以是xyx,xyy,xzz,zxz等等等等。。。。。。所以说欧拉角多种多样。欧拉角可分为两种情况:1,静态:即绕世界坐标系三个轴的旋转,由于物体旋转过程中坐标轴保持静止,...转载 2019-05-29 15:25:04 · 100029 阅读 · 15 评论 -
ROS探索总结(十二)——坐标系统
在机器人的控制中,坐标系统是非常重要的,在ROS使用tf软件库进行坐标转换。 相关链接:http://www.ros.org/wiki/tf/Tutorials#Learning_tf一、tf简介 我们通过一个小小的实例来介绍tf的作用。1、安装turtle包 <span>$ rosdep install tur...转载 2019-06-04 09:57:51 · 542 阅读 · 0 评论 -
由浅到深理解ROS(5)- launch启动文件的理解与编写
ROS提供了一个同时启动节点管理器(master)和多个节点的途径,即使用启动文件(launch file)。事实上,在ROS功能包中,启动文件的使用是非常普遍的。任何包含两个或两个以上节点的系统都可以利用启动文件来指定和配置需要使用的节点。通常的命名方案是以.launch作为启动文件的后缀,启动文件是XML文件。一般把启动文件存储在取名为launch的目录中。每个XML文件都必须要包含...转载 2019-06-04 17:04:49 · 193 阅读 · 0 评论 -
由浅到深理解ROS(1)
ROS机器人操作系统(RobotOperating System或简称ROS),可以帮助提高机器人软件的开发效率。ROS能够提供类似传统操作系统的诸多功能,如硬件抽象、底层设备控制、常用功能实现、进程间消息传递和程序包管理等。此外,它还提供相关工具和库,用于获取、编译、编辑代码以及在多个计算机之间运行程序完成分布式计算。结合笔者对ROS的理解,想与大家一起讨论,共同把ROS理解的更准确,...转载 2019-06-04 17:22:03 · 393 阅读 · 0 评论 -
由浅到深理解ROS(2)
ROS文件系统用户可以直接参看官网:http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystemROS文件系统中的两个最基本的概念:Package和Manifest,即包和清单文件。(1)Package是组织ROS代码的最基本单位,每一个Package都可以包括库文件,可执行文件,脚本及其它的一些文件。(2)Manifest文...转载 2019-06-04 18:39:19 · 280 阅读 · 0 评论 -
由浅到深理解ROS(3)-命名空间
全局命名空间:/rosout前面的反斜杠“/”表明该节点名称属于全局命名空间。之所以叫做全局名称因为它们在任何地方(包括代码、命令行工具、图形界面工具等的任何地方)都可以使用。无论这些名称用作众多命令行工具的参数还是用在节点内部,它们都有明确的含义。这些名称从来不会产生二义性,也无需额外的上下文信息来决定名称指的哪个资源。如/turtle1/cmd_vel由斜杠分开的一系列命名空间(name...转载 2019-06-04 18:55:44 · 175 阅读 · 0 评论 -
由浅到深理解ROS(4)
消息和消息类型节点能相互传递消息,节点之间通信也是基于消息。消息类型也就是数据类型数据类型,理解消息的类型很重要,因为它决定了消息的内容。也就是说,一个话题的消息类型能告诉你该话题中每个消息携带了哪些信息,以及这些信息是如何组织的。正如开篇提到的geometry_msg/Twist ,Twist就是消息类型。利用rosmsg show geometry_msg/Twist查看消息类型的详...转载 2019-06-04 18:57:53 · 275 阅读 · 0 评论 -
由浅到深理解ROS(5)- launch启动文件的理解与编写
ROS提供了一个同时启动节点管理器(master)和多个节点的途径,即使用启动文件(launch file)。事实上,在ROS功能包中,启动文件的使用是非常普遍的。任何包含两个或两个以上节点的系统都可以利用启动文件来指定和配置需要使用的节点。通常的命名方案是以.launch作为启动文件的后缀,启动文件是XML文件。一般把启动文件存储在取名为launch的目录中。每个XML文件都必须要包含...转载 2019-06-04 19:07:00 · 219 阅读 · 0 评论 -
由浅到深理解ROS(6)-坐标转换
转自ROS 中对于多坐标系的处理是使用树型表示,在机器人自主导航中,ROS会构建这几个很重要的坐标系:base_link: 一般位于tf tree的最根部,物理语义原点一般为表示机器人中心,为相对机器人的本体的坐标系。(base_footprint:行走机器人?)odom:一般直接与base_link 相链接,语义为一个对于机器人全局位姿的粗略估计。取名来源于odometr...转载 2019-06-04 19:38:04 · 1807 阅读 · 0 评论 -
由浅到深理解ROS(7)-URDF
转自相信许多爱好者止步于昂贵的机器人价格。虽然有了Arduino,但一个载重能力很弱的机器人小车成本也得一两百块钱。搭建自己的机器人更是费时费力。所以如果你只是普通机器人爱好者,或者还没想好要拿机器人做什么,那我们还是从模拟器开始吧……URDF为了制作我们的模拟器,首先我们得了解下什么是URDF什么是URDF?Unified Robot Description F...转载 2019-06-04 19:42:45 · 393 阅读 · 0 评论 -
ROS机器人导航仿真(kinetic版本)
http://www.cnblogs.com/qiangzi0221/p/7941896.html准备工作:ubuntu 16.04系统;ROS kinetic版本;ROS包turtlebot,导航包rbx1,模拟器arbotix,可视化rviz1、安装ubuntu 16.04系统与安装ROS kinetic版本自行百度安装。一下链接可作为参考。 http://b...转载 2019-05-31 18:56:06 · 1104 阅读 · 0 评论 -
ROS机器人导航仿真(kinetic版本)
准备工作:ubuntu 16.04系统;ROS kinetic版本;ROS包turtlebot,导航包rbx1,模拟器arbotix,可视化rviz1、安装ubuntu 16.04系统与安装ROS kinetic版本自行百度安装。一下链接可作为参考。 http://blog.csdn.net/weicao1990/article/details/525753142...转载 2019-06-26 09:19:41 · 881 阅读 · 0 评论 -
ROS入门之——浅谈launch
0.何为launch?launch,中文含义是启动,launch文件顾名思义就是启动文件,要说这launch文件啊,那还得从roslaunch说起。相传,在程序猿们还没有使用roslaunch之前,需要手动rosrun逐个启动node,遇到大工程的时候,其繁杂程度不可想象,一度民不聊生。直到神实在看不下去了,于是送给程序猿们一份礼物,唤名roslaunch。roslaunch法力无边,只需程...转载 2019-06-05 20:24:02 · 416 阅读 · 0 评论 -
QT
1、Qt 是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。 2、Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。 3、2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言转载 2017-11-13 10:51:05 · 686 阅读 · 0 评论 -
ROS 常用命令字典
版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5761448.html该博文适合已经具备一定的ROS编程基础的人,快速查看ROS相关指令。本文持续更新中,望关注收藏,一起改进...创建 ROS 工作空间启动 ROS$ roscore创建工作环境$ mkdir -p ~/ca转载 2017-12-01 10:33:46 · 346 阅读 · 0 评论 -
ROS入门_1.10 理解ROS服务和参数
目录ROS Services使用rosservicerosservice listrosservice typerosservice callUsing rosparamrosparam listrosparam set and rosparam getrosparam dump and rosparam load转载 2017-12-01 10:34:24 · 387 阅读 · 0 评论 -
使用 rqt_console 和 roslaunch
Description: 本教程介绍如何使用rqt_console和rqt_logger_level进行调试,以及如何使用roslaunch同时运行多个节点。早期版本中的rqt工具并不完善,因此,如果你使用的是“ROS fuerte”或更早期的版本,请同时参考这个页面学习使用老版本的“rx”工具。Tutorial Level: BEGINNERNext Tutorial转载 2017-12-01 10:35:15 · 416 阅读 · 0 评论 -
ROS launch文档介绍
本文章转自:https://charlyhuangrostutorial.wordpress.com/2015/08/12/20/前面已经提过关于launch 档的角色,很类似bash 档,基本上就是把所有为了执行某个特定功能所需要的指令都写在一张纸上,交给ROS 一次执行开来。举例来说,今天我想执行SLAM (即时建图及定位)的功能,但是这个演算法并不简单,我必须喂好几个输入资料进去转载 2017-12-01 15:34:46 · 411 阅读 · 0 评论 -
ROS导航之参数配置和自适应蒙特卡罗定位
我们的机器人使用两种导航算法在地图中移动:全局导航(global)和局部导航(local)。这些导航算法通过代价地图来处理地图中的各种信息,导航stack使用两种costmaps http://www.cnblogs.com/zjiaxing/p/5543386.html存储环境的障碍信息。一个costmap进行全局规划,在整个环境做长期的规划,而另一个是用于局部规划和避障。全局导航:转载 2017-12-05 15:52:27 · 1523 阅读 · 0 评论 -
ros amcl 参数配置
最近搞ros机器人定位,配置文件一堆参数官网只有简单说明,一脸懵逼,只能去看看算法,大概了解下。以下是看《概率机器人》定位后的理解<launch><!--by dyan1024//后为wiki官网的参数说明()中为粗读算法参数说明及理解×××面临的问题常用地图有2种: 1.基于特征,仅指明在指定位置(地图中包含的对象的位置)的环境的形状。特征...转载 2019-05-30 15:10:12 · 3535 阅读 · 4 评论 -
Move_base理解
move_base的输出其实就是线速度和角速度,对于一般的差速轮小车底盘就是x轴方向(正前)的速度以及自转角速度,所以这个你用船或者用小车都是无所谓的,只需要根据线速度和角速度结合自己底盘的运动学模型做解析然后控制就可以了。 你可以看一下比如turtlebot的navigation部分,看一下它都启动了什么。其实就是move_base节点和各种传感器以及slam_gmapping(slam)或者...转载 2019-05-30 15:46:00 · 2372 阅读 · 0 评论 -
一些关于ROS中move_base的理解
move_base是ROS下关于机器人路径规划的中心枢纽。它通过订阅激光雷达、map地图、amcl的定位等数据,然后规划出全局和局部路径,再将路径转化为机器人的速度信息,最终实现机器人导航。这里又要盗官网的图了。上面这个图很好的展示了move_base的整个框架,下面我更加详细的介绍一下每个模块的功能及其是如何衔接的。首先左上角的amcl模块是ROS的导航定位模块,amcl也叫自...转载 2019-05-30 15:47:14 · 1457 阅读 · 1 评论 -
ROS actionlib学习(一)
actionlib是ROS中一个很重要的功能包集合,尽管在ROS中已经提供了srevice机制来满足请求—响应式的使用场景,但是假如某个请求执行时间很长,在此期间用户想查看执行的进度或者取消这个请求的话,service机制就不能满足了,但是actionlib可满足用户这种需求。例如,控制机器人运动到地图中某一目标位置,这个过程可能复杂而漫长,执行过程中还可能强制中断或反馈信息,这时action...转载 2019-05-30 17:19:18 · 969 阅读 · 0 评论 -
由浅到深理解ROS(9)- 几个基本概念的理解 坐标系 包
1.坐标系最常用的就是map,odom,base_link,base_laser坐标系,这也是开始接触gmapping的一些坐标系。map:地图坐标系,顾名思义,一般设该坐标系为固定坐标系(fixed frame),一般与机器人所在的世界坐标系一致。base_link:机器人本体坐标系,与机器人中心重合,当然有些机器人(PR 2)是base_footprint,其实是一个意思。(bas...转载 2019-06-05 11:43:40 · 1859 阅读 · 0 评论 -
由浅到深理解ROS URDF教程
创建自己的URDF文件 1.1创建树形结构文件 在这部分教程中要创建的将是下面的图形所描述的机器人的urdf文件 图片中这个机器人是一个树形结构的。让我们开始非常简单的创建这个树型结构的描述文件,不用担心维度等的问题。创建一个my_robot.urdf文件,内容如下:<robot name="test_robot"> <link name="link1" />...转载 2019-06-05 14:45:22 · 4931 阅读 · 1 评论 -
ROS技术点滴 —— MoveIt!中的运动学插件
MoveIt!是ROS中一个重要的集成化开发平台,由一系列移动操作的功能包组成,提供运动规划、操作控制、3D感知、运动学等功能模块,是ROS社区中使用度排名前三的功能包,目前已经支持众多机器人硬件平台。MoveIt!中的众多功能都使用插件机制集成,其中有一个重要的功能模块——运动学插件。今天我们就来聊下MoveIt!中的运动学求解器。一、KDLKinematics and ...转载 2019-06-05 14:59:11 · 2322 阅读 · 0 评论 -
老王说ros的tf库
ros的tf库为了这个题目,我是拿出了挤沟的精神挤时间,是下了功夫的,线性代数、矩阵论复习了,惯性导航里的dcm、四元数也了解了,刚体力学也翻了,wiki里的欧拉角也读了,tf的tutorial、paper、source code也都看了。说实在的,经过这次努力,我是有点了然于胸了,我也非常想了然于纸上与小伙伴们分享,但尝试了几次失败了,我也不跟自己过不去了,还是扯吧。1)tf不是坐标变换...转载 2019-06-05 15:44:07 · 310 阅读 · 0 评论 -
由浅到深理解ROS(5.1)- roslaunch 学习
oslaunch 用处:将多个rosnode 结合起来,一起运行。这样就不需要一个个的运行。roslaunch格式(add_two.launch)<launch> <arg name="a" default="1" /> <arg name="b" default="2" /> <node pkg="beg...转载 2019-06-05 16:25:07 · 563 阅读 · 0 评论 -
由浅到深理解ROS(8)-线程管理
转自 单线程Spinningros::spin()是最简单的单线程自旋, 它会一直调用直到结束用法: ros::spin();另一个单线程spinning是ros::spinOnce(),它定期调用等待在那个点上的所有回调用法: ros::spinOnce();简单的我们自己实现一个用法相同的ros::spin()这样: ros::getGlobalC...转载 2019-06-04 19:44:02 · 773 阅读 · 0 评论