点PY
付费咨询、有偿辅导+扣扣1224425503
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
realman——基于SDK的pick_and_place
这篇博客主要介绍用官方SDK来实现睿尔曼机械臂的运动控制(从采摘到安放),对于如何获取采摘点的三维坐标不做描述。PS:格式为:x, y, z, qx, qy, qz, qw。在launch文件中加入静态坐标变换节点。PS:moveit实在太拉跨了,用不来。realman官方sdk使用说明。从相机坐标变换到基座标。原创 2023-10-15 21:38:58 · 451 阅读 · 1 评论 -
realman——利用高低电平控制电机的正反转
当单片机的输出端口提供高电平时,控制电机驱动器(例如H桥电路)的高端与电源相连,低端与接地相连,此时,电机会向一个方向旋转;当单片机的输出端口提供低电平时,控制电机驱动器的高端与接地相连,低端与电源相连,此时,电机会向另一个方向旋转。通过改变输出脚的高低电平,可以控制电机的正反转。参考realman的c++ sdk说明。原创 2023-07-12 08:55:37 · 569 阅读 · 0 评论 -
moveit——给机械臂末端添加附着物
【代码】moveit——给机械臂末端添加附着物。原创 2023-06-20 14:58:47 · 324 阅读 · 0 评论 -
moveit——基于octomap的碰撞检测
机械臂对棚顶进行碰撞检测。原创 2023-06-19 17:39:03 · 955 阅读 · 5 评论 -
moveit——在运动过程中保持末端位姿
机械臂在保持姿态的情况下进行运动控制。原创 2023-06-14 16:07:51 · 985 阅读 · 4 评论 -
realman——控制真实的机械臂
MoveIt!完成运动规划后的输出接口是一个命名为“FollowJointTrajectory”的 action,其中包含了一系列规划好的路径点轨迹,与使用 MoveIt!控制 Gazebo中的机械臂不同的是,虚拟机械臂有 gazebo 的 ros_control 插件自动帮我们获取了follow_joint_trajectory 的动作 action 信息,而现在到真实机器人,需要我们自己编程添加一个 server 订阅这个 action 并处理然后控制真实机器人。原创 2023-05-29 13:52:52 · 1208 阅读 · 0 评论 -
realman机械臂手眼标定
aruco 是一种类似二维码的定位标记辅助工具,通过在环境中部署 Markers,可以辅助机器人进行定位,弥补单一传感器的缺陷,纠正误差,本教程使用的手眼标定 easy_handeye 功能包需要借助这个工具进行手眼标定。easy_handeye 是用于手眼标定的功能包之一,借助它可以实现眼在手上和眼在手外的手眼标定,在这里我们介绍使用 easy_handeye 完成眼在手上的手眼标定。原创 2023-05-23 17:46:36 · 1200 阅读 · 0 评论 -
在realsense-ros中设置L515相机为近景模式
在realsense-ros中调用L515相机,默认设置下无法获取近距离的深度信息。原创 2023-05-15 14:00:19 · 582 阅读 · 0 评论 -
基于Aubo SDK的摘取和放置
【代码】基于Aubo SDK的摘取和放置。原创 2023-04-28 10:45:17 · 356 阅读 · 0 评论 -
基于easy_handeye的aubo_i5手眼标定
在python2的环境下,使用pip安装PySide2这个包。解决方法:打开第一个报错的文件,在顶部添加如下代码。分析:python3运行python2的脚本。原创 2023-04-13 16:34:45 · 1577 阅读 · 3 评论 -
基于moveit_calibration的手眼标定
在上述工作空间中,加入自己的机械臂moveit配置功能包,然后在rviz中展示。上述过程一堆坑,下面记录下自己的安装过程。原创 2023-04-05 15:13:18 · 751 阅读 · 1 评论 -
机械臂+底盘三维模型从solidworks到moveit配置功能包
由于我在已经设置好的机械臂中导入的底盘模型,所以这里我就不需要重复设置link以及一些动力学参数,直接导出crm_65_b_description。工具->Tools->Export as URDF。在solidworks中打开sldasm文件。在配合中选择底座平面和机械臂底面进行重合操作。用solidworks软件打开底盘三维模型。选择底座边线和机械臂底面边线进行同轴心操作。文件->另存为,选择step格式。这里面定义了基准轴、点、坐标系。在baselink中加入底盘。原创 2023-03-30 16:56:12 · 1065 阅读 · 2 评论 -
机械臂三维模型从solidworks到moveit配置功能包
ROS目前提供了SolidWorks转URDF的插件,叫做sw_urdf_exporter,从http://wiki.ros.org/sw_urdf_exporter下载sw2urdfSetup.exe文件,下载后点击安装,安装完成后就能在solidworks中导出URDF模型了。检查link配置参数是否有问题,没有问题点击“Export URDF and Meshes”。检查joint配置参数是否有问题,有问题的话可以在此处进行修改,没有问题点击“Next“。设置规划组名称和运动学解方法。原创 2023-03-29 17:45:56 · 913 阅读 · 0 评论 -
在RGBD相机中计算图片像素的空间大小
realsense d435相机内参可以通过realsense SDK的API获取,具体方法可以参考realsense官方文档。原创 2023-03-24 15:55:48 · 376 阅读 · 0 评论 -
如何设置机械臂末端朝向目标物体
机械臂运动到预采摘位置时,末端朝向与目标物体不一致。原创 2023-03-17 16:35:05 · 977 阅读 · 0 评论 -
替换运动学插件TRAC-IK
TRAC-IK 运动学求解器TRAC-IK是由 TRACLabs 开发的反向运动学求解器,它通过线程结合了两个 IK 实现,以实现比常见的开源 IK 求解器更可靠的解决方案。从他们的文件:(TRAC-IK) 为 KDL 中流行的逆雅可比方法提供了一种替代的逆运动学求解器。具体来说,KDL 的收敛算法基于牛顿法,该法在存在关节限制的情况下效果不佳——这对于许多机器人平台来说很常见。TRAC-IK 同时运行两个 IK 实现。一种是对 KDL 基于牛顿的收敛算法的简单扩展,该算法检测并减轻由于随机跳跃的联合限原创 2023-03-15 11:52:48 · 1102 阅读 · 0 评论 -
Universal Robot——用ros_control控制UR5机器人(如何调整PID控制器)
在上一个教程中,我们在Gazebo中设置了UR5机器人,并意识到我们需要一些控制器来移动我们的机器人。Ros_control是一个帮助控制器实现和硬件抽象的包。这是一种为我们的关节设置低级控制的简便方法。在本教程中,我们将看到如何安装ros_control,用每个关节的位置控制器扩展URDF描述,并用一个配置文件将它们参数化。我们还将看看一个简单的技术来调整我们的位置控制器的参数。原创 2023-03-14 19:49:36 · 1197 阅读 · 0 评论 -
Universal Robot——在Gazebo中模拟UR5机器人
今天的目标是在Gazebo安装我们的ur5机器人。Gazebo是一个流行的模拟工具,它不仅可以让你像在Rviz中一样可视化你的机器人,而且还内置了一个物理引擎。这样你就可以在更真实的环境中测试你的机器人应用程序。我们将查看我们需要的属性 添加对我们的机器人——我们的order的描述,以模拟它以及如何在Gazebo中生成我们的机器人。原创 2023-03-14 15:50:13 · 1673 阅读 · 0 评论 -
用KDL在C++中控制UR5机器人的TCP位置——逆向运动学解释
在之前的教程中,我们控制了机器人关节的位置。然而,机器人手臂的最终目标是控制工具中心点(tcp ),在那里我们可能有一个附着的抓取器或任何其他能够操纵我们环境的工具。我们想要命令tcp到空间中的特定位置,更具体地说,在笛卡尔空间中。但是我们如何从控制单身机器人关节直接指挥tcp位置?这就是正向和反向运动学概念的由来。为了真正掌握它,我们将实现一个C++程序,允许我们在笛卡尔空间移动tcp。我们将创建一个ROS节点,使用KDL进行运动学计算,并与Gazebo中的模拟机器人进行交互。原创 2023-03-10 16:18:44 · 1397 阅读 · 1 评论 -
realman——moveit编程示例pick and place
本示例源码为 C++代码,调用了 MoveIt!的 move_group 提供的 C++ API 实现,源代码位置:rm_65_demo/src/pick_place_demo.cpp,具体实现见代码注释。原创 2023-03-09 11:34:45 · 405 阅读 · 0 评论 -
realman——避障规划
本示例源码为 Python 代码,调用了 MoveIt!的 move_group 提供的 Python API 实现,源代码位置rm_65_demo/scripts/moveit_obstacles_demo.py,具体实现见代码注释。原创 2023-03-09 11:18:11 · 376 阅读 · 0 评论 -
realman——MoveIt场景规划
在实际应用中,MoveIt!GUI 提供的功能有限,很多实现需要在代码中完成。MoveIt!的 move_group 也提供了丰富的 C++和 Python 的编程 API,可以帮助我们完成更多运动控制的相关功能。原创 2023-03-09 10:52:03 · 247 阅读 · 0 评论 -
realman——使用Moveit控制Gazebo中的机械臂
MoveIt!与 Gazebo 的联合仿真,其主要思路为搭建 ros_control 和 MoveIt!的桥梁。先在 MoveIt!端配置关节和传感器接口 yaml 文件,将其加载到 rviz 端;再在机器人端配置 ros_control 和接口 yaml 文件,将机器人加载到 Gazebo。最后同时启动加载有 ros_control 的 Gazebo 和加载有 MoveIt 的 rviz,达到联合仿真的目的。原创 2023-03-09 10:12:36 · 702 阅读 · 0 评论 -
利用moveit控制机械臂入门
点到点运动:不需要在笛卡尔空间规划末端轨迹,机器人各个关节运动不需要联动。原创 2023-03-07 10:37:23 · 566 阅读 · 0 评论 -
生成机械臂moveit配置包
基于moveit生成机械臂配置包原创 2023-03-06 19:45:39 · 149 阅读 · 0 评论 -
在RVIZ中可视化UR5机械臂——解释URDF
好消息!你不需要真正的机器人来开始机器人技术。Rviz 是一种 ROS 工具,用于在您的计算机上虚拟地可视化机器人。您所需要的只是机器人模型的虚拟描述,即所谓的 URDF。在本文中,我们将在 Rviz 中可视化 Universal Robots 的 UR5 机器人,并查看其 URDF。我们还将讨论机器人运动学,这是基本概念之一,在进行机器人技术时需要理解。听起来不错?开始吧!原创 2023-03-06 08:59:03 · 813 阅读 · 0 评论 -
moveit——设置机械臂Home位置
现在就可以在此节点上执行命令了,current命令将会返回运动组的当前状态。包括关节的状态(关节1, 2, 3, ……)和末端的状态(px, py, pz, ox, oy, oz, ow)你也可以在Rviz中查看末端执行器的位置姿态。打开连接树:【MotionPlanning】->【joints】,可以查看每个连杆的位置姿态。找到机械臂对应的srdf文件,将上述获取的机械臂各关节弧度值填入到对应的home位置中。为自己程序中设置的,可在srdf中找到,例如我的是manipulator_5。原创 2023-02-23 10:36:43 · 445 阅读 · 0 评论 -
使用带有 Moveit 的深度相机来避免碰撞
使用普通相机,您可以获得特定数量的像素,具体取决于分辨率,以及每个像素的一些颜色信息。使用深度相机,您可以获得有关该像素离相机多远的信息。这样你就知道物体到相机镜头的距离——这就是深度信息。有不同的技术来测量每个像素的深度。一些传感器将特定的光图案投射到物体上,并根据该图案的变形方式计算距离。另一方面,立体相机有两个传感器,彼此之间的距离已知,并通过比较来自两个传感器的数据来计算深度信息。飞行时间相机发出的光被物体反射回来。相机接收反射光并测量发射和接收之间的时间以计算距离。原创 2023-02-21 20:27:28 · 826 阅读 · 0 评论 -
采摘点定位方法
要定位在花梗上的采摘点,关键是决定相对于围栏的所有水平位置、垂直位置和深度。在图6.f中,对于花梗和葡萄簇的点云簇,如果将每列的所有深度数据相加,很容易理解在花梗所在的垂直位置会有一个峰值。同样地,如果将每一行的所有深度数据相加,在花梗和葡萄簇之间将会有一个显著的跳跃。本文为了减少计算量,从求和的直方图中选择峰值数据列进行自上而下的数据值比较。其中,Dj和Dj+1为峰值数据列中从上到下的两个相邻的深度数据值,[C]为跳转阈值。然后,通过从除法点增加一个高度增量Hp,可以很容易地确定拾取点的垂直位置。原创 2023-02-21 16:47:00 · 551 阅读 · 0 评论 -
ROS 教程:使用 Moveit C++ 接口进行拾取和放置任务
本教程展示了如何使用 Moveit C++ 接口实现简单的拾取和放置任务。在上一个教程中,我向您展示了如何为 UR5 机器人手臂和 Robotiq 夹具创建 Moveit 配置,以及如何使用 Rviz 中的 Moveit 插件对其进行控制。现在我们可以使用此配置并使用 C++ 代码命令我们的机器人。在简要介绍界面后,我将介绍我们用于拾取和放置任务的gazebo。之后,我们将逐步完成代码。最后还将学习如何通过将碰撞对象添加到 Planning 场景来避免碰撞。原创 2023-02-17 10:40:04 · 944 阅读 · 0 评论 -
ROS——串口通信
ROS节点程序运行过程中需要获取机器人的传感器信息和发送控制指令,因此不可避免要与机器人进行通信,常见的通讯方式有串口、CAN和网口等,其中串口最为普遍。原创 2023-02-16 17:32:41 · 359 阅读 · 0 评论 -
机器人相关的坐标系
直角坐标系中的机器人的位置和姿态,通过从空间上的直角坐标系原点到工具侧的直角坐标系原点(工具中心点)的坐标值x、y、z和空间上的直角坐标系的相对X轴、Y轴、Z轴周围的工具侧的直角坐标系的回转角w、p、r予以定义。世界坐标系是被固定在空间上的标准直角坐标系,其被固定在由机器人事先确定的位置。用户坐标系是基于该坐标系而设定的。它用于位置寄存器的示教和执行、位置补偿指令的执行等。这是用来定义工具中心点(TCP)的位置和工具姿态的坐标系。关节坐标系中机器人的位置和姿态,以各关节底座侧的关节坐标系为基准而确定。原创 2023-01-16 16:38:21 · 998 阅读 · 0 评论 -
机械臂抓取资料
收集机械臂抓取资料原创 2023-01-11 09:39:33 · 278 阅读 · 0 评论 -
遨博机械臂——自定义初始化位姿
【代码】遨博机械臂——自定义初始化位姿。原创 2023-01-09 16:13:35 · 390 阅读 · 0 评论 -
遨博机械臂——使用moveit编程控制机械臂
将SDK放到自己的功能包内,并在CMakeLists.txt中添加SDK中库和头文件路径。例如在aubo_i5.srdf中group name为manipulator_i5。注意:这里的move_group要和srdf里面的命名保持一致。原创 2023-01-06 15:58:55 · 1225 阅读 · 0 评论 -
遨博机械臂——使用官方demo控制真实机械臂
确保机器人由robot-controller控制,请参见。原创 2023-01-03 16:24:57 · 1278 阅读 · 0 评论 -
遨博机械臂——Melodic环境配置
注意以第二步中打印的实际路径为准。(3)使用catkin工具配置工作空间并进行源码编译,在终端输入如下指令。在终端中输入如下指令,首先进行仿真测试,所以IP地址为127.0.0.1。(2)Gazebo、rviz等依赖安装,终端输入如下指令。(4)安装libprotobuf9,在终端中输入如下指令。(3)修改系统eigen3软链接,在终端中输入如下指令。(2)通过rosdep安装源码依赖,在终端输入如下指令。(1)industrial依赖安装,终端输入如下指令。(5)在终端输入如下指令使能新建的配置文件。原创 2022-12-28 10:22:18 · 483 阅读 · 0 评论 -
机械臂末端执行器汇总
水果采摘机器人能够提高作业效率,降低生产成本,实现自动化采摘。末端执行器是采摘机器人实现采摘的关键部件,与采摘目标直接接触,能够把果实从作物上分离,负责引导采摘机器人定位目标果实进行采摘,直接影响采摘机器人的作业效率和果实损伤率,在提高采摘机器人采摘效率和作业稳定性方面发挥着非常重要的作用。采摘机器人作业时,抓取果实或者果梗的原理主要有吸入式、夹持式和吸持式。采用吸入式的末端执行器通过吸盘、吸管等,利用负压原理直接抓取果实,对果实的损伤较小,响应较快,但抓持力有限,常用于球形或半球形并且重量较轻的果实,如草原创 2022-12-08 10:22:03 · 2720 阅读 · 0 评论 -
像素坐标到世界坐标的转换
注意:直接变换是直接根据变换公式获得,实际上包含pixel到camera和camera到world,实际上和顺序变换一样,通过顺序变换可以更清晰了解变换过程。下式为像素坐标pixel与世界坐标world的变换公式,右侧第一个矩阵为相机内参数矩阵,第二个矩阵为相机外参数矩阵。M为相机内参数矩阵,R为旋转矩阵,t为平移矩阵,zconst为目标点在世界坐标Z方向的值,此处为0。相机中有四个坐标系,分别为world,camera,image,pixel。objectPoints,输入世界坐标系中点的坐标;原创 2022-11-30 09:38:55 · 8538 阅读 · 2 评论 -
Grasp Detection论文、代码汇总
在这项工作中,我们引入了一种新颖的、端到端可训练的基于cnn的架构,以提供适用于并行板夹钳的抓取检测和语义分割。利用此基础,我们提出了一种新的细化模块,利用先前计算的抓取检测和语义分割,进一步提高了抓取检测的精度。我们提出的网络提供了最先进的精度在两个流行的抓取数据集,即康奈尔和提花。作为额外的贡献,我们为OCID数据集提供了一个新的数据集扩展,使在高度具有高度挑战性的场景中评估抓取检测成为可能。利用这个数据集,我们展示了语义分割可以另外用于将抓取候选对象分配给对象类,这可以用于选择场景中的特定对象。原创 2022-11-25 16:03:43 · 1087 阅读 · 0 评论