
ROS
ROS机器人开发实战
TB81266
机器人SLAM
展开
-
ROS中的TF(TransForm)
文章目录前言什么是TF?发布的TF消息是什么样的?TF tree是什么类型呢?tf in c++前言TF是一个ROS世界里的一个基本的也是很重要的概念,所谓TF(TransForm),就是坐标转换。坐标变换包括了位置和姿态两个方面的变换,ROS中的TF是一个可以让用户随时记录多个坐标系的软件包。TF保持缓存的树形结构中的坐标系之间的关系,并且允许用户在任何期望的时间点在任何两个坐标系之间转换点,矢量等。什么是TF?TF的定义不是那么的死板,它可以被当做是一种标准规范,这套标准定义了坐标转换的数据格式原创 2020-07-23 08:26:17 · 3118 阅读 · 0 评论 -
ROS中的Client Library与roscpp talker lisener
文章目录前言一、Client Library简介二、roscpp三、talker与 lisener前言ROS为机器人开发者们提供了不同语言的编程接口,比如C++接口叫做roscpp,Python接口叫做rospy,Java接口叫做rosjava。尽管语言不通,但这些接口都可以用来创建topic、service、param,实现ROS的通信功能。Clinet Lirary有点类似开发中的Helper Class,把一些常用的基本功能做了封装。一、Client Library简介目前ROS支持的Cli原创 2020-07-21 10:23:40 · 481 阅读 · 0 评论 -
OPenCV中的Mat类中rowRange和colRange基本使用
文章目录定义Mat::rowRange函数Mat::colRange函数定义rowRange为指定的行span创建一个新的矩阵头,可取指定行区间元素colRange为指定的列span创建一个新的矩阵头,可取指定列区间元素Mat::rowRange函数Mat::rowRange为矩阵的指定行区间创建一个矩阵头。C++: Mat Mat::rowRange(int startrow, int endrow) constC++: Mat Mat::rowRange(const Range&原创 2020-07-06 17:03:01 · 1785 阅读 · 2 评论 -
节点初始化、关闭以及NodeHandle
文章目录前言初始化节点关闭节点NodeHandle常用成员函数NodeHandle的使用前言当执行一个ROS程序,就被加载到了内存中,就成为了一个进程,在ROS里叫做节点。每一个ROS的节点尽管功能不同,但都有必不可少的一些步骤,比如初始化、销毁,需要通行的场景通常都还需要节点的句柄。 、初始化节点对于一个C++写的ROS程序,之所以它区别于普通C++程序,是因为代码中做了两层工作:调用了 ros::init() 函数,从而初始化节点的名称和其他信息,一般我们ROS程序一开始都会以这种方式开始。原创 2020-07-03 17:08:52 · 1791 阅读 · 0 评论 -
ROS中的package.xml的使用
文章目录package.xml作用package.xml写法(来自VINS-mono中 vins_estimator)package.xml作用pacakge.xml 包含了package的名称、版本号、内容描述、维护人员、软件许可、编译构建工具、编译依赖、运行依赖等信息。实际上 rospack find 、 rosdep 等命令之所以能快速定位和分析出package的依赖项信息,就是直接读取了每一个pacakge中的 package.xml 文件。它为用户提供了快速了解一个pacakge的渠道。p原创 2020-07-03 11:25:03 · 876 阅读 · 0 评论 -
ROS 中的Package软件包
文章目录前言package结构创建package前言ROS中的package的定义更加具体,它不仅是Linux上的软件包,更是catkin编译的基本单元,我们调用 catkin_make 编译的对象就是一个个ROS的package,也就是说任何ROS程序只有组织成package才能编译。所以package也是ROS源代码存放的地方,任何ROS的代码无论是C++还是Python都要放到package中,这样才能正常的编译和运行。一个package可以编译出来多个目标文件(ROS可执行程序、动态静态库、头文原创 2020-07-03 11:05:31 · 955 阅读 · 0 评论 -
ROS中的launch文件的使用
文章目录前言写法和格式前言机器人是一个系统工程,通常一个机器人运行操作时要开启很多个node,对于一个复杂的机器人的启动操作应该怎么做呢?当然,我们并不需要每个节点依次进行rosrun,也就是说rosrun一次只能启动一个节点。ROS为我们提供了一个命令能一次性启动master和多个node。该命令是:$ roslaunch pkg_name file_name.launchroslaunch命令首先会自动进行检测系统的roscore有没有运行,也就是确认节点管理器是否在运行状态中,如果maste原创 2020-07-03 10:35:09 · 784 阅读 · 0 评论