自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

太初有泪的博客

既然选择了远方,便只顾风雨兼程!

  • 博客(41)
  • 收藏
  • 关注

原创 「C++」泛型编程 —— 函数模版

函数模版1. 简介2. 函数模版3. 函数模版实例化4. 参考列表模版(Template)是C++中泛型编程的基础。一个模版就是一个创建类或函数的蓝图。模板采用类型作为参数,支持通用程序设计。以下仅为常用形式,其它的内容如非类型参数形式,可以查阅参考列表。1. 简介泛型编程有够处理在编写程序时不知道类型的情况,是独立于任务特定类型的程序设计,而模版是泛型编程的基础。假如我们要编写一个函数来比较两个对象的值,并给出小于、等于或大于的结果,因为对象的类型未知,可能需要根据其类型定义多个重载函数,但这些

2020-12-31 12:00:41 189

原创 「图论」重温梳理笔记「一」 —— 基本概念

本部分介绍「图」的基本概念。图的基本概念1.2.3.1.2.3.

2020-12-30 16:21:51 1697 1

原创 「图论」重温梳理笔记「零」 —— 体系结构

最近处理关系相关的数据,需要用到图理论(Graph Theory),所以对其重新学习并梳理了一下,加深印象。以下为重温梳理的脉络图,以期让知识更加的系统化。

2020-12-30 13:37:59 234

原创 「Boost」库 Windows VS2019 环境配置

Windows VS Boost 环境配置1. Boost 库下载安装1.1 Boost 库文件下载1.2 Boost 库安装2. Visual Studio 环境配置项目代码编写过程中用到了 Boost 库,先在 VS 中学习验证一下,所以在 Windows 系统中的 Visual Studio 里配置了一下。1. Boost 库下载安装1.1 Boost 库文件下载Boost 库有专门的官网 https://www.boost.org/, 首先进入官网下载对应版本的 Boost 库文件。点击

2020-12-02 14:40:30 3959 3

原创 「Eigen」ROS-Eigen消息转换

ROS-Eigen消息转换1. 头文件2. 相关函数3. 文件中的使用4. 参考资料1. 头文件ROS与Eigen的消息转换相关函数定义在eigen_msg.h中,可用于geometry_msgs与Eigen相关数据类型之间的转换。在源文件中需要包含:#include <eigen_conversions/eigen_msg.h>在CMakeList.txt中需要在find_package()中添加eigen_conversions的包依赖:find_package(catkin

2020-11-30 09:45:12 2185 1

原创 「C++」STL —— Set

文章目录1. 作用2. 声明3. 基本操作4. 参考引用1. 作用2. 声明3. 基本操作4. 参考引用

2020-08-18 09:37:14 119

原创 「C++」STL —— Map

文章目录1. 简介2.3. 基本操作函数4.5.6.7.8.9.10.这个库需要学习一下。1. 简介Map是STL的一个关联容器,它提供 < Key - Value > 形式的数据处理能力,其内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。2.3. 基本操作函数 begin() 返回指向map头部的迭代器 clear() 删除所有元素 coun

2020-08-13 23:31:44 249

原创 「C++」typedef 使用总结

目录1. 定义简化1.1 纯简化用法1.2 配合struct使用2. 跨平台移植C/C++代码中,遇到很多使用typedef的情形,特此总结一下,以供再次查阅。最近参考以前的C/C++代码时,碰到了巨多的typedef定义,有点眩晕,默默翻开工具书,结合着旧代码,简单的归纳一下。主要归纳为以下两点作用:1. 定义简化对目标数据或函数类型进行简化,也可以理解为思维层面上的简化,方便记忆并避免出错。1.1 纯简化用法typedef char* pointer; pointer sp1,sp2;

2020-07-23 21:21:16 556

原创 Matlab分析rosbag记录的数据

