ros订阅图片python_ROS带你穿越仿真与现实

7f20f85f30284694ec943f5a1d781bce.gif了解更多技术干货● 点击蓝字关注我们 ●

ROS机械臂仿真

01

什么是ROS?

ROS: Robot Operating System 是机器人操作系统的英文缩写。ROS是用于编写机器人软件程序的一种具有高度灵活性的软件架构。它包含了大量工具软件、库代码和约定协议,旨在简化跨机器人平台创建复杂、鲁棒的机器人行为这一过程的难度与复杂度。

—— 摘自百度百科

d5067b85-5f4a-eb11-8da9-e4434bdf6706.gif

以上视频展示了我们的三轴机械臂通过ROS实现了定点抓取和放置目标物体的 仿真 与 实物联调 。 在测试环境下为了实现ROS仿真和机械臂连接,以及仿真与实物同步控制抓取实物的效果,我们在PC机上安装 ROS 。 给定机械臂抓取目标物体的坐标位置,蓝色正方块的初始位置坐标为X=0.3、Y=-0.3、Z=0.18。识别物体位置后通过 机械臂逆向运动学原理 ,即知道机械臂 末端坐标 (目标物体坐标),运用 几何算法 求解各个关节需要 旋转的角度 。最后将关节转动角度数据通过通讯协议串口发送到Arduino,驱动步进电机,实现机械臂抓取物体。同理在系统中设置机械臂放置蓝色正方块的位置坐标点(X=0.4242、Y=-0.01、Z=0.18),运用运动学原理和算法规划机械臂的运动轨迹,实现机械臂定点放置物体的动作。

02

为什么用ROS仿真?

1. ROS支持C++、python多种开发语言,方便代码重用,研究人员间可有效地交流,加快机器人产品的原型设计和算法开发验证。

2. 便利的数据记录、分析、仿真工具,方便调试。

3. 开发者可以用ROS的基础框架配合选定的功能包快速实现系统原型,使得开发人员将更多时间用于核心算法的开发改进上。也可以单独选用某些功能包,将其集成在已有产品中,实现特定功能。

4. ROS开源平台除提供官方的功能包外,还聚合大量的开源功能包,开发者可根据机器人所需功能灵活添加功能模块,方便开发人员快速搭建原型。为开发人员提供了便捷的开发环境,极大降低了机器人领域的进入门槛。

我们为什么要做机械臂仿真测试?

传送门往期知识分享:机器人拍了拍你,仿真测试了解下

03

机械臂仿真与实物联调

第一步: 明确运行 机械臂模型功能包 :通过三维设计软件导出3D机械臂物理模型的URDF文件夹,检验机械臂模型是否符合实际机器人的情况。 第二步: 明确运行 目标物位置功能包 : 目标物的位置坐标信息可通过深度相机传感器获取,但需附加发布相机位置到机械臂基座位置的静态位置转换,这样机械臂各关节点运动位置即可对标相机坐标值。   第三步: 将目标位置功能包和机械臂模型功能包导入ROS生成配置包,运用机械臂逆向运动学原理和几何算法求解各关节运动角度,得到机械臂各关节空间下的运动状态。

运算求解关节转动角度解说

对于机械臂的控制最基本的是对其建立运动学模型,本质就是给定空间3D坐标,求解轴的旋转角度。

02eb2a53caa7ce58a4f4bd0a0faabdbd.png

举例:给定三轴两连杆关节机械臂目标物位置,求解各关节转动角度。

问题通过深度相机传感器获取机械臂抓取目标物体辣椒的位置坐标值为(X,Y,Z),主轴大臂长度为A、连接主轴的小臂长度为B,要求机械臂末端到达目标抓取物辣椒的位置。

求解:大臂转动角度γ

第一步:将大臂转动到与目标物辣椒同一垂直平面。

转动角度为α正切值=Y/X

目标物辣椒到机械臂主轴的水平距离C = √(X²+Y²)

e243b40e679db83300b919dc1632d376.png

第二步:目标物辣椒放置在一定的高度Z。

物体放置点与机械臂底座接连和水平面形成的夹角为β正切值=Z/C

物体距离机械臂底座距离D= √(C²+Z²)

大臂转动离开主轴与抓取物体辣椒的倾斜面形成的角度θ余弦值 = A²+D²-B²/2AD

大臂转动离开主轴的角度γ=90°- β - θ

8ad5b87419e383819dd87a9bd2426112.png 第四步: 将获得的机械臂各关节运动的数据和连杆间位置变化信息放到可视化仿真平台Rviz*中,进行可视化检验。在Rviz中拖动机械臂改变机械臂的位置,点击execute机械臂就可以运动到目标位置。然后也可以在 Gazebo* 里观察物理仿真结果。   注解: Rviz是三维可视化工具,强调把已有的数据可视化显示。Rviz提供了很多插件,这些插件可以显示图像、模型、路径等信息,但是前提都是这些数据已经以话题、参数的形式发布,Rviz做的事情就是订阅这些数据,并完成可视化的渲染,让开发者更容易理解数据的意义。 Gazebo是三维物理仿真平台,可以在Gazebo中创建一个机器人的虚拟仿真环境,不仅可以仿真机器人的运动功能,还可以仿真机器人的传感器数据。

a89fdfada9644fc050675d2feeaebccc.gif

Rviz机械臂仿真界面

第五步: ROS 驱动功能包 订阅机械臂各关节转动的角度数据,通过串口通讯协议发送到机械臂运动控制器Arduino(负责与电机和ROS通讯),从而实现仿真和实物联调的效果。

cff2f022a1d5f5d90d0c61acfc9886a6.png

后记: 本文小编概述如何通过ROS实现机械臂的仿真和实物联调,接下来我们还会详细介绍更多与ROS仿真相关的硬核知识。对ROS感兴趣的小伙伴们请持续关注我们的公众号,获取更多技术干货。也欢迎您将本文分享到朋友圈、点赞、在看,可后台留言小编哦,让我们一起打造智慧星球吧,小伙伴们下周见!

往期推荐

01

●手势识别与控制 | 疫情下的“无接触”模式

► 点击阅读

02

● 三分钟带你了解PID算法

► 点击阅读

03

●机器人NEOR mini 测试ing

► 点击阅读

04

● 机器人目标检测 | 认识你,只需一瞬间

► 点击阅读

5368fdec34c44bd32cdf39e956f48d0c.gif

99bf0b2b941cf22d4696bc9d9fff7305.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值