自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Robin's Home

将互联网,5G,人工智能技术应用于工业互联网,智能制造领域,助力中国制造2025

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

原创 Influxdb python API使用说明

InfluxDB官方支持的client库有Arduino, C#, Go, Java, JavaScript, PHP, Python, Ruby. 可以通过连接https://docs.influxdata.com/influxdb/v1.8/tools/api_client_libraries/ 获得说明。这里介绍Python版本的使用。1 下载安装通过github https://github.com/influxdata/influxdb-client-python下载代码包, In

2020-11-30 11:15:06 36

原创 InfluxDB配置总结-通过配置参数和Curl命令

InfluxDB的配置参数位于/etc/influxdb/influxdb.conf0 禁止向influxdb公司汇报信息Influxdb 安装之后,每24小时会自动搜集系统信息发往usage.influxdata.com。关闭此功能,使用参数reporting-disabled。默认值是false, 发送数据。可以改为true,则禁止发送数据。reporting-disabled = false1 开启logLog的开启分两部分,一个是在[logging]部分设置全局的log,另一个在

2020-11-30 10:07:48 9

原创 python的@classmethod和@staticmethod详解

Python面向对象编程中,类中定义的方法有的使用@classmethod 修饰,有的使用@staticmethod 修饰,还有的不带任何修饰方法。他们之间具体有哪些区别,具体的使用场景是怎么样的,这里使用例子解释一下。只是基于自己在使用过程中的理解,如果有误欢迎指正。

2020-11-05 10:17:38 28 1

原创 python获取CPU和操作系统类型

python作为跨平台的语言,大部分情况下不需要考虑不同平台的区别,但是,对于一些跨平台的应用,系统级或者CPU级的操作,还是需要明确知道系统类型,针对不同的CPU架构和操作系统采取不同的实现。那么,使用python编程,如何或许系统的CPU类型和操作系统类型?可以使用platform模块。platform模块的完整手册可以参见https://docs.python.org/3.6/library/platform.html这里只介绍三个与CPU和操作系统有关的方法。system():返

2020-11-04 16:34:59 48 1

原创 InfluxDB C++ client支持windows和c++11

influxdb c++ windows库influxdb支持c++11

2020-10-30 09:54:33 37 2

原创 工业数据存储数据库选型比较

我们将工业互联网、工业大数据首先需要把数据从工业现场采集上来,这是第一步也是基础。海量的数据从工业现场采集之后存在哪里呢?使用什么样的存储方式对后面的数据分析和计算有重要影响。这里对数据库方式的存储进行了一个选型比较。当前的数据库按类型分可以分为实时数据库,时序数据库,NoSQL数据库,关系型数据库。实时数据库是工业领域长时间以来的数据存储方式,很多传统的工业软件厂商都提供实时数据库。今年来,随着物联网的发展,时序数据库的应用也越来越广。1 实时数据库一般具备的特点高速写入的能.

2020-10-22 15:01:31 92

原创 Odoo14.0源码安装和系统搭建配置

Odoo 是基于Python写的一系列开源ERP应用程序套装,前身是OpenERP。此套装可满足中小型企业的一切应用需求,例如,企业基本的进销存、采购、销售、MRP生产制造、品保质量保障、企业招聘、员工合同、休假、午餐管理、内部论坛、车队管理、内部聊天IM沟通、客诉追溯管理、CRM客户关系管理、VOIP、E-Shop电子商务、网店、企业官方网站,财务会计、银行对账、资产管理、HR工资管理、预算管理、WMS仓库库存管理、POS街边小摊、社区商店、项目管理、条码、PLM等等这里介绍如何通过源码安装和搭建

2020-10-21 17:19:48 545 1

原创 InfluxDB C++库介绍和使用

