自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(212)
  • 收藏
  • 关注

原创 工业机械臂 URDF模型创建 --> ROS

本文介绍了使用SolidWorks和ROS工具进行机械臂URDF建模的完整流程。首先需要准备机械臂模型、工具模型及相关坐标系参数,特别注意TCP坐标应在URDF中后期添加。建模时需统一关节坐标系方向(Z轴为旋转轴),并通过基准轴交汇点建立坐标系。使用ROS官方插件导出URDF时要注意命名规范,base_link必须首先创建。最后通过ROS2案例验证模型,并详细说明了如何通过修改URDF文件添加TCP坐标系,包括坐标转换和新增link/joint节点的具体方法。整个过程涵盖了从建模到验证的关键步骤,为机械臂的

2025-10-16 16:18:59 721

原创 机器人运动学 (总结版)

【摘要】课程探讨了末端姿态点描述的精妙性:B点三个轴不仅描述其相对A点的平移,还同时表征旋转姿态。只要任一轴未对齐,即表明物体存在旋转姿态变化。这种简洁而全面的描述方式令人赞叹,展现了空间姿态表征的巧妙之处。(78字)

2025-06-16 21:44:09 205

原创 B/S架构,实现一个Three.js机械臂控制

1、使用urdf-loader加载URDF模型,简化操作。

2025-06-16 09:31:41 404

原创 前端单元测试框架 引入说明

但是写单元测试成本还是挺高的,如果代码改动频繁,那手动测试更合适。一些比较稳定的代码,还是有必要写单测的,写一次,自动测试 n 次,收益很大。单元测试能保证函数、Hook、组件等代码单元的功能正常,把手动测试变成自动化测试。,即模拟浏览器环境。这样对组件进行单元测试时,就像真的运行在浏览器上测试。因此,选择React Testing Library 作为测试库。上面给组件写了一个正常使用组件的测试用例,如果此时,我们。测试用例不通过,证明会影响到原来组件的业务。要想对项目里的组件进行单元测试,

2024-11-13 15:54:52 1351

原创 使用Nest.js抽取一个CMS系统模板

技术栈:前端是 antd + react + cra,后端是 nest + typeorm,数据库是 mysql + redis,API 文档用 swagger 生成,部署用 docker compose + pm2,网关使用 nginx。输入守卫 , 输入输出拦截器, 封装context对象,把cookie提取到ctx对象上,输出时,把data封装到一个统一的输出对象上。基于 RBAC 实现权限控制 ( Role Based Access Control,基于角色的权限控制 )

2024-04-03 11:15:46 825

原创 ReactNative如何调用自定义的原生模块

在 MainApplication .java文件中, getPackages方法中注册该模块。然后在里面 添加自定义的原生模块。该模块必须实现ReactPackage。在 AppDelegate.m文件 ,

2023-12-07 10:05:35 824

原创 跨端的三种方案原理和对比(WebView,ReactNative,Flutter)

答: 第一代跨平台框架,代表者为:PhoneGap、微信小程序。WebView标签是一种用于在网页中嵌入浏览器窗口的HTML元素。它的底层原理是通过来实现网页的渲染和交互。在Android平台上,WebView使用的是Android系统提供的WebView组件,它基于WebKit引擎。答:因为WebView标签(或叫组件),本质上是原生平台提供的一个组件,对它的优化就不是很好。并且一个完整HTML5页面的展示要经历浏览器控件的三大过程,性能消耗要比原生开发增加N个数量级。这也就导致了很多无用的性能消耗。

2023-12-06 12:01:33 3709 2

原创 React Swiper.js使用(详细版)3D聚焦特效,自定义导航按钮等

