绳牵引并联机器人动态避障方法

绳牵引并联机器人在受限空间中如何躲避动态障碍物,是个有挑战的课题。

来自哈尔滨工业大学(深圳)的熊昊老师团队,开展了一项有趣的研究,论文《Dynamic Obstacle Avoidance for Cable-Driven Parallel Robots With Mobile Bases via Sim-to-Real Reinforcement Learning》发表在SCI&EI收录期刊IEEE Robotics and Automation Letters上。

熊昊老师团队将在2024年ICRA大会上展示相关研究成果。
论文检索页面

研究背景

绳牵引并联机器人(Cable-Driven Parallel Robot,CDPR)是一种使用绳索来代替刚性连杆控制末端执行器位姿的新型并联机器人。

这类机器人结构简单、惯性小、运动空间大、且动态性能良好。非常适用于装备制造、医疗康复、航空航天等领域。由于它可以改变几何结构,非常适用于约束环境下的操作任务。
有4个移动基座的绳牵引并联机器人
绳牵引并联机器人在受限环境中执行操作任务时,可能会遇到轨迹规划方法未考虑的动态障碍物,需要实时避让动作来绕过或越过障碍物。由于高维状态空间、以及多个绳索和移动基座引起的约束,这是个有挑战的课题。

该项研究解决了这个问题。所提出的算法能够实现绳牵引并联机器人及时躲避,避免与障碍物碰撞,并返回到目标轨迹上。
绳牵引并联机器人在规划轨迹中遇到动态障碍物

避障算法

该研究提出了一种基于强化学习(RL)的避障控制器(RL-based OAC),并将其集成到轨迹跟踪控制器(TTC)中,并设计了一种基于Soft Actor Critic(SAC)算法和注意力模块的OAC,用于处理具有固定长度绳索连接到移动基座的绳牵引并联机器人的动态障碍物实时避让问题。

该方法可以处理CDPR的多个约束和高维状态空间,实现了CDPR在实时动态障碍物环境下的动态避障。
基于SAC算法的避障控制器

在Mujoco模拟器中对RL-based OAC进行训练。分别基于两阶段训练策略和一阶段训练策略进行训练。

基于两阶段训练策略训练的OAC集中在5万集以内,OAC的训练时间约为35分钟。基于单阶段训练策略训练的OAC收敛在50万集以内,OAC的训练时间约为5.5小时。两个OAC最终获得了几乎相同的累计奖励。研究表明,使用奖励塑造技术的两阶段训练策略可以加速OAC的训练。

真实实验

在真实环境中,利用训练好的RL-based OAC方法进行实验验证。

实验对象为连接有四个固定长度绳索的四个移动基座的绳牵引并联机器人。使用两种规则的障碍物,一种是高度为0.32米的较低的障碍物,一种是高度为0.92米的较高的障碍物。

CDPR的移动平台可以从上方越过低障碍物,但无法从上方越过高障碍物,只能采取绕行的方式避障。

在实验过程中,由NOKOV度量动作捕捉系统实时获取绳索的位置、移动基座的位置,以及动态障碍物的位置和形状信息。
遇到不同高度障碍物时的躲避动作

遇到不同高度的障碍物时,RL-based OAC方法驱使CDPR采取不同的避障方式,成功地越过或绕过正在移动的障碍物。

参考文献:
Y. Liu, Z. Cao, H. Xiong, J. Du, H. Cao and L. Zhang, “Dynamic Obstacle Avoidance for Cable-Driven Parallel Robots With Mobile Bases via Sim-to-Real Reinforcement Learning,” in IEEE Robotics and Automation Letters, vol. 8, no. 3, pp. 1683-1690, March 2023, doi: 10.1109/LRA.2023.3241801.
原文链接:
https://ieeexplore.ieee.org/document/10035491

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/727307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

golang中go build 后读取配置文件

golang打包后读取配置文件 在用go写代码的时候,为了好用经常使用go build 打包,如果我们用到了配置文件,就总是导致不能找到文件所在位置了出现bug,所以以下代码就解决了这个问题。 核心代码: file, err : exec.Look…

Vue中的v-for中为什么不推荐使用index作为key值

在Vue中,我们经常会用到v-for指令来遍历数组或对象并渲染列表。而在使用v-for指令时,通常会需要给每个遍历的元素指定一个唯一的key值,以帮助Vue更高效地更新DOM。 在很多情况下,我们可能会倾向于使用index作为key值,…

易我分区大师18.2正式上线,赶紧来体验一下

近日,易我科技发布了易我分区大师18.2,该版本在功能和性能上进行了全面的升级和优化,为用户提供更加便捷的磁盘管理体验。 ▲ 易我分区大师18.2版本的首页 易我分区大师是一款功能强大的磁盘分区管理软件,它可以帮助用户轻松地管…

Promisification、微任务