InfluxDB C++库介绍和使用InfluxDB是现在使用排名最高的开源时序数据库,官方提供很多种语言的API进行库操作,包括Go、Java、JavaScript、JavaScript (Node.js)、PHP、Python等等,但是却不提供C++的支持。对于需要使用C++语言操作InfluxDB的场景,就有点麻烦。还好,gitbub上Influxdb-cxx项目提供了C++的方案。这里介绍一下Influxdb-cxx的编译、裁剪和使用。需要注意的是,Influxdb-cxx需要使用支持C++

2020-10-19 10:50:44 141

原创 深入理解右值引用(&&)、std::move()、移动构造函数,移动复制运算符

C++11引入了右值引用(&&),移动构造函数,移动复制运算符以及std::move, 对于它们之间的关系和具体应用场景很多人还是云里雾里,这里结合具体的例子谈一下自己的看法。1 拷贝构造函数、赋值构造函数和深浅拷贝要理解右值引用(&&),移动构造函数,移动复制运算符以及std::move, 首先需要理解拷贝构造、赋值构造和深浅拷贝。1.1 例子看下面的例子:#include <iostream>#include <u..

2020-10-15 13:18:29 46 2

原创 snap7与西门子PLC连接配置

S7协议是西门子PLC使用的通信协议,可以使用开源的Snap7库实现上位机与西门子PLC之间的通信。并不是所有的西门子PLC都可以用Snap7通信,比如S7 300/400/WinAC CPU可以完全支持S7, S7 1200/1500 CPU支持扩展的S7而且需要在TIA博图中做一些额为配置才能使用。本文就是介绍如何通过TIA博图配置PLC,以能够通过snap7读写PLC

2020-09-08 14:29:15 227

原创 pytorch 入门(1): pytorch是什么?

这一系列文章是对pytorch 入门教程的翻译和学习总结。英文原版可以从以下网址获得:https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html目标:理解Pytorch Tensor 库和神经网络 训练一个小的神经网络来分类图片。本手册假定你对numpy库有一个基本的了解。注意:确保你的测试环境已经安装了torch 和 torchvision 包Pytorch是什么?Pytoch...

2020-09-02 22:57:30 111

原创 python虚拟环境virtualenvwrapper&virtualenv & venv & pipenv 之间的联系与区别

Python应用程序有时会需要包或者模块的特定版本,如应用程序A需要特定模块的1.0版本但应用程序B需要2.0版本。这意味着只安装其中一个版本可能无法满足每个应用程序的要求,当我们同时开发多个python工程时,不同的工程会将第三方的包存放在相同的路径下。这就意味着,如果有两个工程依赖同一个包,但是所需要的版本却不一样。由于Python无法根据版本来区分包的安装路径,所以就会发生版本冲突。Python虚拟环境就是为了给不同的工程创建互相独立的运行环境。在虚拟环境下,每一个工程都有自己的依赖包,而与其它的

2020-08-27 11:48:26 87

原创 Jetson Nano上pytorch 1.6.0 wheel安装包下载

Jetson Nano上pytorch 1.6.0安装包下载

2020-08-26 14:51:38 744 2

原创 Nvidia Nano上从头构建Jetbot镜像安装指南

JetBot 项目是NVIDIA(英伟达)基于Jetson Nano开发套件而设计的一款开源智能车项目。 它提供了基于视觉的自主避障,物体跟随,路径跟踪以及人脸识别等功能。对于AI初学者来说,Jetbot是一个很好的入门途径。Nvidia官方提供了完整的硬件和软件列表,参考https://github.com/NVIDIA-AI-IOT/jetbot/wiki, 可以自行组装jetbot小车。但是,自己采购零件还是很麻烦,国内的微雪公司提供了完整的小车方案,可以直接从https://www.wavesh

2020-08-26 14:22:30 458

原创 Glog在linux和windows下的编译安装和使用

Glog是google推出的一个log库,可以运行在linux和windows下。对于需要跨平台运行的C++程序使用glog作为log库是一个不错的选择。这里简单介绍下glog在linux和windows下编译和使用1 linux编译Download https://github.com/google/glogUnzip glog-master.zipThen cd glog-master directory./autogen.sh && ./configure &amp

