自定义博客皮肤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)
  • 收藏
  • 关注

转载 牛眼标定TCP原理

即tool末端在坐标系下的z=a31*xt+a32*yt+a33*zt+z1,记A1=[a31,a32,a33],TCP=[xt,yt,zt],则z=A1*TCP+z1。机器人以不同姿态在光电开关附近进行平动,可以搜索得到工具末端刚好在光电所在这条线上的位置(如上图所示),记录这4个位置对应tool0的位置为p1、p2、p3、p4。tool末端对应的4个点成一条直线,也可理解为:在某个坐标系下tool末端对应的4个点高度z相同,即p10、p20、p30、p40的z相同,即。求解得到TCP的xyz位置。

2024-02-01 09:05:40 442

转载 内窥镜测试标准解读

需要注意的是,目前一些电子内窥镜的技术要求中也直接引用了YY 0068.1中单位相对畸变的要求,包括试验方法也原封不动的照搬过来,笔者并不建议这样操作,因为光学内窥镜的畸变成因以及理论像元镜像尺寸的换算未必适用于电子内窥镜,二者的成像光路和成像机制完全不同,不建议直接生搬硬套。计算公式并不复杂,需要注意的是:照度探头放置的位置是最大视场角90%(而非最大视场高度的90%),探头的感光面直径要足够小(不得大于90%视场直径的十分之一),内窥镜顶点与照度探头的距离不得小于50mm。难点在于视向角的精确测量。

2024-01-24 21:39:45 1169

原创 Segment Anything Model (SAM) 在医疗图像上应用

【代码】Segment Anything Model (SAM) 在医疗图像上应用。

2023-04-13 17:24:50 865 1

原创 JypyterNotebook中在PyTorch框架下构建Dataloader

当我们拿到数据,特别是图像类数据的时候,数据量往往特别巨大,有效的对数据进行分类(分组 ,及标签)对后面训练起到了关键的作用。对于大部分Kaggle的数据集,都是已经分类好的,所以不需要使用再根据名字或标签进行分类。创建自己的dataset。

2023-04-07 15:30:57 171

原创 ROS OpenRAVE 常用逆解库 ikfast (应用于UR机械臂)

【代码】ROS OpenRAVE 常用逆解库 ikfast (应用于UR机械臂)

2023-03-07 17:48:02 959 1

原创 OpenGL入门教程 - 02

VAO (Vertex Array Object) 在绑定之后,后续调用顶点的数据都可以使用VAO,我理解想到与存放了顶点数据的指针。对不同的顶点数据和attribute组合定义不同的VAO,通过VAO的更换来调用不同的顶点数据。EBO(Element Buffer Object)顶点排列组合信息。通过不同的EBO,同一组顶点可以渲染成不同的图形。

2022-12-19 16:51:40 309

原创 OpenGL入门教程 - 01

OpenGL使用的是管线的方式,利用GPU加速对简单的信息进行渲染,然后投影在屏幕上的方法,下图展示的就是信息在OpenGL里面的处理管线,Vertex信息由用户定义,保存在CPU中,随后在用户定义的GPU存储单元中做流程化的处理,然后把最终的图像投影在屏幕上。GPU的优势是可以其拥有需要小的处理核心core,可以并行的对简单的处理进行快速处理,处理的方式使用OpenGL里面的GLSL language,进行shader编写的小程序。4. 可以增加新的vertices来形成新的形状(primitive)

2022-12-16 17:14:08 690

原创 ubuntu编译3D Slicer5.0

Slicer是一个医用图像处理软件,几乎集成了市面医用图像软件的所有功能。据说源码有超过110W行。最关键的是,这是一款开源软件,使用者可以根据需要,对源码进行学习和移植 (当然也可以通过extension的程序,对widget功能进行disable)。Slicer界面使用的是QT框架,DICOM图像读取DCMTK,图像显示和交互VTK,图像操作和算法ITK,并且对于医疗应用IGT可以再编译SlicerIGT版本。 但是中国地区编译Slicer实在困难重重,甚至有人把Slicer的编译成功形容成玄学。...

2022-06-23 21:34:32 1154

原创 基于ROS机器人项目开发基础概念 (moveit) - 04

moveit是一个强大的模块:因为我的项目是使用UR机器人,我了解到MoveIt可以轻易的实现正逆解,当然这个我在前面的文章中也有涉及,但是更多的,比如singularity,object avoidance, track planning...都是我希望能直接借鉴的,因为自己开发其中任何功能都需要很长时间,另外现在行业里,各家automation都有自己的MC(motion controller),可以帮助开发者节省这部分开发。但是目前项目阶段急需做选型仿真,所以我才使用了MoveIt。...

