- 博客(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
原创 前端单元测试框架 引入说明
但是写单元测试成本还是挺高的,如果代码改动频繁,那手动测试更合适。一些比较稳定的代码,还是有必要写单测的,写一次,自动测试 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
原创 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
原创 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
原创 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关注的人
RSS订阅