前提摘要 Promise 对象的构造器(constructor)语法如下: let promise new Promise(function(resolve, reject) { // executor }); 传递给 new Promise的函数被称为 executor,当 new Promise 被创建,executor 会自动…

vite+vue3使用UEditorPlus ,后端PHP

vitevue3使用UEditorPlus 百度富文本编辑器是目前所有编辑器中功能最丰富的,但长时间不进行维护了。 之前写了一篇使用UEditor的教程,最近发现一个UEditorPlus,总结一下如何使用 什么是UEditorPlus 基于 UEditor 二次开发的富文本编辑器&…

猫冻干价格差距大的原因是什么?价格合理、性价比高的生骨肉冻干分享

科学养猫知识的普及,铲屎官们逐渐意识到了生骨肉冻干喂养的益处。然而,价格因素仍是部分铲屎官的阻碍。实际上,像我这样的资深铲屎官,早已认识到生骨肉冻干的价值。虽然价格略高于烘焙粮和膨化粮,但其对猫咪的益处是实…

四个有用的Android开发技巧

一. 通过堆栈快速定位系统版本 这个地方主要分享大家两个个技巧,通过问题堆栈简快速定位当前系统版本: 1. 快速区分当前系统版本是Android10以下,还是Android10及以上; 首先Android10及以上引入了一个新的服务Service&#xff…

13年测试老鸟,接口性能测试-压测总结汇总,一文概全...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、概述 性能测试…

如何禁止员工在上班时间利用电脑打游戏逛娱乐网站?

在现代化的工作环境中,电脑已成为员工日常工作的必需品。然而,一些员工可能在上班时间利用电脑进行非工作相关的活动,如打游戏或浏览娱乐网站。这不仅影响个人的工作效率,也可能对团队的整体绩效和公司的文化产生负面影响。因此&a…

python界面开发 - Radiobutton:单选按钮

文章目录 1. python图形界面开发1.1. Python图形界面开发——Tkinter1.2. Python图形界面开发——PyQt1.3. Python图形界面开发——wxPython1.4. Python图形界面开发—— PyGTK:基于GTK1.5. Python图形界面开发—— Kivy1.6. Python图形界面开发——可视化工具1.7. …

【Linux C | 网络编程】多播的概念、多播地址、UDP实现多播的C语言例子

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

如何选择适合您需求的虚拟主机服务

随着互联网的发展,虚拟主机服务在网站托管领域扮演着至关重要的角色。我们在前几天遇到客户咨询如何在Hostease服务商选择适合的主机服务。本文将介绍如何选择适合您需求的虚拟主机服务,以确保您的网站或应用程序能够稳定运行并获得最佳性能。 确定您的需…

常见的验证码

一、短信验证码 前端: 用户填写手机号,点击按钮发送请求用户短信得到验证码后,用户填写表单提交 form 表单,进行验证 后台: 随机生成几位验证码并将生成时间、手机号、验证码存储起来,可以存到session、…

小游戏加固方案已全面适配微信、QQ、抖音、快手、美团、华为、支付宝渠道

2023年,国内移动游戏收入与游戏用户规模双双创下历史新高。其中小游戏异军突起,市场规模达到200亿元,同比增长300%,成了万众瞩目的行业新风口。 小游戏的高速发展带来了更多的活力,产出了多款月流水过亿的热门游戏。行…

webpack编译报错Cannot find module ‘@babel/core‘且无法识别es6的reset语法

~ npm install babel-core babel-loader --save-dev 用了这个指令后webpack报错 尝试重新下载了babel-core babel-loader 还是不行 Cannot find module babel/core babel-loader8 requires Babel 7.x (the package babel/core). If youd like to use Babel 6.x (babel-core), …

Matter 笔记1-环境准备,编译

不要远程登录Ubuntu输入以下命令,原因:ubuntu/linux上的http代理设置 1. 准备 1.1 工具 Ubuntu 22.04 LTSClash 里General的端口设置到ubuntu 的网络设置里 1.2 代码 这里使用芯科整理过的代码 git clone https://github.com/SiliconLabs/matter.…

3. springboot中集成部署vue3

1. vue3构建 构建命令 npm run build&#xff0c; 构建的结果在disc目录&#xff1a; 2. springboot集成 2.1 拷贝vue3构建结果到springboot resources/static目录 2.2 springboot pom依赖 添加thymeleaf依赖 <dependency><groupId>org.springframework.boot</…

Rust错误处理和Result枚举类异常错误传递

Rust 有一套独特的处理异常情况的机制&#xff0c;它并不像其它语言中的 try 机制那样简单。 首先&#xff0c;程序中一般会出现两种错误&#xff1a;可恢复错误和不可恢复错误。 可恢复错误的典型案例是文件访问错误&#xff0c;如果访问一个文件失败&#xff0c;有可能是因…

乔琼:高性能会议传声器的产品优化设计| 演讲嘉宾公布

一、智能家居与会议系统 智能家居与会议系统分论坛将于3月28日同期举办&#xff01; 智能会议系统它通过先进的技术手段&#xff0c;提高了会议效率&#xff0c;降低了沟通成本&#xff0c;提升了参会者的会议体验。对于现代企业、政府机构和学术界是不可或缺的。在这里&#x…

arm系统构建的基础知识

目录 一、环境变量 二、归档和压缩 (一) 常用命令 (二) 常用参数 三、磁盘分区和挂载 四、网络管理 一、环境变量 显示环境变量 —— echo设置临时环境变量 —— exportecho $PATH —— 显示当前PATH环境变量 在当前目录下&#xff0c;编写一个hello.c 编译并运行。 图…