![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
人工智能
文章平均质量分 83
小海聊智造
专注于设计和构建可扩展、高性能和可靠的软件系统。我拥有十年以上的行业经验,涵盖多个领域,包括企业级应用、云计算,AI智能 和大数据处理。
热衷于解决复杂的技术挑战,并通过创新的架构设计提供可持续的解决方案。我具备深厚的技术功底,熟悉多种编程语言和技术栈,如Java、Python、go等, 熟悉微服务架构和分布式系统设计。我善于分析业务需求和技术要求,提供可行的技术方案,并在团队中推动其实施和落地。
展开
-
视觉SLAM中的数学基础01 -3D空间的位置表示
定义:世界坐标系是一个三维笛卡尔坐标系,通常由三个正交的轴(X轴、Y轴和Z轴)构成。在SLAM系统中,世界坐标系的原点通常选择为某个固定位置,如机器人的初始位置、地图的某个基准点等。欧拉角是一种用来描述三维旋转的方式,通过三个角度来表示物体绕固定坐标轴的旋转。这三个角度通常称为俯仰角(Pitch)、横滚角(Roll)和 偏航角(Yaw),分别表示绕X轴、Y轴和Z轴的旋转。四元数是一种扩展的复数,由一个实数部分和一个三维向量部分组成。原创 2024-08-09 14:28:07 · 1026 阅读 · 0 评论 -
初识SLAM(Simultaneous Localization and Mapping,即时定位与地图构建)
SLAM(Simultaneous Localization and Mapping,即时定位与地图构建)是一种用于移动机器人或无人系统的技术,旨在解决机器人在未知或不完全已知的环境中同时进行定位和地图构建的问题。具体来说,SLAM技术让机器人在探索新的环境时能够:定位(Localization):确定自身在环境中的精确位置和姿态(即方向)。地图构建(Mapping):生成周围环境的地图,这可以是二维(2D)或者三维(3D)的,反映环境中的障碍物、地形特征等。原创 2024-08-09 10:39:42 · 869 阅读 · 0 评论 -
相机标定(Camera Calibration)
相机标定(CameraCalibration)是确定相机内部参数(如焦距、光学中心、畸变系数等)和外部参数(如相机在世界坐标系中的位置和姿态)的一种过程。原创 2024-07-31 15:46:21 · 437 阅读 · 0 评论 -
机器人自主完成标定的方案构思
不同的自主标定方案各有优缺点,具体选择需要根据应用场景和需求进行权衡。以下是一些建议:高精度和独立性要求高:选择自标定算法,适用于单个机器人高精度操作场景。快速标定和协作要求高:选择多机器人协作标定,适用于多机器人系统和大规模生产线。环境变化大和自适应要求高:选择人工智能和机器学习标定,适用于复杂和动态变化的环境。实时调整和高精度要求高:选择在线标定,适用于需要持续高精度操作的场景。系统集成和自动化要求高:选择智能控制系统标定,适用于需要高集成度和自动化的场景。原创 2024-07-31 14:32:02 · 603 阅读 · 0 评论 -
机器人系统ros2-开发学习实践16-RViz 用户指南
视图面板还允许您创建不同的命名视图,这些视图会被保存并可在其中切换。视图由目标框架、相机类型和相机姿势组成。您可以通过单击视图面板的“保存”按钮来保存视图。原创 2024-05-30 13:24:17 · 1760 阅读 · 0 评论 -
机器人系统ros2-开发学习实践15-模拟用 URDF 建模 步行机器人行走示例
在second_ros2_ws/src/urdf_tutorial_r2d2/urdf_tutorial_r2d2/ 目录下新增文件 state_publisher.py。打开编辑器并粘贴以下代码,将其保存为second_ros2_ws/src/urdf_tutorial_r2d2/launch/demo.launch.py。创建一个新second_ros2_ws/src/urdf_tutorial_r2d2/launch文件夹。Visual: 描述一个白色的圆柱体,半径为0.20,长度为0.6。原创 2024-05-27 11:32:07 · 1082 阅读 · 0 评论 -
机器人系统ros2-开发学习实践14-建立可移动机器人模型
我们将修改上一教程中制作的Urdf 模型,使其具有可移动关节。在之前的模型中,所有关节都是固定的。现在我们将探讨其他三种重要的关节类型:连续关节、旋转关节和棱柱关节。运行在Rviz 的效果如下:然而,现在还会弹出一个 GUI,允许您控制所有非固定关节的值。玩一下模型,看看它是如何移动的。然后,我们可以看看我们是如何实现这一目标的。原创 2024-05-18 16:08:03 · 729 阅读 · 0 评论 -
机器人系统ros2-开发学习实践12-给机器人模型添加物理和碰撞属性
在本教程中,我们将了解如何向 URDF 模型添加一些基本物理属性以及如何指定其碰撞属性。原创 2024-05-16 13:17:20 · 822 阅读 · 0 评论 -
机器人系统ros2-开发学习实践10-从零开始构建视觉机器人模型(urdf)
在本教程中,我们将构建一个看起来像 ROS2 的机器人视觉模型。在后面的教程中,您将学习如何阐明模型、添加一些物理属性以及使用 xacro生成更简洁的代码,但现在,我们将专注于获得正确的视觉几何原创 2024-05-13 09:57:27 · 1116 阅读 · 0 评论 -
轮子运动学约束
因此,它相对于底盘的角度是固定的,因而限制了沿轮子平面前后运动和围绕与地面接触点的转动。轮子平面相对于底盘的角度用表示,因为固定标准轮是不可操纵的,所以B是固定的。具有半径r的轮子可随时转动,所以它围绕它的水平轴转动的位置是时间t的函数:&(t)我们假定轮子的平面总是保持垂直,且在所有的情况下,在轮子与地面之间只有一个单独的接触点。正如在3.2.2节中所示那样,单独轮子的运动以后可以被联合起来计算整个机器人的运动。如在第2章所讨论那样,有四种基本的轮子类型,它们各具变化广泛的运动学参数。原创 2024-05-13 09:51:12 · 241 阅读 · 0 评论 -
移动机器人运动学(摘自自主移动机器人导学)
机械手的工作空间是至关重要的,因为它定义了相对于它环境的固定装置,以及它的终端执行器可以达到的可能位置的范围。移动机器人的工作空间同样是重要的,因为它定义了在移动机器人的环境中,它能实现的可能姿态的范围。然后用该概念,我们展示简单的前向运动的运动学模型,描述机器人作为一个整体,它的几何特征和单个轮子行为的函数是怎样的。不过,有几个重要的假设会简化上述的陈述。此外,由于滑动,运动估计不准确,精确地测量移动机器人的位置显然是一个极具挑战性的任务了解机器人的运动过程,描述各轮对运动所作的贡献是过程的开始。原创 2024-05-11 09:37:45 · 541 阅读 · 0 评论 -
轮式机器人简介
迄今为止,轮子一般是移动机器人学和人造交通车辆中最流行的运动机构。它可达到很高的效率,如图所示,而且用比较简单的机械就可实现它的制作。另外,在轮式机器人设计中,平衡通常不是一个研究问题。因为在所有时间里,轮式机器人一般都被设计成在任何时间里所有轮子均与地接触。因而,3个轮子就足以保证稳定平衡。虽然我们将在下面看到,两轮机器人也可以稳定。如果使用的轮子多于3个,当机器人碰到崎岖不平的地形时,就需要一个悬挂系统以使所有轮子保持与地面接触。轮式机器人放在及,而不是担心平衡。原创 2024-05-10 11:04:18 · 1352 阅读 · 0 评论 -
机器人系统ros2-开发实践08-了解如何使用 tf2 来访问坐标帧转换(Python)
tf2 库允许你在 ROS 节点中查询两个帧之间的转换。这个查询可以是阻塞的,也可以是非阻塞的,取决于你的需求。下面是一个基本的 Python 示例,展示如何在 ROS 节点中使用 tf2 查询帧转换。本教程假设您已完成tf2 静态广播器教程 (Python)和tf2 广播器教程 (Python)。在上一个教程中,我们创建了一个learning_tf2_py包。原创 2024-05-10 10:04:26 · 1654 阅读 · 1 评论 -
腿式移动机器人
腿式运动以一系列机器人和地面之间的点接触为特征。其主要优点包括在粗糙地形上的自适应性和机动性。因为只需要一组点接触,所以只要机器人能够保持适当的地面步距,这些点之间的地面质量是无关紧要的。另外,只要行走机器人的步距大于洞穴的宽度,它就能跨越洞穴或者裂口。腿式运动的最后一个优点是,有高度的技巧来操纵环境中的物体。举一个精彩的昆虫例子,即甲壳虫,它用灵巧的前肢在运动的同时能够滚动一个球。腿式运动的最主要的缺点包括动力和机械的复杂性。原创 2024-05-09 14:45:27 · 456 阅读 · 0 评论 -
机器人运动分析(摘录自主移动机器人导论2)
此外,细胞是能极小化的微观组件,由于微小的尺寸和重量,昆虫达到了人类制造技术还一直不能做到的鲁棒性水平。最后,大型动物和昆虫所用的生物能量存储系统、肌肉及液压激励系统,其产生的转矩、响应时间和转换效率远远超过了同等规模的人造系统。不同类型的机器人具有不同的运动机制,这些机制影响着它们如何与环境互动以及它们能够执行的任务类型。要么使用数目不多的有关节的腿—种生物运动方法的最简单形式,所以像一些运输的机器人目前更多是都是轮式机器人。一般来说,和轮式运动相比,腿式运动要求更高的自由度,因此有更大的机械复杂性。原创 2024-05-09 10:56:43 · 343 阅读 · 0 评论 -
机器人种类分析
服务机器人有广泛的应用场景,如餐厅、酒店、医院、超市等场所,可以提供导购、语音助手、保洁等服务,减轻人类工作压力,提高服务质量。商用机器人是指专门为商业领域设计和生产的机器人,如智能家居机器人、安防机器人、物流机器人等。特种机器人是为了特定任务而设计的机器人,如矿山勘探机器人、消防救援机器人、海洋探测机器人等。每种类型的机器人都具有特定的设计和功能,旨在最大化其在特定应用中的效率和效果。常用于运输、配送和巡逻。娱乐机器人包括弹奏乐器的机器人、舞蹈机器人玩具机器人等,也包括根据环境而改变动作的机器人。原创 2024-05-09 10:33:48 · 919 阅读 · 0 评论 -
机器人系统ros2内部接口介绍
内部接口主要有两个:ROS中间件接口(rmw API)ROS客户端库接口(rcl API)API rmw是ROS 2 软件堆栈和底层中间件实现之间的接口。ROS 2 使用的底层中间件是 DDS 或 RTPS 实现,负责发现、发布和订阅机制、服务的请求-回复机制以及消息类型的序列化。该rcl API是一个稍高级别的API,用于实现客户端库,不直接接触中间件实现,而是通过 ROS 中间件接口 ( rmw API ) 抽象来实现。原创 2024-05-07 11:01:19 · 1124 阅读 · 0 评论 -
机器人系统ros2-开发实践07-将机器人的状态广播到 tf2(Python)
上个教程将静态坐标系广播到 tf2,基于这个基础原理这个教程将演示机器人的点位状态发布到tf2。原创 2024-05-07 10:38:32 · 1240 阅读 · 0 评论 -
机器人系统ros2-开发实践06-将静态坐标系广播到 tf2(Python)-定义机器人底座与其传感器或非移动部件之间的关系
发布静态变换对于定义机器人底座与其传感器或非移动部件之间的关系非常有用。例如,最容易推断激光扫描仪中心框架中的激光扫描测量结果。原创 2024-05-06 09:45:05 · 1174 阅读 · 2 评论 -
机器人系统ros2-开发实践05-ROS2 中 tf2的定义及示例说明
tf2的全称是transform2,在ROS(Robot Operating System)中,它是专门用于处理和变换不同坐标系间位置和方向的库。tf2是ROS2中一个重要的组件,因为在机器人的许多应用中,正确理解各个部件如何相对于彼此移动是至关重要的。一旦turtlesim启动,您可以使用键盘箭头键在turtlesim中驱动中央乌龟,选择第二个终端窗口,以便捕获您的击键来驱动乌龟。在侧栏中,您将看到 tf2 广播的帧。tf2_echo当侦听器接收通过 ROS 2 广播的帧时,您将看到显示的转换。原创 2024-04-30 13:51:08 · 1390 阅读 · 0 评论 -
机器人系统ros2-开发实践04-ROS 2 启动文件管理大型项目的最佳实践
机器人上的大型应用通常涉及多个互连的节点,每个节点可以有许多参数。海龟模拟器中模拟多只海龟就是一个很好的例子。海龟模拟由多个海龟节点、世界配置以及 TF 广播器和监听器节点组成。在所有节点之间,存在大量影响这些节点的行为和外观的 ROS 参数。ROS 2启动文件允许我们在一个地方启动所有节点并设置相应的参数。原创 2024-04-29 16:01:28 · 995 阅读 · 0 评论 -
人形机器人核心架构梳理
定义:机器人是能进行运动、操纵或定位且具有一定程度自主能力的可编程执行机构。按外在形态分类可分为传统机器人和人形机器人,其中人形机器人是一种利用人工智能和机器人技术制造的具有类似人类外观和行为的机器人。原创 2024-04-28 16:36:03 · 2370 阅读 · 0 评论 -
机器人系统ros2-开发实践03-监听节点的参数变化(C++)
本教程将向您展示如何使用 ParameterEventHandler 类的 C++ 版本来监视节点自身参数的更改以及另一个节点参数的更改。接下来SampleNodeWithParameters是一个典型的main函数,它初始化 ROS,示例节点以便它可以发送和接收消息,然后在用户在控制台输入 Ctrl +C 后关闭。执行此命令后,您应该在parameter_event_handler窗口中看到输出,表明在参数更新时调用了回调函数。您的终端将返回一条消息,验证您的包及其所有必需文件和文件夹的创建。原创 2024-04-26 11:43:03 · 956 阅读 · 1 评论 -
机器人系统开发ros2-基础实践02-自定义一个机器人动作aciton服务端和客户端(c++ 实现)
aciton 是 ROS 中异步通信的一种形式。操作客户端向操作服务器发送目标请求。动作服务器将目标反馈和结果发送给动作客户端。原创 2024-04-25 10:16:04 · 1504 阅读 · 1 评论 -
机器人系统开发ros2-基础实践01-学会自定义一个机器人动作aciton实体类
您之前在了解操作教程中了解了action。与其他通信类型及其各自的接口(主题/消息和服务/srv)一样,您也可以在包中自定义操作。本教程向您展示如何定义和构建可与您将在下一个教程中编写的action服务器和action 客户端一起使用的操作。需要理解action 可以回到这篇文章。原创 2024-04-23 13:28:57 · 1399 阅读 · 0 评论 -
激光三角测距原理详述
激光三角测距法作为低成本的激光雷达设计方案,可获得高精度、高性价比的应用效果,并成为室内服务机器人导航的首选方案,本文将对激光雷达核心组件进行介绍并重点阐述基于激光三角测距法的激光雷达原理。原创 2024-01-25 16:18:38 · 674 阅读 · 0 评论 -
ros2 基础学习 ros2 doctor 诊断工具(平台,版本,网络,环境,正在运行的系统)
当ROS 2安装程序未按预期运行时,可以使用 ros2 doctor工具检查其设置。ros2 doctor检查ROS 2的所有方面,包括平台,版本,网络,环境,正在运行的系统等,并警告您可能的错误和问题原因。ros2 doctor仅在Eloquent及更高的版本中可以使用。ros2 doctor是ros2cli包的一部分。只要我们安装了ros2cli,我们就能够使用ros2 doctor,通常我们安装ros2的时候就安装了这个包。原创 2024-01-25 16:17:39 · 564 阅读 · 0 评论 -
ros2仿真学习04 -turtlebot3实现cartographer算法建图演示
urtlebot3实现cartographer算法建图演示原创 2024-01-18 13:28:45 · 1562 阅读 · 0 评论 -
ROS2 仿真教程 基于humble版本机器人安装
ros2与turtlebot3仿真教程-启动gazebo不同环境。删掉出错不影响使用然后编译就通过了。安装cartographer建图。原创 2024-01-18 13:14:08 · 880 阅读 · 0 评论 -
ros2 基础学习16 - RQT:模块化可视化工具
正如RQT的命名,它和Rviz一样,也是基于QT可视化工具开发而来,在使用前,我们需要通过这样一句指令进行安装,然后就可以通过rqt这个命令启动使用了。安装注意自己ros2 的版本,我的是humble启动rqt启动成功后如图里边可以加载很多小模块,每个模块都可以实现一个具体的小功能,一些常用的功能如下:日志显示:也可以通过命令行方式启动从启动的界面可以看到有三个部分Console用来过滤日志等级的…:自定义过滤现在我们新开命令窗口,启动一个小乌龟节点。原创 2024-01-17 17:32:56 · 2357 阅读 · 0 评论 -
ros2 基础学习 15- URDF:机器人建模方法
如何使用这样一个文件描述机器人呢?比如这个机械臂,大家可以看下自己的手臂,我们的手臂是由大臂和小臂组成,他们独自是无法运动的,必须通过一个手肘关节连接之后,才能通过肌肉驱动,产生相对运动。fixed,固定关节,是唯一一种不允许运动的关节,不过使用还是比较频繁的,比如相机这个连杆,安装在机器人上,相对位置是不会变化的,此时使用的连接方式就是Fixed。ROS中的建模方法叫做URDF,全称是统一机器人描述格式,不仅可以清晰描述机器人自身的模型,还可以描述机器人的外部环境,比如这里的桌子,也可以算作一个模型。原创 2024-01-08 14:34:18 · 2085 阅读 · 0 评论 -
ros2 基础学习14-- Launch:多节点启动与配置脚本
到目前为止,每当我们运行一个ROS节点,都需要打开一个新的终端运行一个命令。机器人系统中节点很多,每次都这样启动好麻烦呀。有没有一种方式可以一次性启动所有节点呢?答案当然是肯定的,那就是Launch启动文件,它是ROS系统中多节点启动与配置的一种脚本。这是一个完整的Launch文件,乍看上去,好像Python代码呀,没错,ROS2中的Launch文件就是基于Python描述的。原创 2024-01-08 14:32:53 · 2640 阅读 · 0 评论 -
ros2基础学习13 DDS 通信得学习
好啦,说了半天DDS,到底啥意思呢?我们来做一个完整的介绍DDS的全称是Data Distribution Service也就是数据分发服务,2004年由对象管理组织OMG发布和维护,是一套专门为实时系统设计的数据分发/订阅标准,最早应用于美国海军, 解决舰船复杂网络环境中大量软件升级的兼容性问题,现在已经成为强制标准。DDS强调以数据为中心,可以提供丰富的服务质量策略,以保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。原创 2024-01-02 17:35:26 · 1384 阅读 · 0 评论 -
ros2 基础学习12 分布式通信
我们先要给树莓派装系统,这里我们选择的是Ubuntu Mate针对树莓派的镜像,下载镜像之后,烧写到树莓派的SD卡中就可以启动系统了。不过ROS系统都已经为我们设计好了,我们只需要在每一个电脑上配置好ROS环境,功能开发上完全不需要做任何变化,实现非常方便。接下来我们打通两个计算平台的通信能力。类似的方法会频繁用到,ROS为分布式网络的搭建提供了非常友好的支持,我们几乎不需要任何配置,代码也不需要做任何修改。之前我们也讲过,在ROS系统中,机器人功能是由各种节点组成的,这些节点可能位于不同的计算机中。原创 2024-01-02 17:34:59 · 2076 阅读 · 0 评论 -
opencv进阶09-视频处理cv2.VideoCapture示例(打开本机电脑摄像头)
cv2.VideoCapture 类的常用函数包括初始化、打开、帧捕获、释放、属性设置等,下面对这些函数进行简单的介绍。1. 初始化OpenCV 为 cv2.VideoCapture 类提供了构造函数,用于打开摄像头并完成摄像头的初始化工作。该函数的语法格式为:捕获对象=cv2.VideoCapture(“摄像头 ID 号”)式中:“摄像头 ID 号”就是摄像头的 ID 号码。需要注意的是,这个参数是摄像设备(摄像头)的 ID 编号,而不是文件名。其默认值为-1,表示随机选取一个摄像头;原创 2023-08-17 14:49:15 · 6351 阅读 · 0 评论 -
Isaac Sim 仿真机器人urdf文件导入
本教程展示如何在 Omniverse Isaac Sim 中导入 urdf。原创 2023-12-25 11:05:07 · 2709 阅读 · 5 评论 -
ros2 基础学习11-参数的定义及示例
话题、服务、动作,不知道这三种通信机制大家是否已经了解清楚,本节我们再来介绍一种ROS系统中常用的数据传输方式——参数。类似C++编程中的全局变量,可以便于在多个程序中共享某些数据,参数是ROS机器人系统中的全局字典,可以运行多个节点中共享数据。ros2 的参数定义和基本使用和ros1 基本一致,如果了解ros1 参数的 这节 就随便看看就可以了。原创 2023-12-25 10:07:10 · 285 阅读 · 0 评论 -
机器人系统开发ros2-基础学习11-机器人aciton动作功能的定义及开发示例
机器人是一个复杂的智能系统,并不仅仅是键盘遥控运动、识别某个目标这么简单,我们需要实现的是送餐、送货、分拣等满足具体场景需求的机器人。在这些应用功能的实现中,另外一种ROS通信机制也会被常常用到——那就是动作。从这个名字上就可以很好理解这个概念的含义,这种通信机制的目的就是便于对机器人某一完整行为的流程进行管理。原创 2023-12-22 10:17:29 · 1795 阅读 · 0 评论 -
ros2 基础学习10 ros 中服务的定义及示例
话题通信可以实现多个ROS节点之间数据的单向传输,使用这种异步通信机制,发布者无法准确知道订阅者是否收到消息,本讲我们将一起学习ROS另外一种常用的通信方法——服务,可以实现类似你问我答的同步通信效果。原创 2023-12-22 09:18:18 · 212 阅读 · 0 评论 -
ROS2 学习09--ros 中的通信接口的定义以及如何创建自定义msg、srv和action文件
ROS2通过自带rosidl_default_generators包来为自定义的msg、srv和action文件生成各个语言的头文件!ROS2通过在CMakeLists.txt中调用新增的宏rosidl_generate_interfaces来为msg、srv和action文件生成各个语言的头文件!而这个宏的实现定义在rosidl_default_generators包。原创 2023-12-21 13:16:08 · 2387 阅读 · 1 评论