2020-08-24 17:10:42 82 3

原创 Protobuf linux和windows下编译与使用

Google的probobuf是一个非常好用的序列化和反序列化库,而且它是跨平台的。如果应用需要在linux和windows下跨平台运行, protobuf是一个不错的选择。这里介绍一下Protobuf linux和windows下编译与使用。

2020-08-24 17:06:36 105

原创 对强化学习理解及其与有监督学习和无监督学习的比较

机器学习可以分为有监督学习,无监督学习和强化学习.强化学习是机器学习的一个重要分支,本文重点谈一下对于强化学习的理解.

2020-08-05 22:29:44 186

原创 机器学习-深度学习的关系思维导图

人工智能中关于机器学习,深度学习,强化学习,深度强化学习等各种算法的关系一直是新手入门迷惑的地方。这里做了一个思维导图,试图解释清楚彼此之间的关系。

2020-07-27 16:12:58 162

原创 ROS中多个工作空间同时工作

ROS开发中,有时需要建多个工作空间, 将不同的功能包区别开来. 但是,多个工作空间会存在相互影响的情况,如何让它们能同时工作且相互不影响,需要技巧. 这里需要清楚ROS工作空间的工作原理. 本文做个详细介绍.

2020-07-19 22:30:22 312 6

原创 Cartographer ROS上的编译安装和配置

Cartographer是google推出的基于激光雷达的SLAM算法。Cartographer官方的编译安装步骤可以在https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html#上查看。但是在国内由于网络的原因,这个步骤并不适用。这里介绍它在国内网络环境下的安装和配置。首先需要安装ROS,这里就不涉及,可以参考ROS的文档进行。ROS具体的版本没有影响,可以是Kinetic或者Melodic。

2020-07-10 17:16:10 224

原创 LPMS-CU2 IMU在 Nvidia Xavier安装配置

LPMS-CU2 是一种小型惯性测量单元(IMU)/姿态航向参考系统(AHRS)。在ROS中使用此款IMU时,需要进行相关的安装和配置, 具体可以参考https://bitbucket.org/lpresearch/openzenros/src/master/。1 依赖编译此ROS包需要G++ version>= 7.0, cmake version >= 3.10. 如果编译器低于此版本,则需要升级到最新版本,并运行如下命令:catkin_make -DCMAKE_C_COMP.

2020-07-10 17:11:05 104

原创 Nvidia Xavier(ARM64)上安装openresty

OpenResty官方提供了大多数Linux发行版的预编译的包,所以安装非常简单,可以直接参考http://openresty.org/cn/installation.html 进行安装。但是官方的二进制包只支持X86_64 和AMD64 的CPU,如果需要在ARM CPU上安装openresty就需要从源码开始安装了。这里介绍在Nvidia的Jetson Xavier 套件上安装openrety的方法, 使用的操作系统为ubuntu18.04。

2020-07-10 17:07:38 158

原创 python文件编译与pyc反编译

pyc是编译py之后生成的二进制文件。当我们发布系统的时候不想让别人看到源代码,就需要将py文件编译生成pyc文件,对外只提供pyc文件。同样,如果拿到一个python程序,只有pyc文件,我们就无法看到源码,希望有办法反编译pyc文件以获得源码。既然有反编译的需求,为了保护pyc文件不被反编译,我们又希望找到一个方法来防止pyc文件被反编译。本文介绍了如何将py文件编译成pyc和pyo文件,也介绍了如何反编译pyc文件, 又给出了一种字节码混淆方法来防止pyc文件被反编译。

2020-07-10 17:02:41 1253

原创 ROS Navigation源代码剖析(6)-move_base 代价地图costmap_2d工作流程

4.2.4 costmap_2d工作过程http://wiki.ros.org/costmap_2d/4.2.0节描述了MoveBase启动过程中创建和初始化global planner的costmap的过程。planner_costmap_ros_ = new costmap_2d::Costmap2DROS("global_costmap", tf_);planner_costmap_ros_->pause(); //先暂定运行costmap的动态库位于 /opt/ros/k.