2022-06-12 21:28:03 360

原创 VS2017+QT5.9 QT5.9基础大全 医疗图像处理界面设计 VTK视觉显示 DCMTK序列管理和通讯 - 03

继续前文:在框架需求上,因为要链接影像类设备, 传输可能会用NTSC/PAL这类video传输 (->可能涉及ffmpeg) 暂时不会放在这次搭建的平台里面 (可能留接口二次开发);这次主要考虑使用DICOM传输协议和文件格式进行传输;而VTK在DICOM文件的传输和处理上可以说是无用武之地,所以后续我又加入了DCMTK;我们可能使用过DCMTK binary的可执行文件,它可以根据AE 和 IP 包装传输的头文件,和SCP/SCU进行通讯,进行C-Store C-Move C-Get的操作。

2022-06-02 14:37:04 692

原创 VS2017+QT5.9 QT5.9基础大全 医疗图像处理界面设计 VTK视觉显示 - 02

1. VTK 和 ITK之间已经写过两篇ITK相关的内容,此次是想模仿一款图像处理软件 比如Slicer,Radint,或者ITK Snap。VTK和ITK的库都是基于OpenGL,VTK的库对OpenGL做了进一步的封装,使之更好使用。VTK和ITK的区别在于,VTK更取向于显示,2D显示/3D显示;而ITK更面向于图像的后处理。所以各司其职把。2. VTK的安装配置因为还是想基于VS2017来做开发。多说几句,VS开发平台相对于Linux还是有很多优势的,比如更加面向于项目,比如集成的三方插

2022-05-10 23:39:44 768

原创 VS2017+QT5.9 QT5.9基础大全 医疗图像处理界面设计

包含Qt5.9所有基本控件的操作,信号和槽函数,和QSS样式后面将利用Qt5.9和MITK或者MTK库做一个医疗图像处理APP1. Signal and slot2. QWidget基类2.1 QRect 常用于定义Geometry;可包含长宽和位置信息2.2 QSize(int w, int h)3. Qstring 和编码方式4. Qlabel Content - 文字 - 图片和动图 – Qpixmap; QMovie - 富文本(超链接) Signal - 富

2022-05-07 13:31:21 1233

原创 基于ROS机器人项目开发基础概念 (Service,消息类型srv&msg) - 03

上文已经介绍了ros topic的基本概念信息在这篇文章中将介绍ros service <server-client模型>,和ROS中的数据类型,msg和srv1. ROS ServiceService和我们之前说的Topic都是ROS操作系统中应用/节点之间通讯的方式。但是Service通讯使用的是<server-client模型> ,所以区别可以概括为以下几个方面:- Service的通讯是同步的,意思是Server节点和Client节点建立连接后,对reques

2022-05-01 14:09:33 1374

原创 基于ROS机器人项目开发从零开始 (ros topic, service, msg, srv, launch, oop等基础概念) - 02

上一节已经给大家介绍了ROS这个多功能的操作系统的概念,和在机器人开发中可以基于我们的帮助。那么这一篇我们继续来讲ROS当中最重要的几个概念 - topic service msg srv 和 OOP(基于对象编程)。正是因为ROS给我们封装了和linux内核和进程之间的通讯方式,所以我们在不同的功能之间开发,需要遵从ROS的开发守则。上一节除了安装ros-noetic-full-desktop之外,有些老程序猿应该想知道有没有特定的IDE。答案也是肯定的。一个好的IDE可以让项目事半功倍。...

2022-04-23 17:24:16 1709

原创 基于ROS机器人项目开发从零开始 - 01

其实基于机器人机械臂,计算机视觉算法的内容已经写了很多了。但是如何把离散化的知识和零件有机的平凑在一起,需要硬件连接,需要软甲通讯,需要系统的集成 --- 呼之欲出的就是,我们需要一个操作系统呀!这个操作系统可以在硬件搭建前期帮助软件做仿真优化,也能很好的集成系统,减少开发时间。这就是ROS系统。1. 什么是ROSROS - Robot Operating System; 机器人操作系统。但是它和传统window,linux,unix系统有些区别,我个人理解是ROS其实是对Linux......

2022-04-22 14:51:07 5386

原创 外科手术器械设计 超声刀设计思路和原理 - 04