1、 通过直接引入less文件 重新定义 swiper-button-prev等类 或 :global ,自定义导航按钮 / 进度条样式2、 防止冲突,swiper2-button-prev swiper-button-prev 通过在前端定义前缀,避免多个swiper.js使用 navigation={{ nextEl: '.swiper-button-next',top: unset;left: 50%;left: 0px;top: 50%;&::after {

2023-10-26 16:36:09 2333

原创 Vite与WebPack的对比,及解决了什么痛点,及什么是ESM?

ESM的来源与定义ESM是一种规范,这个规范里面包含有一些新的语法和概念,包括`import`和`export`关键字、模块作用域等,是在ES6引入,后逐渐被大部分浏览器所支持。所以,我们通常说的ESM,其实是指构成ESM规范的一系列的JavaScript特性或者API。ESM(ECMAScript Modules)是一种在 JavaScript 中使用模块化编程的标准。浏览器支持 ESM 是通过实现 JavaScript 的内置模块系统来实现的。

2023-04-23 16:10:11 2386

原创 Web Components 技术分析

HTML Imports 则允许开发人员以模块化的方式组织和导入 Custom Elements 和 HTML Templates。Shadow DOM 可以让开发人员将样式和行为封装到自定义元素内部,并且不影响其周围的 Web 页面。customElements.define() 方法,将 MyElement 类注册为自定义元素。Custom Elements 可以让开发人员创建自定义的 HTML 标签。HTML Templates 可以存储 HTML 片段,以便在需要时引用。

2023-04-14 19:23:20 696

原创 联邦模块(概述,实战应用,基本原理,未来展望)

联邦模块还是一个比较新的特性,有优点也有缺点。网上的案例也不多,容易在上真正项目踩坑时,需要自己去研究解决。文章写得比较简陋,有许多深入的细节也没有写上,相信作为一篇入门的文章还是可以的。若你对这篇文章有何不懂或者意见,欢迎下方评论,你的意见与指导是我分享的最大动力。

2022-11-07 00:14:14 4352 1

原创 cookie和localstore和sessionstore区别

作为前段工程师,最近有一段面试被问到cookie、sessionStorage和localStorage的之间有什么区别?其实他们都是储存浏览器数据的,一个cookie是随HTTP事务一起被发送的,因此会浪费一部分发送cookie时使用的带宽,一个Web Storage浏览器数据,有分为localStorage和sessionStorage。相同点:cookie、sessionStorage和localStorage都用在客户端存储数据,每一个都有自己的存储和到期限制不同点:一、存储大小c

2021-10-03 12:25:39 3685

原创 RGB-D 相机 基础原理学习

2025-12-20 18:24:00 75

原创 ROS2 项目 vscode 必配.vscode文件

前置条件: 安装好 C++ ROS2 CMAKE插件。

2025-12-09 10:00:44 485

原创 ROS2 Moveit 原理

MoveIt的运动规划流程包括:首先设定目标位姿,然后进行逆运动学求解获得关节配置,接着检查碰撞情况,再通过轨迹搜索算法寻找可行路径,优化轨迹平滑性后最终输出规划结果。整个过程实现了从任务目标到可行运动轨迹的完整求解。

2025-12-08 14:51:33 91

原创 ROS2 CMakeLists.txt 如何使用

本文总结了ROS2项目中CMake配置的最佳实践。对于ROS2依赖(如rclcpp),推荐优先使用ament_target_dependencies进行一站式配置;非ROS2依赖(如OpenCV)需配合find_package和target_link_libraries使用;自定义头文件应通过target_include_directories添加。文章还对比了不同CMake命令的适用场景和优先级,强调应避免使用全局设置的include_directories和link_directories,推荐使用目标

2025-11-28 15:27:36 211

原创 关于 C++ 接收二进制的 数据类型 和 二进制数据类型的本质

/ pointCloudData = [ 12,36,14,15,.... , 0< x < 255] 总之 0< x < 255 是这个范围,对应C++ 一个 char ,一个字节。那么 C++ 要如何接收这段 二进制 void recivce (const std::string& requestData ) {C++ 里面使用 std::string 去接收二进制的数据, 因为 std::string 底层是一个 char[] 类型。假设 points 已被填充满。

2025-11-25 11:23:44 299

原创 ROS2 轨迹规划核心点

本文介绍了ROS节点创建与运动规划的实现方法。首先创建名为"robot_server_node"的节点,并初始化点云发布功能,通过sensor_msgs::msg::PointCloud2消息类型发布点云数据。其次配置moveit的sensors_3d.yaml文件,使点云数据能自动应用于轨迹规划。最后详细说明了运动规划的实现过程:创建MoveGroupInterface实例并设置参数,通过setStartState设置起始状态,使用setPoseTarget设置目标位姿,调用plan方

2025-10-27 23:08:17 299

原创 vscode 配置ROS项目 导入库来源

"${workspaceFolder}/install/** # 工作空间install目录","/opt/ros/humble/** # 替换为你的ROS2版本,如humble","${workspaceFolder}/../../opt/ros/** # ROS2系统头文件","${workspaceFolder}/src/** # 源码目录",

2025-10-23 10:28:56 278

原创 关于 URDF (创建,理解偏机械臂础知识)

摘要:机器人学中,关节旋转轴通常对应坐标系的Z轴(如Denavit-Hartenberg参数法)。URDF模型通过<origin>标签定义父子坐标系变换关系,其中xyz表示子坐标系原点在父坐标系中的位置,rpy表示旋转弧度。工具坐标系(TCP)位于末端执行器,当安装工具时需通过<origin>指定其与法兰的偏移量(如xyz="0.01 0.02 0.15" rpy="0 1.57 0")。这些参数是机器人运动学建模的关键。(150字)

2025-09-25 01:01:59 309

原创 [mark] React MarkDown格式里同时渲染SQL,GO

【代码】[mark] React MarkDown格式里同时渲染SQL,GO。

2025-04-03 18:11:50 160

原创 记录一下React 数组引用 问题

【代码】记录一下React 数组引用 问题。

2025-02-10 17:16:25 148

原创 Web3技术探索

基础部分

2024-12-05 19:58:09 290

原创 spring实现微信开放平台登录+支付

待写。。。

2024-10-09 16:41:28 406

原创 Next.js系列

待写。

2024-10-09 13:24:25 178

原创 SpringBoot 的注解原理,及自定义注解

在 Java 项目编译后,注解会以特定的方式存储在 .class 文件中,并可以在运行时通过反射机制进行解析和处理。Java 的注解可以有不同的保留策略(Retention Policy),这决定了注解在编译后的 .class 文件中的存储方式以及它们在运行时的可见性。这是注解的默认保留策略。• method.getAnnotation(MyAnnotation.class):获取方法级别的注解。• clazz.getAnnotation(MyAnnotation.class):获取类级别的注解。

2024-08-30 02:03:00 1027 1

原创 Spring 系列

Spring Session 和标准的 HTTP Session 在功能和特点上有许多不同,虽然它们解决的问题领域有很多重叠之处。

2024-07-21 23:53:28 621

原创 Lombok

Lombok 是一个 Java 库,用于减少 Java 中的样板代码(boilerplate code)。通过在 Java 类上使用注解,Lombok 自动生成构造函数、getter、setter、equals、hashCode、toString 方法等。这样可以极大地简化代码,提升开发效率,并提高代码的可读性和可维护性。

2024-07-21 23:50:48 383

原创 Redis五大基本数据类型

如果成员已经存在于集合中,则不会重复添加。命令用于返回一个或多个集合的交集,即只返回同时存在于所有指定集合中的成员。有序集合算是Redis中比较特殊的一种数据类型,有序集合里的每个元素都带有一个score属性,通过该score属性进行排序。,类似于`key = {{field, value}, {field, value}}`。: 向有序集合添加一个或多个成员,或者更新已经存在成员的分数。: 根据成员分数从小到大,返回指定区间内的成员。: 根据成员分数从大到小,返回指定区间内的成员。哈希的键值本身是一个。

2024-07-02 15:05:39 439

原创 SQL练习

查询所有同学的学生编号、学生姓名、选课总数、 所选的课分别是 、 所有课程的总成绩。使用 max 是因为这里 是分组查询 GROUP BY , 应该对数据进行聚合。函数连接所有选过的课程名称,通过指定。来定义课程名称之间的分隔符。确保课程名称按字典顺序排序。确保课程名称的唯一性,

2024-06-13 23:31:01 229

原创 mysql 相关

如果显示 mysqld 1985 username 18u IPv4 0x405f158e91054d89 0t0 TCP localhost:33060 (LISTEN) 证明连接成功。1、 连接报错 public key retrieval is not allowed。因为,mysql驱动有地方没设置为true,导致只允许一个地方连接mysql .2、 mac 笔记本检查mysql 是否启动。

2024-06-12 22:25:24 409

原创 前端项目代码规范 ----- 配置eslint规范,增加Git工作流规范

另外,在package.json执行 "lint:fix": "prettier --write . && eslint --fix . && stylelint --fix \"**/*.{css,less,scss}\"", 这样的脚本,它会全局扫描怎么办呢?1、 像上面的lint-staged ,在第一层配置了 lint-staged 这个配置, 必然下面会有对应的包。----- 关于 package.json 的一些工程化知识 ----,eslint ,stylelint 这些文件。

2024-03-06 17:00:03 522

原创 field 在计算机中的意思

1.在数据库中,“field“指的是表中的一个列,它存储了特定类型的数据。例如,在一个学生表中,可能有“姓名”、“年龄”和”成绩”等字段。2.在编程语言中,“field"“是指类或结构体中的一个成员变量,它定义了对象的某个特定属性或状态。例如,在一个表示学生的类中,“姓名“和“年龄”可以是类的字段。3.在计算机图形学中,“field"指的是图像中的一个像素。"field"在计算机中的意思是指某个特定类型的数据存储单元,该单元可以是数据库中的列、编程语言中的成员变量、图像中的像素,或网络通信中的数据包字段。

2024-03-04 13:46:41 1533

原创 即时通讯系统 — Go基础版

构建基础Server。

2024-02-25 17:26:53 542

原创 GO语言基础总结

多态: 定义一个父类的指针(接口),然后把指针指向子类的实例,再调用这个父类的指针,然后子类的方法被调用了,这就是多态现象。

2024-02-23 18:17:03 314

原创 React底层原理分析(简单大白话版本)

diff算法深度优先遍历堆排序链表,栈操作react合成事件。

2024-01-16 14:05:51 2084

原创 useEffect 和 useLayoutEffect的区别

useEffect和useLayoutEffect作为组件的副作用,本质上是一样的。共用一套结构来存储effect链表。整体流程上都是先在render阶段,生成effect,并将它们拼接成链表,存到fiber.updateQueue上,最终带到commit阶段被处理。他们彼此的区别只是最终的执行时机不同,一个异步一个同步,这使得useEffect不会阻塞渲染,而useLayoutEffect会阻塞渲染。简单总结: 都是在render函数执行后执行,useLayoutEffect是在DOM渲染阶段前,useE

2024-01-09 13:42:05 777

原创 微前端框架对比,css,js隔离方案对比,跟Ifream对比

参考:聊聊 QianKun JS 沙箱的那些事 - 知乎Web Components 技术分析_mtwebcomponents怎么实现转码的逻辑-优快云博客介绍 - qiankunMicroApp

2024-01-05 12:22:36 567

原创 React Hook 原理,及如何使用Hook

Q1 : 为什么 hook 不能在循环,条件或嵌套函数中调用Hook?A1: 因为这跟React的渲染函数和React Hook的实现原理有关,如果在循环,条件或嵌套函数中调用hook,会影响到了React自身记录的Hook顺序,会导致组件状态(值)不一致问题。Q2: 为什么组件内,刷新了一次后,useState 仍然能保持最新的值,而不是回到初始值?

2024-01-05 01:01:09 1395

原创 antd pro 生成的框架的权限控制分析

背景 :npm i @ant-design/pro-cli -g pro create myapp 生成框架 , 当我们不登录,直接进入其他页面,它就会退出去登录页面,那么它是如何做的呢?总结: 当在routes对某个路由配置 access字段时,就要对两个位置进行配置(config只要配置一次就不算了) 分别是 access.ts文件,app的getInitState钩子函数。用Umi官网的生成简单框架就够了,请求,路由,layout自己配,根据项目的复杂度再渐进式的去增加功能。

2023-10-30 13:43:06 509

空空如也

空空如也

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

TA关注的人

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