2020-06-16 22:32:40 171

原创 ROS Navigation源代码剖析(5)-move_base 全局规划器GlobalPlanner流程

4.2.3 GlobalPlanner工作过程MoveBase的全局规划线程通过调用配置的实际全局规划器的makePlan方法来计算全局路径规划。基类是class BaseGlobalPlanner(navigation-kinetic\nav_core\include\nav_core\ base_global_planner.h), 具体的全局规划器需要继承此基类。 例如,GlobalPlanner就继承此基类,并实现相应的方法。class GlobalPlanner : public nav_

2020-06-16 22:03:38 383

原创 ROS Navigation源代码剖析(4)-move_base global planner 线程工作流程

4.2.2 global planner Thread工作过程 Global planner的处理过程定义在函数 void MoveBase::planThread()中。 工作流程如下: 1 此线程启动之后,会处理等待状态,直到action server接收到goal请求或者自己等待时间到期后把它唤醒。 两个线程之间通过runPlanner 变量进行同步,action server会把它置为true。 2 获取...

2020-06-13 13:41:31 120

原创 ROS Navigation源代码剖析(3)-move_base ActionServer工作流程

4.2.1 MoveBaseActionServer 工作过程MoveBaseActionServer 的执行函数为:void MoveBase::executeCb(const move_base_msgs::MoveBaseGoalConstPtr& move_base_goal);输入参数为/move_base/goal [move_base_msgs/MoveBaseActionGoal], 消息中包含了goalid一个字符串类型的变量, 和targetgoal,targe.

2020-06-13 13:32:19 359 4

原创 再谈ROS TF中的欧拉角和四元数变换及代码验证

本文介绍了ROS中TF坐标的基本规则,欧拉角和四元数变换,并以一个实际的旋转的例子介绍ROS代码的实现。1 先复习一下几个结论:1.1 ROS的坐标系统使用右手定义对于 ROS 机器人,如果以它为坐标系的原心,那么: x轴正向:前方 y轴正向:左方 z轴正向:上方1.2 在一个绕轴线上的旋转,也使用右手定义即绕轴旋转的正方向为逆时针旋转,当我们将绕z轴旋转90度时,是绕z轴逆时针旋转90度。1...

2020-06-12 13:35:40 574 1

原创 ROS Navigation源代码剖析(2)-move_base启动过程