目录1. ROS记录Topic数据1.1 建立保存路径1.2 记录/JointState Topic数据1.3 启动机器人运动2. Matlab对.bag文件的处理2.1 文件导入2.2 Topic选择2.3 数据读取3. 完整程序在进行机器人数据可视化与分析的过程中,难免要用到Matlab,虽然ROS提供了rqt_plot功能,但是从可视化的角度,当前还是用Matlab画图更清晰一些。所以在此记录一下用Matlab显示rosbag记录的机器人轨迹数据的过程。1. ROS记录Topic数据rosbag

2020-06-15 19:21:19 4502 2

原创 ROS-Industrial 之 MoveIt —— 读取实际机器人的状态

每天不调点BUG,感觉浑身不自在。文章目录1. 问题描述2. 解决方法3. 原因分析1. 问题描述2. 解决方法3. 原因分析

2020-06-08 15:36:45 1707 5

原创 ROS-Industrial 之 MoveIt —— 碰撞物体约束添加

在之前的ROS-Industrial Overview中,ROS-I 的高层架构包含有MoveIt层,用来完成机器人的运动规划任务。在此记录一下在使用过程中遇到的磨人的问题。文章目录1. 问题描述2. 应对方法3. 原因分析1. 问题描述2. 应对方法3. 原因分析...

2020-06-04 11:06:09 1441 1

原创 Eigen —— 参考指南

机器人的运动规划过程中会涉及大量的矩阵计算,而 EIGEN 库对于矩阵计算而言,其意义不言而喻。所以最近学习了一下 EIGEN 库的使用。并在此过程中记录自己的感悟和理解。本篇通过Eigen库的Quick reference guide来了解整个库。文章目录1. Eigen模块和头文件(Modules and Header files)2. 数组、矩阵和向量类型(Array, matrix and vector types)2.1 基本矩阵运算(Basic matrix manipulation)2..

2020-05-27 18:14:10 1084

原创 机器人运动学基础——旋转矩阵

旋转矩阵是机器人运动学的基础,但有时候经常会被各种旋转求解问题搞晕,比如旋转向量、旋转坐标系、同一空间点在不同坐标系下的坐标求解等等。正好当前需要对机械臂进行行为规划,所以又重新学习并理解了一下旋转矩阵,特此记录一下此次重温的结果。文章目录1. 本质理解2. 基础概念2.1 位姿3. 特例分析4. 讨论总结5. 参考文献1. 本质理解2. 基础概念2.1 位姿涉及到机器人运动学,就绕不开刚体的位姿这一概念,即刚体的位置和姿态。教材中的说明示意图如下图所示:刚体可以由其在空间中相对于参考坐标.

2020-05-22 20:38:16 10947 4

原创 ROS Package构建过程中的CMakeLists文件分析

转眼间又是一个轮回,2018年6月之后因为一些事情就没有再更新博客,重新写的时候已是2019年的5月,然后2019年6月之后,因为精力投向了其它方面就又停了,现在重新提笔又是5月,只不过是2020年的5月。最近写代码,遇到了一些编译链接上的问题,想写下来。因为这些问题都跟ROS中的构建系统有关,所以首先就找到了官网的教程,以下内容,只是个人对其的翻译和理解。文章目录1. 概述2.文件结构和次序3.格式说明3.1 CMake版本3.2 软件包名称3.3 搜寻依赖的CMake软件包3.4 Python模块.

2020-05-20 22:52:42 709

原创 MATLAB画图时带循环变化上下标的变量的标注方法

文章目录1. 带上下标变量标注的画图问题描述2. 图中带下标的变量标注3. 带上标的变量标注4. 同时带上下标的变量标注5. 吐槽1. 带上下标变量标注的画图问题描述最近用Matlab画图的时候,想在图上每个关键点标注一下对应的变量,而这个变量是带上下标的,所以就在思考如何实现这个功能。刚遇到这个问题的时候,也在网上各种搜索找方法,看到了这个帖子 text函数字符串中的下标如何通过for循环...

2019-06-24 14:19:25 10511 1

原创 Ubuntu相关问题解决记录

