当前位置: 首页>編程日記>正文

ROS与Vrep

ROS与Vrep

在机器人领域,仿真一般来说包括运动学仿真,动力学仿真,有限元仿真。运动学仿真的功能是观察机器人各关节运动范围,机器人工作范围等可视化功能。动力学仿真确定机械臂力平衡,最高运动速度确定等。有限元仿真主要用来计算负载或者重力变形,也可用计算机器人温度场分布。

v-rep: 动力学仿真 跨平台 多语言
prescan: 无人驾驶仿真
gym: 强化学习仿真环境
openRAVE: 运动规划相关的运动学仿真,主要用于运动规划算法的开发。
gazebo: 和 ROS集成比较方便,类似的教程较多
openGL: 视觉传感器仿真
SimTrack : 基于仿真的大量目标的跟踪和位姿估计

ROS

   ros被称为机器人操作系统,其实ROS充当的是通信中间件的角色,即在已有操作系统的基础上搭建了一整套针对机器人系统的实现框架。ROS还提供一组实用工具和软件库,用于维护、构建、编写和执行可用于多个计算平台的软件代码。

  值得一提的是,ROS的设计者考虑到各开发者使用的开发语言不同,因此ROS的开发语言独立,支持C++,python等多种开发语言。因此,除了官方提供的功能包之外,ROS还聚合了全世界开发者实现的大量开源功能包,如思岚科技(SLAMTEC)就发布了针对其自主研发的激光雷达RPLIDAR的ROS功能包rplidar_ros。这些开源功能包与ROS一起构成了强大的开源生态环境。

  ROS的系统结构设计也颇有特色,ROS运行时是由多个松耦合的进程组成,每个进程ROS称之为节点(Node),所有节点可以运行在一个处理器上,也可以分布式运行在多个处理器上。在实际使用时,这种松耦合的结构设计可以让开发者根据机器人所需功能灵活添加各个功能模块。

  例如,在一个支持SLAM功能的移动机器人中,激光数据采集和里程数据获取分别由两个node实现,用于感知环境;SLAM算法运行在另一个node中,用于处理传感器数据,绘制地图;SLAM节点和数据采集节点之间采用topics方式通信。当新增一个摄像头模块时,仅需在现有结构里增加一个新的视频节点,让其与SLAM节点采用topics方式通信即可,另外两个功能节点不需任何改动。

  ROS构建的室内地图

  与其他开源产品(Linux,GCC等)一样,ROS具有优良的开源基因,松耦合设计方法,可扩展的软件结构,功能复用思想,极大降低了机器人领域的进入门槛,让开发者无需像前人一样走过众多弯路,掌握多种知识后才能开始实现其机器人设计的梦想。开发者可以用ROS的基础框架配合选定的功能包快速实现系统原型,从而让开发人员将更多时间用于核心算法的开发改进上。用户也可以单独选用某些功能包,将其集成在已有产品中,实现特定功能。

  ROS的缺陷与不足

  对于机器人厂家来说,采用ROS进行开发,更多的希望借助系统实现机器人的导航、定位与路径规划,这其中就要依靠SLAM算法(simultaneous localization and mapping,即时定位与地图构建)。

  但作为一个开源项目,ROS也存在一些问题。例如,ROS因为将功能分布在各个节点之中,节点间基于消息机制通信,通讯部分消耗了很多系统资源。尤其是当所有节点位于同一个处理器时,ROS仍然一直执行相应的消息分发,节点间的数据传递通过内存复制,大量的系统资源都浪费在通讯上,使得系统必须选用高性能的处理器和存储系统以弥补损耗。换句话说,利用ROS来实现SLAM,需要配备性能优越的硬件设备,这对于一些小型化嵌入式平台,尤其是实际的机器人产品里,其对计算资源、存储空间的消耗会使成本大幅上升。

  除了ROS本身系统设计的局限性外,利用ROS实现SLAM需要深入的调整优化,需要耗费大量人力与时间成本。更为重要的是,针对具体的机器人产品,如扫地机器人,还需要独特的贴边清扫、折回清扫、多房间自主导航等功能,目前已有的ROS系统,只能实现简单的建图,无法满足扫地机器人的实际需要。

Vrep

Vrep是一款动力学仿真软件,主要定位于机器人仿真建模领域,可以利用内嵌脚本、ROS节点、远程API客户端等实现分布式的控制结构,是非常理想的机器人仿真建模的工具。控制器可以采用C/C++, Python, Java, Lua, Matlab, Octave or Urbi等语言实现。目前大家可能更熟知的是Adams这款建模软件,的确Adams有很多的参考资料,而且国内推广的比较好,但是如果你稍微了解一下Vrep的话,就会深深地被他的亲和的画面和灵活的结构所吸引

  1. V-REP提供了一个统一的框架,它结合了许多强大的内部和外部库,这些库通常可用于机器人模拟。这包括动态模拟引擎,前向/反向运动学工具,碰撞检测库,视觉传感器模拟,路径规划,GUI开发工具以及许多常见机器人的内置模型。

  2. V-REP具有高度可扩展性。V-REP开发人员提供了一个API,允许用户编写添加新功能的自定义插件。您可以将Lua脚本直接嵌入到模拟场景中,例如,处理模拟传感器数据,运行控制算法,实现用户界面,甚至将数据发送到物理机器人。它们还提供了一个远程API,允许用户开发许多编程语言的独立应用程序,这些应用程序能够将数据传入和传出正在运行的V-REP模拟。

  3. V-REP是跨平台的,主要是开源的,并提供免费的教育许可。

我个人认为ROS比较适用于用现有模型对核心算法的研究与改进甚至研发,但不利于机器人结构的设计以及自主研发的机器人的具体动作研究,当需要定义自主研发的机器人的行动,步态以及结构属性的研究时,ROS就不太适用了。

在自主研发的机器人上V-REP由很大的优势,界面化的操作,内嵌的多种模型,简单的关联操作,便利的模型设计,简易的动作控制脚本文件这都体现了V-REP在机器人结构属性的研究上的优势。


https://www.fengoutiyan.com/post/14743.html

相关文章:

  • ROS的意思
  • ROS是什么
  • ros原理
  • ROS爆发
  • ros2和ros1的区别
  • ros产生途径
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機