- 博客(66)
- 资源 (4)
- 收藏
- 关注
原创 Thingsboard二次开发---5.在Thingsboard中增加解决方案管理功能
在使用Thingsboard的过程中发现TB虽然非常灵活,但实际的最终用户更希望是针对特定场景的成熟解决方案,页面都做好,不需要再进行配置,所以在原来的基础上增加了解决方案的功能,此方案比较适合给用户提供SaaS化的解决方案,给大家提供一个用TB做项目的思路,供参考。
2023-10-08 10:15:34 805
原创 Thingsboard二次开发---4.基于Thingsboard的在线组态软件
Thingsboard提供了非常强大的物联网功能,其中仪表板功能可以快速的搭建数据大屏,但美中不足的是对于工业组态没有提供很好的工具,本文介绍在thingsboard基础上利用svg技术开发通用组态软件,后续文章会逐步介绍开发的过程。
2022-08-19 13:09:43 4350 6
原创 Thingsboard二次开发---3.自动生成实体前后端代码Python脚本
前言对于简单的实体操作,基本代码都是一样的,作者根据前两篇文章介绍的方式,自己编写了一个度量单位实体的代码,并以这个代码为模板编写python脚本自动生成前后端代码脚本,大大提高了Thingsboard实体开发的效率python脚本# base on unit entityimport osentity_type = 'LOT_ITEM'# home_path = 'D:\\code\\thingsboard\\'home_path = 'D:\\projects\\thingsboar
2022-01-25 11:22:51 2145 2
原创 Thingsboard二次开发---2. 增加新实体前端开发步骤
前言Thingsboard的前端是使用angular11开发的,官方代码里面已经抽象了很多通用的功能,只需参照其他实体的前端代码,即可完成相应实体前端的功能。前端实体操作功能开发步骤序号步骤文件/说明1增加routing moduleui-ngx/...
2022-01-13 17:03:08 2537
原创 Thingsboard二次开发---1. 增加新实体后端开发步骤
前言Thingsboard是一款基于springcloud,非常优秀的物联网平台,其开源版本CE版已经提供了丰富的物联网功能,我们可以基于Thingsboard快速构建自己的物联网平台,但实际项目中一般都需要基于Thingsbaord扩展特定的业务功能。Thingsboard架构相对来说比较复杂,代码的抽象级别比较高,对于初学者是比较难的,本文总结了后端代码增加一个完整实体的过程。实体在Thingsboard中就对应一个数据库的表,实体代表则可进行数据的存储,读写等操作。后端增加实体的步骤本文以增
2021-12-22 14:23:54 5744 2
原创 diego1# 突破局域网限制,实现互联网范围内控制你的ROS机器人
更多创客作品,请关注笔者网站园丁鸟,搜集全球极具创意,且有价值的创客作品ROS机器人知识请关注,diegorobot业余时间完成的一款在线统计过程分析工具SPC,及SPC知识分享网站qdo1.概述ROS机器人系统有一个局限就是,所有Robot都必须在一个局域网内,虽然有robot web tools工具集可以实现通过web浏览器控制ROS机器人,但仍然是要求Robot和浏览器必须在同一个局域网内。有许多的应用是需要跨地域,跨网络进行监控机器人的,本文介绍一种突破局域网限制,可以实现互联网范围内通过
2020-06-19 10:03:21 1740 2
原创 Flask Web开发--3.实时SPC控制图的开发设计
#前言实时SPC也就是SPC的运行控制图,是实时收集生产过程中的生产数据,如来料检验的数据,生产过程中的数据,成品检验数据,然后对数据进行SPC的分析形成实时是控制图,并通过判异规则对判断存在品质失控的数据点,先上效果图:感兴趣的同学可以到Qdo.plus体验#功能设计实时图表采用了Bokeh开源图表开发包,Bokeh可以说是数据分析图表的生气,而且本身是python开发的,可以...
2020-03-19 16:00:18 1968 3
原创 Flask Web开发--2.多租户saas用户权限管理
前言对于多租户的SAAS系统,所有的操作都是以组织为单位的,所以相对于传统的单用户系统的用户权限管理,增加了一层组织的维度,一个注册企业下,又可以有完整的用户权限管理系统。数据模型设计如下是用权限系统的关系图:组织在SAAS系统中的一切资源的最高阶组织形式,所以其他的对象都应该有一个组织的属性,对于用户也是如从,应该属于某个组织,组织与用户的关系应该是一对多的关系,如下是组织的Model...
2020-02-13 12:02:46 2061 1
原创 机械臂上位机监控软件---2.软件架构
软件本身是采用微软的MFC技术,所以软件本身的架构是视图-文档架构,同时引用了一些开源的软件进行机械臂动态视图的渲染。如下是项目的类图,可以清楚的反应产品的架构。MFC有标准的类架构,这些标准的类如,视图类,文档类,框架类,这里就不多做介绍,网上有大量的介绍文章,本文重点说明机械臂是如何在视图中渲染,显示出来,这里重点用到了两个类STLObject:此类主要的功能是通过读取3D模型文件*....
2020-02-11 15:32:51 2621 2
原创 Flask Web开发--1.多租户SPC质量分析系统设计
Flask Web开发--Qualitydo质量分析工具开发 1前言新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出...
2020-02-11 12:18:38 1057
原创 机械臂上位机监控软件---1.功能介绍
对于机械臂,我们往往需要开发上位机软件,对机械臂的运行状态进行监控,并模拟机械臂的运行,虽然成熟的机械臂都有配套软件,但实际工作中我们可能还需要相对简单的监控软件,本文既笔者借助一些开源软件进行修改,采用微软MFC架构,在Visual Studio开发的一款简单的机械臂运行监控软件,可以通过Socket读取机械臂状态数据,并通过图形的方式模拟机械臂的运行,当然也可以根据需求扩展不同的通信方式,先上...
2019-09-04 11:38:07 4987 2
原创 DiegoAPP–增加高德地图,并在地图上显示机器人轨迹
RobotCA原版的APP是使用国外的地图,在国内访问不了,本文将介绍如何使用高德地图来替代原有的地图,并订阅GPS消息,在地图上显示机器人轨迹在APP中增加高德地图,我们首先要申请高德的Key,具体的申请方法可以参考高德官方文档https://lbs.amap.com/api/android-sdk/guide/create-project/get-key/1.在AndroidManifes...
2019-08-06 16:55:07 1176 3
原创 DiegoAPP–机器人控制
机器人的控制主要涉及到如下几个文件ControlApp,在连接到Robot后的主界面,执行控制任务,及执行各种功能的FragmentRobotController,主要的机器人控制代码,在此文件中定义了要接收发送的ROS Topic,以及接收后的处理方式Fragement,执行各主要功能的的Fragment,通过ControlApp进行切换RobotController主要功能说明...
2019-08-06 16:50:01 1018
原创 DiegoAPP–机器人设置,及选择
1.App有两个ActivityRobotChooser, 作为APP运行起来的Activity,配置为Main Action, 为用户呈现一个新增机器人,配置配置机器人的界面ControlApp,在连接到Robot后的主界面,执行控制任务,及Ros Topic数据的接收,并显示在界面上我们需要在项目的 文件中配置两个Activity,并吧RobotChooser配置为Main,如下图所示:...
2019-08-06 16:43:52 779 2
原创 DiegoAPP–整体架构介绍
1.开发环境RobotCA是采用Eclipse进行开发,在DiegoAPP中将整个项目迁移到了Android Studio 3.4开发Android Studio中Gradle 和Gradle Plugin的版本入下图,Gradle和Gradle Plugin的版本非常重要,其他的版本会出现一些编译错误。Diego APP支持了Android8.0,Android8.1,Android9...
2019-08-06 16:38:14 701 2
原创 Diego1# 机器视觉 -物体识别和定位
google最近公布了基于tensorflow物体识别的Api,本文将利用Diego1#的深度摄像头调用物体识别API,在识别物体的同时计算物体与出机器人摄像头的距离。原理如下:Object Detection 订阅Openni发布的Image消息,识别视频帧中的物体Object Depth 订阅Openni发布的Depth Image消息,根据Object Detection识别出的物体列...
2019-08-06 16:27:13 1962 3
原创 Diego1# 机器视觉 -AR标签跟随
ROS里面有一个非常好用的AR标签包,可以产生AR标签,识别AR标签。我们可以基于此功能实现很多好玩的AR应用,这篇文章中我们将介绍如何使用这个包,及基于此包我们实现AR标签的跟随。1.安装ar_track_alvarar_track_alvar可以通过apt_get来安装,非常方便:sudo apt-get install ros-kinetic-ar-track-alvar安装完成后...
2019-08-06 16:08:21 2831 1
原创 Deigo1# 机器视觉-人脸跟踪
基于前面两节人脸检测,特征值获取及跟踪,我们进一步实现人脸的跟踪,我们可以让机器人跟踪人脸,暨当人脸移动时控制机器人转动,使得人脸始终在图像窗体的中间位置,基本流程如下人脸检测,lesson 16中已经介绍过了,这里直接引用就可以。特征获取,lesson 17中也已经实现,但要达到比较好的效果,需要对特征点做一些补偿及噪声点的剔除人脸跟踪,需要根据ROI的位置,来判断机器人需要怎样移动才能...
2019-08-06 15:56:44 474
原创 Diego 1# 机器视觉-特征点检测及跟踪
上一节中我们实现了人脸的检测,当有人脸出现摄像头前面时,图像窗体中会用矩形显示人脸的位置,接下来我们需要实现特征值获取,及特征值跟随。本文针对Opencv3移植了ROS By Example Volume 1中的示例代码,所有代码均在opencv3环境完成测试,可以正常运行。1.特征值获取1.1 源代码源文件good_features.py请见github在Opencv中已经提供了特征值获...
2019-08-06 15:51:38 794 1
原创 Diego 1# 机器视觉-人脸检测
机器视觉是一个非常复杂的主题,需要比较专业的计算机图形学相关知识,在ROS By Example Volume 1这本书中提供了比较好的入门范例,所以我们将按照此书中所介绍的例子开启我们Diego的机器视觉之旅,后面逐步增加比较复杂的内容。我们首先来实现实现书中所讲到的人脸检测、特征值获取、人脸跟踪,机器人跟随等功能,由于此书中所使用的代码依赖于opencv2.4,但在Diego我们安装的是RO...
2019-08-06 15:47:24 569
原创 Diego 1# 4WD —3:上位机通讯
ROS Arduino Bridge本质上是上位机通过串口发送控制命令来实现对Arduino的控制,所以我们要实现4驱的控制,我们也必须的修改通讯部分1.Arduino firmware修改1.1 command.h在此文件中增加4驱所需的命令及宏定义#ifndef COMMANDS_H#define COMMANDS_H#define ANALOG_READ 'a'#def...
2019-08-06 15:26:20 1027
原创 Diego 1# 4WD —2:马达控制
针对马达控制我们主要需要修改两部分:驱动部分,使其可以支持同时控制4个马达PID调速部分,试验表明,虽然是一样的型号的马达,但是给相同的PWM值,马达的转速也不一样,所以我们需要分别对4个马达进行PID调速1.马达驱动1.1. DualL298PMotorShield4WD.h文件的修改增加了4个马达对应的PWM和方向控制的Pin引脚定义,和4个马达速度的设置函数#ifndef Dua...
2019-08-06 15:20:03 999 1
原创 Diego 1# 4WD —1:ENCODER
4驱底盘由于四个轮子可以独立控制,所以具有优秀的通过性,这篇文章介绍Diego 1#的四驱底盘,所有源代码都已经上传到github。这里会分几篇文章来介绍4驱动版diego 1#的开发,这篇我们主要说明4驱动底盘4个马达编码器数据的读取。1.1硬件说明底盘材质:铝合金材质轮胎:12cm 橡胶轮胎电机:370直流电机,带霍尔码盘测速,输出AB项编码信号1.2 控制器主控制器 ardui...
2019-08-06 15:11:41 632
原创 3轴码垛机械臂运动学逆解
对于3轴码垛机械臂控制最基本的是对其建立运动学模型,而对于3轴码垛类型机械臂来说运动学模型,其本质就是给定空间3D坐标,求解3个轴的旋转角度。 如上图所示,左侧为实物坐标,右侧图为抽象到坐标系的几何表示,逆解过程就是知道末端坐标,而求解各个轴的旋转角度,进而转换为步进电机的步进数,下面我们利用立体几何,和解析几何知识来进行你运算分析。一,假设条件坐标系采用右手坐标系,如上图所示 机械臂的底座位于
2017-10-03 10:37:37 13918 6
原创 物联网平台架构设计
现在网上讨论的有关物联网的帖子非常之多,但大部分都是介绍理论或者有关硬件,通讯相关的问题,比如物联网模块,物联网通讯协议MQTT、XMPP、NB_IOT等,个人认为这些只是物联网中一部分,而涉及到物联网的设备如何管理,用户如何管理,数据包如何解析,大数据如何展示等也是物联网模块中非常重要的部分,所以作者就根据自身工作中总结出来的建构在云端的物联网平台基本架构分享给大家,并基于此架构如何一步一步来开发
2017-09-11 14:13:28 73246 8
原创 ROS机器人Diego 1# 利用人工智能 风格迁移技术拍摄不同画风的视频
风格迁移,就是将一种图片的风格迁移到其他图片上,改变其他图片的风格,很好玩的一个人工自能模型,github上已经有很多实现的方法,本文参考https://github.com/hzy46/fast-neural-style-tensorflow 的算法,利用Diego1#的平台实现实时视频的风格转换,先上两张图看效果: 是不是很酷呢,其实实现方法和上篇博文中的原理是一样的,只是把人工智能的
2017-07-28 20:29:34 1348 1
原创 ROS机器人Diego 1#整合Tensorflow object_detection,图像识别
google最近又公布了物体识别的Api,使得图像识别变得更加方便,并提供了一个预训练模型,及示例代码,官方文档请见https://github.com/tensorflow/models/blob/master/object_detection/g3doc/installation.md 从官方提供的效果图来看效果还是很不错的,这篇文章就基于官方提供的示例代码,制作一个ROS节点,订阅Image
2017-07-14 17:40:12 7638 6
原创 ROS机器人Diego 1#整合Tensorflow MNIST,玩数字识别
机器学习中最经典的例子就是NNIST通过图片来识别0~9的数字,这篇文章将介绍如何将基于Tensorflow NNIST整合到Diego1#机器人中作为一个节点,此节点将订阅Image消息,通过NNIST识别后将结果发布消息给讯飞语音节点,讯飞语音节点会告诉我们识别的数字是几。相关源代码已经上传到本人的github。1. 安装Tensorflow只需一句命令即可安装pip install tenso
2017-07-14 16:58:53 2464 3
原创 ROS 机器人双路视频手机监控
这几天心血来潮,把家里的旧摄像头装在Diego1#上,再加上原来的Letv Xtion就形成了双路视频摄像头,再通过手机APP实现了双路视频远程监控,先上个图: 手机监控的画面,上面的画面是Letv_Xtion传输的数据,下面的是罗技的usb摄像头画面 下面这张图是安装了摄像头的Diego1#。 测试下来在同一个局域网内,视频传输非常流畅,只是手机会发热,安装在Diego1#上的mini pc
2017-06-30 23:24:29 2498 4
原创 ROS 机器人控制APP
最近利用网上各种开源的资源整合出了一个ROS机器人控制APP,如大家有兴趣可以到我的个人网站去下载http://www.diegorobot.com/wp/?page_id=1237&lang=zh,后续还会增加其他的功能,目前APP实现了如下功能:多机器人管理,可以同时增加多个机器人,每个机器人有不同的配置 多种控制方式,控制ROS机器人 订阅ROS机器人发布的视频topic,并在手机上显示
2017-06-28 16:45:22 9822 27
原创 Tensorflow lesson 6---层 layer
设计一个深度学习的模型,其实就设计一个多层的学习模型,而每个层上又有不同的神经元,所有的运算逻辑都是在这些神经元上完成的,每一层的输出作为下一层的输入。 下图是一个典型的,一共有5层的学习模型,包含1个输入层,3个隐藏层,1个输出层,而在每个隐藏层中有包括2个神经元。 输入层:输入一定是所谓的图Tensor结构,可以是输入tensor的各种可能feature运算,比如说是平方,相乘,sin,co
2017-05-16 11:28:52 544
原创 Tensorflow lesson 5---唯一的运算执行方法Session
在Tensorflow中所有的运算都需要通过Session来完成,即使是简单的赋值、加减乘除等都是需要Session来完成示例1:import tensorflow as tfimport numpy as npnode1 = tf.constant(3.0, tf.float32) # 创建常量node2 = tf.constant(4.0)print(node1, node2) #如果直
2017-05-15 15:57:50 489
原创 Tensorflow lesson 4---输入参数placeholder
在Tensorflow中如果我们要从外部输入数据,就要用到placeholder,当然placeholder也是一个tensor,可以接受任何维度的tensor数据,比如向量,矩阵,图像等import tensorflow as tfimport numpy as npa=tf.placeholder(tf.float32)#声明a作为placeholder接收float32的数据b=tf.pl
2017-05-10 15:58:11 3140
原创 Tensorflow lesson 3---变量Variable
Tensorflow中的变量就是一个放在内存中的tensor结构,用于在计算过程中保存数据,变量的数值可以保存到文件中,也可以从文件中读取1.变量的初始化import tensorflow as tfWeights=tf.Variable(tf.random_normal([3,2],stddev=0.35),name="weights")#声明一个Weights的变量print(Weights)#
2017-05-10 14:33:24 2405
原创 Tensorflow lesson 2---唯一的结构tensor
在Tensorflow中所有的数据都是使用tensor来描述的,不管是变量,常量,placeholder等都是一个tensor,tensor的中文翻译是张量,也就是我们在进行tensorflow编程的时候所有的输入输出都是一个tensor,这一点非常重要的。下图是Tensorflow官方文档中的说明 从中可以看出我们使用python编程中s=483. 这样的简单变量,在Tensor中被描述为一个
2017-05-10 09:38:56 832
原创 Tensorflow lesson 1---第一个机器学习的代码
神经网络,机器学习,可以说是现在最流行的计算机技术,TensorFlow是谷歌开源的机器学习框架,听起来就很高大上,很难学习,不幸的是国内的一些教程都是原文翻译谷歌官方教程,非常难以学习,所以本系列教程就是用比较容易懂的语言来教大家什么tensorflow。首先tensorflow是一个深度学习的框架,其定义了一套神经网络机制,是用户可以在这套神经网络上开发自己的深度学习模型,进行机器学习。说的通俗
2017-05-09 12:20:51 1329
原创 ROS机器人Diego 1#制作总结
由于树莓派本身的运算能力限制,Diego 1#的制作到上一篇博文应该算是一个里程碑了,后续将基于新的硬件进行开发制作Diego 1# plus,重点会在图像处理上,笔者曾经尝试使用树莓派来做,但经过多次反复试验,即使跑一个人脸识别的代码,树莓派的CPU使用率都在80%上以上,无奈想玩更高级的东西,就的升级硬件了。本文做为一个阶段性的总结,就把Diego 1#制作过程中走过的坑说明下:1.底盘Dieg
2017-03-17 11:52:12 2673 2
原创 ROS机器人Diego 1#制作(二十三)搭载EAI F4激光雷达move_base路径规划
基于前几篇博文,机器人已经可以创建地图,并可以实现定位,对于SLAM最后一部分就是针对进行导航路径规划,这里我们要用到move_base包,导航其实就是机器人,在已有的地图上,借助amcl定位自己的位置,并根据激光雷达数据避开地图上的障碍物,具体详细的理论可以查看官方的数据,或者baidu之前大神们的作品。这里只介绍如何实现:1.launch文件 我们首先来看下配置好的launch文件。<laun
2017-03-07 11:46:57 1881
原创 ROS机器人Diego 1#制作(二十二)基于EAI F4激光雷达数据进行定位amcl
在上两篇博文中我们讲到了利用gmapping和hector生成室内地图,本文将阐述如何利用激光雷达数据,在已产生的地图上进行定位。 1.生成地图 创建maps文件夹,并赋予其777的权限,既可以让map_server在此文件夹中生成地图文件 打开终端cd进入maps目录,并执行地图生成命令cd ~/catkin_ws/src/diego_nav/maps/rosrun map_server
2017-02-23 13:40:34 2718
原创 ROS机器人Diego 1#制作(二十一)搭载EAI F4激光雷达gmapping创建室内地图
上篇文章中我们用hector创建了室内地图,本文中我们采用gmapping来创建室内地图,hector和gmapping主要区别gmapping创建地图需要odom数据,而hector不需要,所以在gmapping创建地图首先要确保odom数据的准确性,否则会影像到创建地图的效果。有关激光雷达,arduino的配置请参见上篇博文, 1.编写gmapping的launch文件.<launch>
2017-02-17 20:07:27 3006 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人