文章目录1. 更新源的问题使用linux过程中肯定会遇到各种各样的问题,所以就想把自己遇到过的问题整理下来,之前遇到过的一些问题解决了就忘记了,从现在开始遇到的问题需要记录下来以防以后再遇到。1. 更新源的问题对于这种没有公钥的问题,需要下载并导入公钥,方法如下:sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F4...

2019-06-17 22:30:50 289

原创 Gazebo相关BUG解决记录

程序不止,BUG不断,从这里开始我要记录下在系统实现过程中所有遇到的与Gazebo仿真相关的错误。文章目录1. Gazebo黑窗口打不开世界模型1. Gazebo黑窗口打不开世界模型这里遇到的问题是在命令窗口中输出gazebo启动命令后,程序打开只能看到一个黑界面,并且启动动画不消失,只能鼠标点一下才让其消失,但是黑界面还是没变,出现的现象如下图所示:针对这个问题的解决,我参考了这篇博客...

2019-05-27 15:13:24 2333 2

原创 Ubuntu 16.04 中 Kinect 2.0 的 libfreenect2 驱动配置及其图像读取编程实现

在之前的几篇文章中,说明了如何在Ubuntu 16.04中配置OpenCV 3.4.1,并根据一些OpenCV的教程完成了其基本知识内容的学习,但在学习过程中用于实验的图像大部分是来自网络或是借助于笔记本电脑的摄像头,而为了完成一些更加复杂的任务,需要使用其它的视觉传感器,所以在这里记录一下Ubuntu 16.04使用Kinect 2.0 RGB-D传感器的内容。1. 驱动安装1.1 ...

2018-06-08 15:43:05 13601 18

原创 OpenCV程序中常用的几个小片段

刚开始学习使用OpenCV的程序代码,有几段的出现频率很高,但刚接触又不知道什么意思,所以每次都要去网上找解释,但好多次找到的解释真心让人无语,看了也没看懂,往往要综合不同人的解释才能弄明白,所以求人不如求己,自己记录一下。1. waitkey()问题作用条件函数说明代码说明2. CommandLineParser类问题1. waitkey()问题直接从代...

2018-06-01 14:49:46 584

原创 Ubuntu 16.04 下使用CMake编译的第一个OpenCV程序

在安装Ubuntu 16.04的时候,安装的编辑器是sublime text 3,所以一直想将对OpenCV程序的编译能力直接配置到sublime里,但是在网上找了好多教程,发现基本上是在sublime里面重新配置一下GCC编译器,但只给了一段代码,具体每部分什么意思也没讲,所以就没有用,还是老老实实的用了推荐的CMake方法。其实挺想将CMake直接配置成像GCC那样的,但是目前的水平还不会直接...

2018-05-31 14:52:08 8778 5

原创 Ubuntu 16.04.4 配置OpenCV 3.4.1

Ubuntu 16.04.4 配置OpenCV 3.4.1之前写博客感觉收获很大,但之前因为开题的原因停了好几个月,现在重新回来继续,不过写记录博客不是从之前的位置开始了,因为整个项目要做视觉环境感知,所以这里从Ubuntu的OpenCV配置开始。Ubuntu 16.04.4 配置OpenCV 3.4.1内容来源必要条件获得OpenCV的源代码用CMake编译OpenCV...

2018-05-31 09:45:01 1062

原创 ROS-Industrial 之 industrial_robot_client 分析理解(3)

经过前面(1)和(2)的理解与讨论,此篇文章对ROS向机器人控制器的数据下载相关文件进行说明。JOINT_TRAJECTORY_STREAMERJOINT_TRAJECTORY_DOWNLOADERJOINT_TRAJTORY_ACTIONJOINT_TRAJECTORY_STREAMER#ifndef JOINT_TRAJECTORY_STREAMER_H...

2018-02-28 16:40:10 974 7

原创 ROS-Industrial 之 industrial_robot_client 分析理解(2)