根据上文牛顿第二定律的谐振频率模型可以得到:又有,在无阻尼和无外力的情况下,可简化为:根据简谐振动的情况,里面的t可以用x代替;根据二阶齐次微分方程的通解可以求得振速,和应力的关系:syms k1 k2 k3 k4 k5 k6; syms l1 l2 l3 l4 l5 l6;syms A1 A2 A3 A4 A5 A6;syms B1 B2 B3 B4 B5 B6;syms Z1 Z2 Z3 Z4 Z5 Z6;syms x1 x2 x3 x4 x5 x6; % vari..

2021-12-27 23:00:08 1073

原创 外科手术器械设计 超声刀设计思路和原理 - 03

以防万一,我们先回顾一下机械简谐运动的知识[1],具体的推倒方式,如果感兴趣的朋友,可以根据关键词在网上搜索。另外C(波在材料中的传播速度)=波长*频率,可以求得1/4lamda和1/2lamda对应的节点位置,有什么用,后面就知道啦。

2021-12-19 20:26:12 1871

原创 外科手术器械设计 超声刀设计思路和原理 - 02

接着上文,对于自动跟踪谐振频率的超声刀控制反馈电路做了简单的介绍,该方式非常适合无线超声刀(无主机系统),一方面减少了元器件的数量降低了成本 并且减少了整个handpiece的重量,其次是减少了软件算力的需求,但是本人对该算法和实际的临床表现依旧持观望态度,希望后面能搜索到能好的临床实验。这次简单介绍一下传统的超声刀锁相环反馈控制电路。该方案是基于DSP(TMS320F2812)控制系统,使超声刀振动在谐振状态。目前使用的电反馈系统分为阻抗电桥式反馈系统,电流反馈系统,锁相环频率跟踪系统。电流.

2021-12-04 21:11:21 1418

原创 外科手术器械设计 超声刀设计思路和原理 - 01

整个放大驱动和反馈电路,从功能出发分为以下几个方面:交流电整理和逆变(根据压点陶瓷和系统的谐振频率调整驱动电流的评率),但是实际使用的过程中,前端会根据夹持和力度和组织厚度(超声刀),阻抗会发生剧烈的抖动,所以需要对驱动电流进行整流;另外根据前端,协整频率也发发生...

2021-12-02 13:22:34 2439 2

原创 Parallel Platform (Stewart Platform) 类型机械臂的正逆解 01

并联机器人相对于串联机器人有着不同的应用场景。本文主要是基于并联机械臂的基础控制算法做一些阐述。对于机械臂的架构通讯方式(RS232 RS485 Canbus Modbus),结构设计(球关节,universal joint),传感器选型,运动规划(奇异解规避)希望在后面的文章中做进一步研究。并联机械臂 vs 串联机械臂 在之前的文章中已经写过了串联机械臂的IK&FK,总体上来说,并联型机械臂相对于串联机械臂来说,系统的刚度更好,承载能力(payload)更.

2021-11-08 15:03:29 1023

原创 相机校参及C-arm校参 07 - 根据2D图像计算相机的相对位姿