4 Source code4.1 Main() functionnavigation-kinetic\move_base\src\move_base_node.cpp启动命令为: /opt/ros/kinetic/lib/move_base/move_base __name:=move_base __log=/tmp/ddd/move_bae-19.logint main(int argc, char** argv){ ros::init(argc, argv, "move...

2020-06-11 17:13:12 173

原创 ROS Navigation源代码剖析(1)-move_base 线程框架

Navigation是机器人最基本的功能之一,ROS为我们提供了一整套Navigation的解决方案,包括全局与局部的路径规划、代价地图、异常行为恢复、地图服务器等等,这些开源工具包极大地方便了移动机器人导航功能的开发和部署。 ROS的导航功能是如何实现的?如果想基于ROS开发自己的导航功能包应该如何做呢?本系列文章会从源代码分析的角度深入剖析ROS Navigation功能包,来加深对ROS 导航的理解和认识。基于的ROS版本是 ROS kinetic,Globa...

2020-06-11 17:01:02 188

原创 glibc ptmalloc 内存管理详解

C语言程序中,我们一般是使用glibc库中的malloc()/free()库函数从heap或者mmap中分配和释放内存。C++编程中的new和delete运算符最终也是使用malloc()/free()来分配和释放内存。本文主要讲它们是如何工作的

2020-06-05 22:27:57 126

原创 sudo rosdep init ERROR错误处理

ROS安装过程中很重要的一步是执行sudo rosdep init && rosdep update。在国内网络环境下,执行时经常会出错,如下:$ sudo rosdep initERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be dow

2020-05-30 14:06:04 484

原创 移动机器人运动规划算法概览

本文主要列出了用于移动机器人的常见的运动规划算法. 只是列出了简单的名称, 详细细节需要后面仔细学习.按类别可以分为基于搜索的路径规划,基于采样的路径规划,动力学约束下的路径规划,基于马尔可夫决策过程的运动规划。1基于搜索的路径规划SEARCH-BASED PATH FINDING基于图搜索的路径规划方法主要有Dijkstra , A*算法 和, JPS算法 (Jump Point Search)2基于采样的路径规划SAMPLING-BASED PATH FINDING常用的基于..

2020-05-27 23:31:28 446

转载 MQTT协议三种QOS学习

MQTT协议中有三种消息发布服务质量:QOS0: “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。QOS1: “至少一次”,确保消息到达,但消息重复可能会发生。QOS2: “只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。1 MQTT协议流程图2 QOS0 流程图3 QOS1流程图4 QOS2..

2020-05-27 23:08:54 447

原创 基于python的Modbus/MQTT/S7/OPCUA库总结

本文列出了基于python开发的S7/Modbus/OPCUA/MQTT库:Modbus: Modbus_tk, Pymodbus, Minimalmodbus, UmodbusMQTT: pahoS7: python-snap7OpcUa: python-opcua介绍了安装,使用手册和例子。具体的用法需要结合使用手册深入学习。1 modbus1.1主流modbus python库Modbus_tkPymodbusMinimalmodbusUmo...

2020-05-27 22:54:27 351

原创 基于Nginx+nginx-rtmp-module实现 RTMP web流媒体方案

Nginx配合插件nginx-rtmp-module可以做RTMP流媒体服务器,实现RTMP的拉流和推流。本方案可以用于摄像头通过4G/5G DTU模块推流RTMP到云服务器上的nginx服务器,然后通过web查看摄像头实时数据;配合DTU推流模块可以用于RMTP直播服务器; 配合ffmpeg也可以用于视频文件转RTMP流媒体服务器.本方案使用Ubuntu18.04操作系统,其他的linux发行版替换使用相应的安装命令即可。

2020-04-24 22:25:28 404 1

原创 mosquitto通配符订阅topic和桥接模式详解

本文介绍了mosquitto如何使用通配符订阅话题和两个通配符的详细用法; 同时,介绍了如何使用桥接模式及桥接模式的意义

2020-04-24 22:04:08 488

原创 mosquitto查看系统状态信息

客户端可以通过订阅$SYS树来查询broker的信息。标记为static的topic只在客户端订阅时发送一次,其他的topic会每隔sys_interval 秒更新一次, 如果sys_interval 为0,则不会发送更新。注意,如果使用命令行与$SYS topic交互,shell会把$解析为环境变量,所以需要将topic用单引号括起来例如’ $SYS/...’或者使用转义字符,例如 \$SY...

2020-04-24 21:53:54 1124

原创 mosquitto启动参数详解

本文介绍mosquitto启动时的命令行参数。命令格式mosquitto[-cconfig file] [ -d | --daemon ] [-pport number] [-v]参数说明-c,--config-file指定配置文件,如果不指定,则使用mosquitto.conf 文件中配置的参数。-d,--daemon运行为后台守护进程.-p,--port...

2020-04-24 21:47:57 177

原创 Mosquitto安装配置和使用指南

Mosquitto是一个开源的C实现的MQTT服务器和客户端。本文介绍Mosquitto的编译,安装,配置和使用。0 MQTT协议MQTT协议已经到了5.0版本,每个版本的协议内容可以如下获取:MQTT 3.1.1 中文版 http://mqtt.p2hp.com/mqtt311英文版 http://docs.oasis-open.org/mqtt/mqtt/v3.1.1...

2020-04-22 22:30:59 801

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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