ROBOT_STATE_INTERFACEJOINT_TRAJECTORY_INTERFACE在之前的ROS-Industrial 之 industrial_robot_client 分析理解(1)中分析过client包提供的共用的函数,还有将机器人的状态信息与关节信息转换到ROS进行发布的两个类,这里着重理解读取机器人状态信息的接口。ROBOT_STATE_INTERF...

2018-02-28 16:37:25 821 2

原创 ROS-Industrial 之 industrial_robot_client 分析理解(1)

从之前industrial_robot_client的概述中,可以理解一些industrial_robot_client要实现的功能,从这里开始,就要正式开始分析并理解industrial_robot_client要实现的功能以及如何进行实现的,为之后的上层应用夯实基础。UTILSisWithinRange()mapInsert()toMap()isWithinRange()i...

2018-02-28 16:35:08 1417

原创 ROS-Industrial 之 industrial_robot_client Overview

按照在ROS-Industrial Overview路线部分所说的,在完成ROS-I框架最底的一层之后,还要分析理解simple_message和industrial_robot_client两大部分才算相对完整的理解ROS-I如何与已有的机器人控制器进行融合,此前的simple_message的概述中大体的说明了一些与simple_message相关的信息,而在此文章中继续从总体的角度先来了解一...

2018-02-28 16:29:54 1457

原创 ROS-Industrial Robot Driver Specification

为了更明确的了解ROS-I,特把Robot Driver Specification详细阅读了一下,在这里记录下一些要点。Robot Driver Specification为ROS节点功能提供指导以提高跨平台兼容性。所有为工业机器人控制器提供接口的ros节点都应该遵守此规范。初衷Motivation操作Operation初始化Initialization通信Communicati

2018-01-22 14:50:06 520 1

原创 ROS-Industrial 之 simple_message 实现分析八

目录目录simple_sockettcp_sockettcp_clienttcp_serverudp_socketudp_clientudp_serversimple_socket命名空间simple_socket中枚举了标准的通信端口信息,此类是对industrial::smpl_msg_connection::SmplMsgConnection类

2018-01-22 13:46:47 509

原创 ROS-Industrial 之 simple_message 实现分析七

在simple message协议的实现代码中,还有一组关节类是在TypedMessage类的基础上实现的,这篇文章就针对此组关节类整理一下其类内的 代码,内容不再赘述,可以参考ROS-Industrial 之 simple_message 实现分析三目录目录joint_messagejoint_traj_pt_messagejoint_traj_pt_full_message

2018-01-18 09:56:07 471

原创 ROS-Industrial 之 simple_message 实现分析六

本文主要对消息处理句柄与管理器的相关代码进行一下了解。目录目录message_handlerping_messageping_handlermessage_managermessage_handler这个类的功能是对传送到的消息进行处理,即先进行有效性检查,然后调用执行函数对消息的内容进行相应的处理,但在当前类中主要的执行函数为虚函数,如果要执行对应的操作

2018-01-17 21:38:44 456

原创 ROS-Industrial 之 simple_message 实现分析五

之前的文章对底层信息的封装进行了详细分析,这篇则针对通信连接的简化类进行说明,同时也涉及到了对连接状态的检查以及自动恢复连接的功能,即连接错误处理器的功能。目录目录smpl_msg_connectionsimple_comms_fault_handlersmpl_msg_connection这里要分析的类定义了一个对simple message进行发送与接收的

2018-01-17 15:08:26 469

原创 ROS-Industrial 之 simple_message 实现分析四

在之前的文章中已经看过simple_message协议的头部信息封装类与关节数据封装类,同时也涉及到了反馈的关节数据,但是对于机器人的状态信息还没有涉及,此篇中将着重分析机器人的状态类,同时将一些相对简单的类也放在这里。目录目录robot_statuscomms_fault_handlertyped_messagerobot_status先来看一下记录反映机

2018-01-17 10:40:13 670 1

原创 ROS-Industrial 之 simple_message 实现分析三