已知条件为:1.calibrated camera 校准后相机的intrisic parameters (K)2. Model geometry 模型中特征点(有些文献中成为标记物Tag)的3D Coordinate, noted as "X"3.图像中的位置坐标, noted as "x"4.计算求解的速度和initial guess有关求:Model(或者说是Model上的特征点)相对于相机的pose (位姿)方法:根据最小二乘法预估图像中的位置直至收敛(supposing.

2021-10-08 16:36:39 562

原创 ITK(Insight Tool Kit) 医疗影像数据后处理软件模块使用和算法02

上节说到如何在windows(10)的VS(2017)平台下导入ITK的library,这次咱们开始说一下咱们一开始最关心的内容,如何用ITK来做3D图像(e.g.CT)的2D投影(X-ray)。我们先来看看结果吧,先已一个脊柱节段的CT影像为例,右边为轴向的投影。下面就具体说说怎么使用ITK。下面主要是改编ITK标准example的代码,如果根据我上一篇的内容成功编译了HelloWorld项目,下面代码应该可以成功跑通。首先我们以需求出发,假设我们手头上是DICOM格式的CT数据...

2021-09-30 18:02:43 1405 1

原创 ITK(Insight Tool Kit) 医疗影像数据后处理软件模块使用和算法01

最近在研究3D-2D比如(CT和X-ray透视)的配准方法,其中很重要的一个大算法就是做DRR(digitally reconstruction radiography),简单的说就是用CT数据实现X-ray的效果,进而和术中X-ray的片子做配准,从而把术前的参数转化到术中。术中X-ray用几张图,从什么角度拍,就各异啦。简单的介绍一下ITK中的DRR,它可以选择Xray source的角度和位置,通过调整X-ray filter进而达到在3D中把需要的数据投影到2D投影平面上。Refere.

2021-09-24 14:10:28 1096

原创 一文解释电路中常用电子元器件应用和选型01

电容和二极管是电路中最常用的两个电子元器件,种类和系列众多,这里简单总结一下应用场景和选型方式电容(Capacitor)电容的种类(20种以上)和应用非常广泛,但是我经常遇到的无非就是下面这几种:应用 1.隔直流。 2.旁路(去耦) 3.耦合 4.滤波 5.温度补偿 6.计时 7.调谐 8.整流 9.储能 种类 1. 陶瓷电容 2. 云母电容 3. 铝电解电容 4. 钽

2021-07-29 13:24:27 1457

原创 从懵懂到精通装饰器在python里的作用

一直想详细系统的总结一下decorator装饰器在python里面的作用。顾名思义,装饰器是用来装试的,好比一个房子,没有软装能不能住,能住,但膈不膈应,十分的膈应。所以没有装饰器,python依然可以玩的转,但是真正要掌握这门语言,装饰器还是要了解滴。那么装饰器装饰的是什么,怎么装试,我们来看一段代码吧def counttime(func): def countdown(): start = time.time() func() end =

2021-07-20 15:29:24 57

原创 用python计算机械臂工作区间(workspace)

如今最主流的机械臂分为串联式和并联式机械臂,本文主要举例为六轴串联式机械臂工作区间的计算方法为什么要计算工作空间,工作空间和使用目的相关,当确定机械臂确定要完成某项任务,比如夹取1m外的小苹果时,就需要根据需求,设计或选购能满足该任务的机械臂,机械臂的工作空间就是其中一项指标。这里我提到的工作空间区别于灵巧度空间(dexterity space),只要求机械臂末端执行器能到达该坐标点即可。可以参考工业中KUKA机械臂的表示方法,该六轴机械臂的工作空间分为左视图和俯视图,分别表示X-Z二维平面的最大运

2021-07-19 14:28:49 2058

原创 使用GEKKO对PID模型进行仿真和调优

PID是目前工业领域最常用的控制模型算法之一。其被广泛应用于压力,温度,气流和位置的调控中。通过上图可以总结出PID调控的大概思路为 设定值-> 初始控制量(OP_0)-> 输出值 -> 误差检测(输出值-设定值)-> 调整控制量(OP_1)直至调控时间限值达到或误差检测小于设定值。传统PID主要运用下面公式调整控制量:OP变化的灵敏度或者说是调参模型曲线主要由Kc, tauI,tauD决定,对应着我们常说的P(proportional),I(Integral),D(De..

2021-06-21 15:08:08 522

原创 Carm图像矫正

C-arm畸变矫正及矫正参数求解前面已经讲过相机图像矫正的基本原理:通过求解extrinsic参数 e.g T,R 和 intrinsic参数 e.g m,s来对畸变图像(Carm为点光源成像(由一点发射X射线),虽然接收器会有一定程度的矫正,但是边 缘区域还是会有“比较大”的畸变 e.g. barrel)进行矫正在项目中,我们使用的是Imag Adapter,通过特定已知图例,对矫正参数进行求解首先需要对C-arm中的图案进行采集(比如下图中bead中心坐标):不需要花太多力气

2021-03-17 10:38:51 411 1

原创 脊柱分割算法总结(RegionBase, Classificaiton, Clustering...)

脊柱分割算法总结医疗图像一般经过图像畸变矫正->ROI区域分割(比如:病灶,脊柱,医疗器械…)->图像配准(比如:多模态的图像融合)。在主要的这几个步骤中,其中图像分割是非常重要的一步,在领域里面也有很多相关的方法,这篇文章主要用来总结一下目前我知道的一些方法。图像的分割从介入上分类可以分为:手工分割;自动分割;半自动分割在自动分割领域分为:"""Region Based Methods Thresholding Region GrowingClassification Met

2021-01-08 15:02:57 2170

原创 OpenGL相关功能软件开发(Glut, FreeGlut, Glew, glfw etc...)

OpenGL相关功能软件开发(Glut, FreeGlut, Glew, glfw etc…)OpenGL是一个非常强大的跨平台交互平台,提供开放式图形库功能,提供了多种API去做2D和3D的矢量图。OpenGL可以用于CAD、虚拟现实、科学可视化程序和电子游戏开发。OpenGL本质上并非API,其实是Chronos Group开发维护的一套规范,定义了一系列三百多函数用于图形操作的API。硬件比如GPU开发的厂商,有硬件翻译API的指令,根据OpenGL的规范来开发。另外如果硬件上无法满足OpenGL的

2020-09-25 17:13:33 421

原创 PCL ICP算法概述总结

ICP (iterative closest points) 点云配准算法经典的icp算法(可以参考Chen and Medioni,【2】 and Besl and McKay.【1】),对比于 Kabsch algorithm,ICP在图像和环境配准当中有着更广泛的应用。可以参考:k-d tree算法,流程大致为:输入:参考模型点云,实际模型点云,初始估计转换矩阵(可以用于加速配准),结束收敛标准或停止标准1 参考模型点云和实际模型点云寻找配准2 根据最小似然值得要求,估计一个4X4的转换矩阵

2020-09-08 11:12:14 2227

原创 PyQt5 组件和容器 (w/ comments)

QWidget ->{QPushButton, QAction, QLineEdit, QMessageBox, QMainWindow]import sysfrom PyQt5.QtWidgets import QApplication, \ QWidget, QPushButton, QAction, QLineEdit, \ QMessageBox, QMainWindowfrom PyQt5.QtGui import QIconfrom PyQt5.QtCore i

2020-08-28 16:59:14 448

原创 基于UR5的python脚本控制程序(包含正解FK和逆解IK)

FK & IK (singularity solution developing)""""forward kinematics by Devit Hartenberg matrix"""UR5param = pd.DataFrame(data=[[0, 0, 0.089159, pi / 2], [0, -0.425, 0, 0], [0, -0.39225, 0, 0],

2020-08-28 14:21:57 2036

原创 X-ray 2D和CT 3D图像配准流程和算法总结 Fluoro-image and CT 3D image registration flowwork and algorithm

X-ray 2D和CT 3D图像配准流程和算法总结 Fluoro-image and CT 3D image registration flowwork and algorithmReference to: Registration of 2D C-Arm and 3D CT Images for a C-Arm Image-Assisted Navigation System for Spin...

2020-05-08 11:42:39 5556 1

原创 相机校参及C-arm校参 Camera calibration & X-ray calibration 06

相机校参及C-arm校参 Camera calibration & X-ray calibration 06reference[1] A Flexible New Technique for Camera. Calibration. Zhengyou Zhang. December 2, 1998. (updated on December 14, 1998). (updated on ...

2020-04-28 18:37:26 342

原创 相机校参及C-arm校参 Camera calibration & X-ray calibration 05

相机校参及C-arm校参 Camera calibration & X-ray calibration 05“chessboard corner finding”在下面的文章中,可能会提到用三张chessboard的图片来校准相机intrinsic and extrinsic parameters的内容,所以提前查阅了C++和Python基于OpenCV的方法,来提取chessboar...

2020-04-27 22:06:38 231

原创 UR5工业机械臂控制(robotic arm control algorithm)

UR5工业机械臂控制(robotic arm control algorithm)The control of robotic arm involves few steps as below. firstly, given each joint conditions, the end effector’s condition (posture and position) can be obtai...

2020-04-27 17:51:21 1993

原创 相机校参及C-arm校参 Camera calibration & X-ray calibration 04

相机校参及C-arm校参 Camera calibration & X-ray calibration 04这一期主要讲解一下DLT直接法,硬解出uncalibrated camera的5个intrisincs和6个extrinsics。不会列出细节推倒过程,所以需要有一定的数学,至少是线性代数的基础。Given: 物体在世界坐标系中的点Observation 对应的图像坐标系中的点...

2020-04-26 22:26:21 233

原创 相机校参及C-arm校参 Camera calibration & X-ray calibration 03

相机校参及C-arm校参 Camera calibration & X-ray calibration 03前文我们已经可以得到K->C坐标系中的转化了,下面我们来谈一下:由C->S坐标系的转换(intrinsics)首先要清楚一点,传感器sensor的零像素点和图像的XH中心点肯定是不重合的【fig0】,如图所示,如果两个中心点重合,会损失至少1/3的信息。所以才需要在...

2020-04-26 15:52:13 265

原创 相机校参及C-arm校参 Camera calibration & X-ray calibration 02

相机校参及C-arm校参 Camera calibration & X-ray calibration 02今天想说一下相机或小孔相机的instrinsic and extrinsic parameters.从我们眼中的三图维物体到相机的二维物体,再到相机内的光学传感元器件输出数字图像信号,要经过几次的转换。在这些变换中,设计到了几次坐标系的变换。世界坐标系 用标记o来表示So w...

2020-04-25 16:35:00 312

空空如也

空空如也

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

TA关注的人

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