基于法奥FR5与Klipper的3D打印系统实现
基于法奥FR5与Klipper的3D打印系统实现在传统的增材制造领域,3D打印通常被局限在三轴龙门架或并联臂的框架内。然而,当我们将目光投向工业级协作机器人时,无限的可能性便产生了:更大的操作空间、六自由度的柔性、以及非平面打印的潜力。 本项目的目标是:利用法奥(Fairino)FR5机器人,集成BIQU高性能打印末端,并结合机器视觉实现一种“感知-决策-执行”一体化的自动化3D打印系统。本文将详细记录从硬件连接到视觉联动控制的全过程。 一、硬件清单1.机械臂法奥机器人FR5 2.视觉摄像头海康威视MV-CU060-10UC 3.3D打印末端BIQU H2 V2S 4.3D打印控制板BIQU Manta M5P 二、连接拓扑我们将笔记本电脑作为核心控制单元,通过不同的通讯协议将各组件串联: 机械臂:通过以太网(RPC 协议)进行 TCP/IP 通讯。 视觉系统:通过 USB 直连,调用海康官方 SDK。 打印头:PC 通过 HTTP 请求与 Manta M5P 上的 Moonraker API 交互,实现远程 G-code 指令下发。 1. PC与机械臂连接将...
二分答案巧思
二分答案巧思 一、二分答案介绍二分查找是我们很熟悉的一种算法,通过对一个有序序列进行分割,最终能实现查找到目标数值。而二分答案就是基于这种思想衍生出来的解决最优化问题的策略。在题目中,我们最常看见的字眼就是最大值最小化或最小值最大化等目标,就在暗示我们使用二分答案算法。 从专业的角度来介绍二分答案算法,该算法基于二分的思想,通过对解空间进行不断分割,逐步逼近最优解。 今天这篇文章将结合具体例子,介绍笔者关于二分答案这个算法的应用范围的一点巧思 二、具体例子以下这道题作为一个例子来介绍这个算法,P1182 数列分段 Section II - 洛谷 题目描述 对于给定的一个长度为 $N$ 的正整数数列 $A_{1\sim N}$,现要将其分成 $M$($M\leq N$)段,并要求每段连续,且每段和的最大值最小。 关于最大值最小: 例如一数列 $4\ 2\ 4\ 5\ 1$ 要分成 $3$ 段。 将其如下分段: $$[4\ 2][4\ 5][1]$$ 第一段和为 $6$,第 $2$ 段和为 $9$,第 $3$ 段和为 $1$,和最大值为 $9$。 将其如下分段: $$[4][2\ ...
C++输入输出效率测试
C++输入输出效率测试前情提要: 默认情况下,C++的标准库(iostream,例如 std::cin 和 std::cout)与C的标准库(stdio,例如 scanf 和 printf)之间是同步的。这意味着它们共享相同的缓冲区,并且在每次I/O操作时都会进行刷新和同步,以确保它们之间的一致性。这种同步确保了你可以在程序中混合使用C和C++风格的I/O,而不会出现数据错乱或顺序错误的问题。 然而,这种同步会带来性能开销。当你知道在程序中不需要混合使用C和C++风格的I/O时,可以通过调用std::ios::sync_with_stdio(false) 来关闭它们之间的同步。这样做之后,C++的I/O操作会变得更快,因为它们不再需要在每次操作时与C的I/O函数保持同步。 在竞赛中,除非用快读之类的技巧,一般选手都会选择使用C标准输入输出,这篇博客是探究关闭同步流后的C++的流输入输出与C标准输入输出在效率上的优劣对比。需要注意的是,本测试将输入输出合并在一个程序中,以期得出一个综合成绩,如果有不妥之处,请诸位提出。 本篇测试...
简单OTA系统的设计与实现
博主在24年5月在学校的OPPO实验室里负责物联网的OTA设计,只在博客里留下了一些莫名其妙的设计,这篇文章就是来补一下坑,从整体架构到细节方面介绍一下整个OTA系统的设计,第一次设计CS系统,有很多粗糙的甚至不安全不合理的地方,我以后也会慢慢形成思路进行改进 1. 系统架构整个 OTA 系统采用典型的 C/S (Client-Server) 架构,并引入了一个独立的注册/管理节点来协调更新流程。 1.1 核心组件 Server (OTA 文件服务器) 职责: 存储升级包(Zip文件)及其元数据(version/content.json)。提供版本查询 API 和文件下载服务。 角色: 这一组件相当于“仓库”,只负责“给我最新的版本号”和“给我文件”这两个简单的请求。 Register (设备注册与管理中心) 职责: 维护所有 IoT 设备的列表、状态(在线/离线)以及当前安装的软件包版本。提供管理控制台(Dashboard),管理员在此进行更新发布。 角色: 这一组件是系统的“指挥单位”,它知道哪些设备需要更新,并向具体设备在...
百度Apollo自动驾驶系统之cyberRT编程:Component实践
参考文献:https://apollo.baidu.com/community/Apollo-Homepage-Document 以及Apollo方面课程 一、Component概念 Cyber RT是一个高性能、高吞吐、低延时的计算运行框架,其中,动态加载技术和有向无环图(DAG)是其实现高性能重要途径之一。 Cyber RT采用了基于Component模块和**有向无环图(DAG)**的动态加载配置的工程框架。即将相关算法模块通过Component创建,并通过DAG拓扑定义对各Component依赖关系进行动态加载和配置,从而实现对算法进行统一调度,对资源进行统一分配。采用这个工程框架可以使算法与工程解耦,达到工程更专注工程,算法更专注算法的目的。 Node: cyberRT中的基本组成单元 Reader/Writer: Channel中的消息读写类 Channel: cyberRT中组件间的数据通信总线 DAG: cyber用于描述整个计算拓扑 二、Component类型基类都为ComponentBase 1. 数据驱动的Component支持一路或多路数据...
百度Apollo自动驾驶系统之cyberRT编程:通讯机制实践
参考文献:https://apollo.baidu.com/community/Apollo-Homepage-Document 以及Apollo方面课程 一、通信机制按方式分类: 基于Writer/Reader的通信方式 基于C/S的通信方式 基于参数服务 按作用域分类: 进程内通信(对象指针,函数) 进程间通信(共享内存,管道,消息队列) 跨主机通信(RTPS、GRPC) cyberRT使用的通信方式:进程内采用INTRA(函数与指针),进程间采用SHM(共享内存),跨主机通信采用RTPS(实时发布订阅的网络通信协议) 此外还有一种由Apollo决定的混合通信方式,根据对端的IP和进程PID信息决定采用什么方式进行通信,称为Hybrid 二、基于Write/Reader的通信方式1. 概念 Node:是整个数据拓扑网络中的基本单元,可以根据需求创建和管理Writer、Reader、Service、Client Writer:发布订阅模式中的发布者 Reader:发布订阅模式中的订阅者 Channel:通信中的topic,通过chann...
GM219-S光猫破解
GM219-S光猫破解参考:移动吉比特GM619光猫怎么才能知道超级密码【路由器吧】_百度贴吧 (baidu.com) 一、安装Telnet打开控制面板-程序-添加Windows功能 点击确定后等待安装完成,重启计算机。 重启后打开CMD,输入telnet -v,若有返回,则是安装成功。 二、获取Telnet账号密码访问192.168.1.1/cgi-bin/getGateWay.cgi 如果最后一个是No那么就是光猫Telnet未开启。再次刷新,即可开启。 第二行、第三行即为用户名和密码。 三、登录路由器1telnet 192.168.1.1 8023 然后在Login中输入刚刚在网页中得到的用户名(明文显示) 在Password中输入密码。(TIPS:输入内容不会显示,输入完后直接回车) 如果登录成功情景如下: 四、获取超级管理员密码先后输入: 12shls 看到如下输出: 然后进入tmp文件夹: 1cd tmp 输出ctromfile.cfg文件内容: 1cat ctromfile.cfg 将输出的内容全部复制到一个文本文件中: 按住C...
2024 NewStar CTF比赛有感
2024 NewStar CTF比赛有感前情提要:帮老板娘在她们学校参加她们校内信息安全社的校内赛,笔者第一次了解到了CTF这个比赛,颇觉得有趣,于是撰写如下博客 一、CTF比赛CTF(Capture The Flag,夺旗赛)是一种流行于网络安全技术人员之间的一种信息安全技术竞赛。 其前身是传统黑客之间网络技术比拼的游戏,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。 起源于1996年第四届DEFCON。 现在已成为全球范围网络安全圈流行的竞赛形式。 比赛形式大抵是从加密串、网页、存在漏洞的可执行程序中找到形如flag{}的答案,所以被成为夺旗赛。 题目类型主要包含 Web 网络攻防 、 RE 逆向工程 、 Pwn 二进制漏洞利用 、 Crypto 密码攻击 、 Mobile 移动安全 以及 Misc 安全杂项 这六个类别。 Misc 是英文 Miscellaneous 的前四个字母,杂项、混合体、大杂烩的意思。 Recon(信息搜集) 主要介绍一些获取信息的渠道和一些利用百度、谷歌等搜索引擎的技巧 Encode(编码转换) 主要介绍在 CTF 比赛中一些常见的...
Ranger 妙用
Ranger妙用相信大家在日常生活中总能看到一群人,以vim为主要工具,桌面环境使用平铺式窗口。纯键盘操作在一些技术社区中广受推崇,尤其是在开发者、黑客文化和开源社区中。这种操作方式不仅是一种工具使用习惯,也代表了高效工作、掌控技术的理念。Vim、Emacs 等编辑器自 Unix 时代以来就有着深厚的文化积淀,很多用户在学习过程中受到了这些经典工具的影响,从而养成了纯键盘操作的习惯。这类人群热衷于手指在键盘上跳舞的快感,鼠标对他们来说就是个摆设,连桌面都懒得给它留地方。仿佛手指越少离开键盘,他们的生产力就越接近超能力。他们相信:在键盘上打出一长串复杂命令,才是人生的终极艺术形式。 今天要介绍的ranger就是这样一个工具,而对于这些键盘艺术家来说,Ranger 就是他们心头好。作为一个纯键盘操作的文件管理器,Ranger 可以让你在终端里潇洒地穿梭文件夹、预览文件,靠着几个快捷键轻松完成各种文件操作,而手指只需要在键盘上上下翻飞。 当然,对于我们不那么高贵的(笑)程序员来说,ranger的优势往往体现在我们操作没有图形界面的服务器操作系统时,也能让我们轻松的操作各种文件。 零、特...
Python优雅计划(一)
Python优雅计划众所周知,从OI赛场里出来的选手总有一些奇奇怪怪的编码习惯,而压行缩减代码量又是其最为广为流传的《恶习》之一,我曾经也是他们的一员;对着执行了十几亿次的GTA代码嗤之以鼻,对着Windows的多年屎山表示不屑,然而……时代变了,进入大学的笔者也有幸加入了一个工程性的项目组,写了廖廖几千行的工程性代码。天哪,每当我打开一个月之前的代码时,我都要鼓起莫大的勇气,边看着边咒骂着一个月前的自己。当一个函数套一个try-catch成为习惯,if的缩进套五六层成为常态,字典找不到key的报错成为日常,很显然我也成为了创造屎山代码的一员。这篇文章的产生背景就是这样,我希望以Python为例子,回顾一下如何写出优雅的代码。当然,由于熵增定律的存在,你最终可能还是会创作出一个属于你的屎山(笑),但是笔者寄希望于这篇文章能让你在读自己屎山的时候能减少一点负罪感(大笑)本次Python优雅计划(又称:屎山消消乐计划,乐) 将分为代码规范、模块化编程、Python小技巧和异常处理这四个章节来介绍,或在一篇文章中,或分为两篇文章进行实用性的阐述。 一、代码规范或许在做题时,使用各种稀奇...