目录目录joint_datajoint_traj_ptjoint_traj_pt_fulljoint_trajjoint_feedbackjoint_data在ROS-Industrial 之 simple_message 实现分析二中,已经分析理解了对字节数据的操纵、对协议头部Header部分的相关消息定义以及如何对消息的头信息进行编码与解码,而在这篇

2018-01-15 17:18:24 745 1

原创 ROS-Industrial 之 simple_message 实现分析二

目录目录byte_arraysimple_serializesimple_messagebyte_arrayByteArray类封装了simple_message对字节数组进行处理的方法,这些方法可以从前端和后端向字节数组加载与卸载不同类型的数据,充当对原始数据的接口定义,ByteArray主要用于处理socket通信的交互信息。以下为类的声明:#i

2018-01-12 15:27:28 682

原创 ROS-Industrial 之 simple_message 实现分析一

在之前的文章ROS-Industrial 之 simple_message Overview中,大体了解了simple_message相关的内容,从这里开始就要对simple_message的实现进行分析与理解,从而完整的掌握ROS-Industrial架构的第二次架构,为之后的ROS-I Interface Layer奠定坚实的基础。在这篇文章中会按照文件间的包含次序对代码进行分析与理解。目

2018-01-12 11:06:06 952

原创 ROS-Industrial 之 simple_message Overview

目录目录概述协议Protocol消息结构Message Structure键入消息Typed Messages1 关节位置流接口Joint Position Streaming Interface11 Joint Commands Motion12 关节反馈Joint Feedback2 关节消息Joint Message3 关节轨迹点消息Joint Traje

2018-01-09 11:04:46 1139

原创 ROS-Industrial Overview

这里写这个ROS-Industrial Overview的目的是对前面文章中一直说的ROS-Industrial进行一下补充说明,同时明确之后的工作路线,在这里写下我做这些的目的:记录将ABB Yumi机器人和ROS联合在一起,然后进行与智能相关的物理实验。一是用来鞭策自己,二是明确之后的方向。目录目录ROS-Industrial高层架构架构理解路线RO

2018-01-08 10:14:53 1536

原创 ROS-Industrial 之 ABB_Driver ——ROS Server(总结)

目录目录逻辑联系文件内容1 ROS_common2 ROS_messages3 ROS_socket4 ROS_stateServer5 ROS_motionServer6 ROS_motion调用关系1 状态服务调用关系2 控制服务调用关系后续逻辑联系经过几天的时间,对不同的ROS Server的RAPID程序已经搞懂了每个文件的功

2017-12-28 09:12:56 1659 1

原创 ROS-Industrial 之 ABB_Driver ——ROS Server(3/3)

经过前面的两篇文章,已经对ABB_Driver中的ROS Server的数据类型与Socket的相关功能牢记于心,总的来说之前分析的四类功能程序文件的同一目的就是确保通信通道的畅通,并能及时的接收与传送消息,接下来这篇文章分析的程序文件则是对机器人的直接控制,所以会有许多与机器人示教编程中所接触的相同的数据类型与程序代码。

2017-12-25 19:06:31 1051

原创 ROS-Industrial 之 ABB_Driver ——ROS Server(2/3)

前面的ROS-Industrial 之 ABB_Driver——ROS Server (1/3)对ABB_Driver中的ROS Server部分中的ROS_common和ROS_messages两个功能文件进行了分析与学习,现在继续分析接下来的内容,最终的目的就是彻底搞清楚ROS Server里到底是如何实现ROS与机器人控制器的交互控制的,借鉴ABB的经验实现最终目的。

2017-12-23 15:34:18 1001

原创 ROS-Industrial 之 ABB_Driver ——ROS Server(1/3)

为了研究ABB机器人与ROS的交互控制,最近和ABB的机器人还有ROS-Industrial杠上了,之前把ROSLAUNCH的.launch/XML文件的语法格式弄清楚了,现在搞abb_driver的东西!ABB_Driver是ROS-Industrial的一部分,而其中的ABB ROS Server是其中最重要的组成部分之一,其是用ABB自己开发的机器人编程语言RAPID编写的.

2017-12-22 10:48:03 2531 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除