My experience on Player/stage/gazebo installation

ROS实践(一)虚拟仿真平台Stage/Gazebo(虚实结合) 本文介绍了ROS中两种主流仿真工具Stage和Gazebo的区别与应用。Stage是轻量级2D仿真工具,适合大规模群体仿真;Gazebo则是功能强大的3D物理仿真环境,支持复杂物理交互和传感器建模。文章详细讲解了Stage仿真的三个核心功能实现:圆形轨迹控制、直线往返运动以及在RViz中显示轨迹。同时,系统介绍了Gazebo仿真的完整工作流程,包括模型创建、世界文件构建、机器人导入、传感器添加以及SLAM建图和导航功能实现。最后针对多机器人控制等常见问题提供了解决方案,包括话题重映射和.world文件修改方 阅读详情
转贴自“龙井的平淡”的Space: http://xgsdcy.spaces.live.com/blog/cns!161c798d8c51bd0e!739.entry
 
我必须要说这是一个曲折的过程,完整的安装Player/stage/gazebo这三个软件并且使其工作是件不容易的事情。因为它耗费了我大概一个月的时间。

粗略的讲,Player/stage/gazebo(简称PSG)是用于多移动机器人研究的仿真平台。Stage/gazebo分别是2D和3D图形的虚拟环境,模拟外部世界和机器人本体及传感器,两者的区别在于gazebo模拟了物体的动力学过程而使仿真更逼真(看起来有点象3D游戏)。Player是运行于stage/gazebo之上的服务器,向客户端的机器人控制程序提供传感器数据、从客户端接受控制命令(数据),优点在于封装了底层机器人硬件上的具体实现,上层控制程序不必分辨被控对象是仿真的还是真实的机器人。

PSG不是商业化的软件,而是个完全开源的项目。其最初由美国南加州理工大学的几个机器人研究者出于方便做实验的目的而开发,在sourceforge上公布后,加入了越来越多的使用者和开发维护者,目前逐渐成为了机器人研究领域中重要的实验平台。

由于PSG运行于基于Linux内核的操作系统中,而且Linux操作系统的发行版本众多,从而使得PSG软件的安装帮助文档难以完善。目前能够获得的帮助只有sourceforge的HTML网页上针对一般Linux系统的安装步骤和散落在mailing list上的某些提示。而这对于工作在某个Linux操作系统上的用户,意味着无尽的噩梦,除非他足够的幸运,幸运到系统预装了所有PSG依赖的基础软件并且版本合适。

毫无疑问,我不是个幸运的人,一台错误的机器和一个错误的操作系统开始了我的噩梦。计算机还是我四年前硕士入学时候的产品,CPU速度与内存容量不是问题,瓶颈在于板上集成的显卡。操作系统是RedHat9,2003年的产品对于飞速变化的开源领域来说已经是老的不能再老的东西了。当然,这些错误都是在一系列碰壁之后才逐渐意识到的,学习的过程要付出代价。开始的时候,我是兴冲冲的计划在一周内搞定,这其中预算了我学习RedHat9的时间。

RedHat9适合入门的学习者,易于安装配置,类似windows。但是在软件包管理与升级方面,让使用者非常头痛,系统常常变得一团糟,尤其是在升级基础支撑软件库的时候。但最糟糕的还是redhat9已经失去技术支持,编译器工具、libc、gtk均已过时。安装Player所需的gsl,安装gazebo所需的SWIG、wxPython等均要从源码编译安装,而这些支撑软件的安装又会引起版本依赖问题。用焦头烂额形容我当时的状况是非常恰当的。费尽九牛二虎之力最终搞定Gazebo的安装,但集成显卡让Gazebo的3D图形显示性能极度的低下;而且安装stage所需的图形库gtk版本要在2.4之上,但RedHat9只提供gtk2.2,无法通过编译。这无异于晴天霹雳,意味着所有以前的工作in vain。

经过一番思量,决定放弃Redhat9,转向新的Linux系统。Fedora Core是RedHat9的后继,但RedHat9上的痛苦经历让我对FC没有产生一丝好感,即使我没有使用的经历。于是,Debian进入我的视线。

Debian是相对著名的GNU/Linux发行版中唯一的非商业组织的产品。软件包的管理和升级极其方便,在可访问Internet的计算机上安装base system后再使用APT命令集就可订制自己的系统环境,运行效率绝非windows和redhat9可比;况且目前的稳定版本Sarge r4有15000多个软件包可用,庞大的软件库总是最具吸引力,省去许多从源码安装的繁琐。当然缺点同在,在不能访问网络的计算机上安装Debian将意味着要预先在其他机器上下载两张DVD光盘(当然如果不装特别的软件、开发包和文档,第一张CD就足够)。我用jigdo软件花费了4天3夜,因为连接国外Debian镜像站点速度较慢,约40-50k/s(国内镜像连接速度较快,但维护较差,未与国外镜像的更新保持同步),正如某位仁兄所说,下载全部Debian是个痛苦的过程。

不过,但凡痛苦总有终点,先苦后甜是有理的。在实验室的机器上安装Debian Sarge r4是如此的顺利,5分钟完成base system,一白天时间学习系统配置和软件包安装、卸载和查询,安装完成X-window、gnome桌面并安装显卡驱动。唯一的遗憾是,中文化的Debian无论如何美化都不如英文的操作系统看着舒服,干脆把英文作为default,不安装中文输入法,反正在Linux上做的事情与中文无关。

在家里进行了Debian上安装PSG的第一次试验,耗费了一天多的时间。这因为我事先没有意识到定制的Debian系统缺少一些编译所需的基础工具和某些支撑软件,而且不知道对于某些已经安装的预编译的支撑库,其头文件作为独立的deb包没有被安装。在configure Player时所提示的结果让我逐渐明白这一点,通过一步步小心翼翼的尝试,正确的方法逐渐明朗,令我兴奋的是所需的软件包在Debian中均有提供,使我免除版本依赖的烦恼。Player和Stage都容易编译安装,Gazebo让我遭遇新的麻烦。Debian有Gazebo所需的第三方软件(libxml2、swig、wxPython、lib3ds、proj、gdal、ode),按照前面安装Player的经验直接利用这些预编译的软件后,很顺利的通过Gazebo的配置和编译过程。但是,在命令行兴奋的键入wxgazebo *.world后,得到的却是“段错误”的提示,我那心哪是拔凉拔凉的啊。这是毫无征兆的错误,顺利完成编译让我更是对这个运行时的错误疑惑不解。

一觉醒来,我躺在床上想是否是因为Debian提供的某个第三方包与开发Gazebo时所用的包在版本上不一致而使得在运行时产生某种内存错误。决定去实验室那个“尚未污染”的系统做第二次安装试验,如果再次失败,就放弃Gazebo这个3D仿真环境,至少2D的可以用。

1小时安装好PS,样例控制程序可用。向师兄做完演示后已临近饭时,剩下20分钟到12点,临时决定草草的试试早晨的想法。插上U盘,copy出lib3ds、proj、ode和gdal的源码包,逐个解压缩。看着飞速的刷屏,不知道最终等待的是成功还是失败。逐个编译安装这四个软件,没有报错,cd gazebo-0.7.0、configure & make install,没有报错。空白的大脑指挥着僵硬的手指输入wxgazebo命令,enter的一刹那,Oh My God!中午可以吃一顿好饭了。 恩赐的幸运终于降临,匆匆的半个小时让结果赋有戏剧性,虽然我尚未学会使用PSG,但这安装成功是在国内外尚无人明确公布Debian上PSG安装步骤的情况下完成,足以让我兴奋一阵。不过,永远别高兴太早,总会有新问题等着去解决。Move on and see what’s ahead waiting for me…………..

 
从零开始:如何选择最适合你的ROS仿真平台(Webots vs. Gazebo vs. Stage) 本文深入对比ROS生态中三大主流仿真平台Webots、Gazebo和Stage的核心特性与性能参数,提供科学的选型指南。Webots以工业级易用性见长,Gazebo在物理仿真方面表现卓越,而Stage则专注于轻量化集群仿真。文章还包含场景化选型建议和性能优化技巧,帮助开发者根据项目需求选择最适合的ROS仿真平台。 阅读详情

相关推荐

启动gazebo时的ogre渲染引擎相关error

解决error:virtual void Ogre::RenderSystem::setDepthBufferFor(Ogre::RenderTarget*),更新nvida最新驱动即可。

hanmoge的博客 1万+

机器人系统常用仿真软件工具介绍、效果与评价指标(2018年更新)

机器人系统常用仿真软件介绍和效果 2018 ROS Melodic的迷失与救赎::https://blog.youkuaiyun.com/column/details/28058.html 2018 GitChat::沉迷机器人操作系统的一个理由和四种修仙秘籍 ROS机器人操作系统在线练习课程正在逐步完善中,目前以ROS官网中文资料制作, 补充参考链接: 1. Robotics simulator:...

zhangrelay的专栏 3万+

Gazebo 问题记录(三)

gdb(GNU Debugger) 是一个功能强大的命令行调试工具,主要用于调试用 C、C++ 等语言编写的程序。启动程序:在调试器的控制下运行程序。暂停程序:让程序在特定点(如断点、异常点)停止执行。检查状态:当程序暂停时,可以查看变量的值、寄存器内容、内存状态、源代码位置等。修改状态:在暂停时,可以改变变量的值或执行流程(需谨慎)。控制执行:单步执行(逐行)、继续运行、跳过函数调用等。分析崩溃最重要的功能之一,就是当程序因为错误(如段错误SIGSEGV、总线错误SIGBUS)而崩溃时,gdb。

zjh2883的博客 1139

Fedora 7安装Gazebo-0.7.0 [player/stage/gazebo]

系统平台:Fedora 7, linux 2.6.21-1.3194gcc & g++: 4.1.2 相比之于Gazebo-0.8,0.7版的Gazebo没有OGRE的专业图像引擎在画质渲染上的支持,所以在画质上,比0.8版的逊色不少。通过对比可明显看出基于OGRE的gazebo的阴影效果几乎达到了专业3D游戏中的水准:Gazebo-0.7.0截图Gaz

弹琴的企鹅 3120

WSL2 Gazebo Ignition 打开报错

Gazebo Ignition 打开报错 terminate called after throwing an instance of ‘Ogre::UnimplementedException‘

机器人控制与仿真应用 1166

Linux环境下Player/Stage平台安装指南

在研究自动化、机器人技术或模拟领域时,Linux下的Player/Stage平台提供了一个开放源码的框架,用于创建多机器人仿真和测试环境。本章将概述Player/Stage平台的安装步骤,为随后的章节搭建基础。首先,我们需要了解Player/Stage平台是如何工作的。Player是一个网络服务器,提供了与不同类型传感器和执行器进行通信的接口。Stage是一个2D机器人仿真器,使用图形引擎创建虚拟的机器人环境。这两个工具的结合可以模拟真实世界的复杂场景,用于开发和测试机器人控制程序。

weixin_35755562的博客 1165

Player/Stage仿真学习(一)

Player/Stage仿真学习(一) ubuntu 16.04环境下,使用Player/stage进行简单的仿真, 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录Player/Stage仿真学习(一)前言一、使用步骤1,文件下载2.运行程序总结 前言 上一节player/stage安装记录中,我们运行了一个.cfg文件来测试player/stage是否安装成功。本小结我们测试一个简单的C++文件,该文件能参考接收到的机器人传感器信息,控制机器人的运行速度及转角度,从而进行

xiaozima123的博客 1514

linux 下 player/stage 平台安装

包含安装的详细步骤和方法,是在linux下的安装方法。我自己就是按照这个方法安装的

Gazebo仿真

在ROS中有3个可以模拟机器人的模拟器软件:Gazebo Stage ArbotiX(就是RVIz) 你可以任选一个: Gazebo是一个仿真环境(平台),可以进行三维机器人动力学仿真等,够模拟复杂和现实的环境中关节型机器人,很强大。可以模拟出完整的现实世界,但是软件使用起来比较复杂。 Stage:简单的2D模拟器,可以管理多个机器人和各种传感器,比如激光传感器。 ArbotiX:它就是Rvi

穿着帆布鞋也能走猫步 1万+

ubuntu下player-stage安装教程

player-stage是比较流行的开源机器人仿真软件,但是安装比较麻烦,本文档可以解决很多安装上的麻烦,希望可以帮助大家,如有错误还请大家指正

Android 系统下Stagefright Player框架介绍

Android 系统下Stagefright Player框架介绍

ROS仿真平台总结

与ROS通讯1 Webots2 Gazebo参考资料 1 Webots Webots是一个开源的三维移动机器人模拟器,它与gazebo类似都是ros中仿真环境,但是对于gazebo而言,需要比较复杂的配置,尤其是涉及到使用GPU的时候,对我们这些初学者并不友好。webot在2018年以前是一款商业软件,商业软件的好处就是安装简单,对用户优化,从2018年以后webot进行了开源(自2018年12月起,Webots作为开放源码软件在Apache 2.0许可下发布。)。 Webot支持C/C++、Python、

熊猫飞天 2万+

Windows下OpenMBEE项目MMS部署失败经历及改正

在Github里找到了上面的第一份文档,下载了MMS源代码(不知道为什么这个代码跟上面操作克隆得到的MMS代码不一样?好像是因为Gradle的版本问题,我本地之前已经安装过7.6.4的Gradle了,于是我找到gradle-wrapper.properties文件。后面在VScode中运行了一下依然是报这个错误,我在VScode终端直接执行。不知道为什么依然没什么用。打开“Windows PowerShell”。(如果是第一次运行它,将看到更长的输出)导航到要克隆存储库的文件夹,例如,

Yo_lan_da的博客 1868

ROS仿真环境中实现自主导航

在看完自主导航小车实践的教程(自主导航小车实践)里面后,很多小伙伴留言说在学习自主导航小车的时候手上没有合适的ROS机器人做实验,没有动手操作的机会,学习不深刻。对于底盘问题,我们也分享过一个制作麦克纳姆轮底盘的教程,手头有材料的同学可以参考参考(ROS麦克纳姆轮底盘制作)。 这里还有另外一种方式解决底盘的问题,我们可以通过ROS提供的仿真环境来理解这个自主导航小车的框架,ROS中提供有很多的机器...

熊猫飞天 2万+

C#实现不占用串口的串口监听与侦听技术:高效监控串口数据的最佳实践

本文详细介绍了如何实现不占用串口的串口监听与侦听技术,解决了传统串口监听可能带来的串口占用问题。通过使用虚拟串口、外部监听工具或第三方库,我们可以高效地实现串口数据的捕获与处理,适用于各种工业控制、物联网和嵌入式开发的应用场景。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1667

从零到一:基于Blazor和Elsa Workflows的工作流系统开发实战

本文详细介绍了如何利用Blazor和Elsa Workflows构建高效的工作流系统,从技术选型到生产环境部署,涵盖动态工作流建模、Blazor前端集成及性能优化等核心内容。通过实战案例,展示如何实现订单处理系统的自动化与灵活性,提升企业流程效率。

weixin_26875109的博客 428

Player/Stage 安装官方指南|Player 2.1.1 / Stage 3.0.* (official release)

Created: 07.14.2008Last updated: 08.02.2008Old version of this document here.Translated: 03.08.2009Installation on Fedora 9 提示:这是基于Fedora 9平台的安装过程;如果在Fedora 8下安装,则stage 3.0.0版本比3.0.1更兼容First of

弹琴的企鹅 3225

人工智能——框架表示法

1975年美国明斯基在“A framework for representing knowledge”提出了框架理论。 1. 框架及框架的一般表示形式 框架:一种描述对象属性的数据结构。 框架的一般表示形式 <框架名> 槽名1: 侧面名1:值1,值2…,值p1 侧面名2:值1,值2…,值p2 侧面名2:值1,值2…,值pm1 槽名2: 侧面名...

weixin_33759269的博客 1641

解决Gazebo莫名其妙的问题——升级

今天为了能让小车导航用上更好更精确的地图,想到在gazebo里建一个仿真的环境来建图,开开心心的用Building Editor画完,保存模型,选中模型,果断点击放置,民族

qq_44360908的博客 2766

EDEM在农业机械设计中的实战应用:以谷物收割机优化为例

本文以谷物收割机优化为例,详细阐述了EDEM离散元仿真软件在农业机械设计中的实战应用。通过构建精准的“数字谷物”模型与农机部件动态界面,利用GPU加速完成大规模颗粒系统仿真,有效诊断并解决了籽粒夹带损失与清选负荷不均等田间难题,实现了从仿真分析到田间验证的设计优化闭环。

weixin_29256771的博客 107

网络安全 —— 实验(基于华为eNSP模拟器)

8. 实验八 —— 通过路由的远程管理(基于实验七的基础配置)8. 实验八 —— 通过路由的远程管理(基于实验七的基础配置)6. 实验六 —— 交换机的远程控制(直接控制和间接控制)6. 实验六 —— 交换机的远程控制(直接控制和间接控制)5. 实验五 —— 将交换机作为PC端通过交换机相连。5. 实验五 —— 将交换机作为PC端通过交换机相连。4. 实验四 —— 两个PC机通过两台交换机相连。2. 实验二 —— 两个PC机通过交换机相连。2. 实验二 —— 两个PC机通过交换机相连。

这个家伙看起来很懒,只想把你留下来哦 9338

player/stage 学习---安装

环境 ubuntu 14.04 一,工具安装 sudo apt-get install git cmake g++ fltk1.1-dev libjpeg8-dev libpng12-dev libglu1-mesa-dev libltdl-dev libgtk2.0-dev build-essential libgnomecanvas2-dev gsl-bin libgsl0-dev lib...

weixin_30709929的博客 689

描述符链表(Descriptor Chain)是什么?

描述符链表是硬件加速数据传输的核心数据结构,通过链式描述符(包含地址、长度、控制标志等)实现DMA自动批量处理,显著降低CPU负载。其工作原理为:CPU初始化链表后,硬件按序处理每个描述符,完成自动跳转与中断通知。在网卡收包、NVMe存储等场景中应用广泛,优势包括批处理、低延迟和灵活调度。需注意内存对齐、缓存一致性等实现细节,优化手段包括预分配描述符池、环形缓冲区等。该技术是网络/存储领域提升吞吐量的关键方案。

guigenyi的专栏 773

Vmware虚拟机ROS2中的gazebo界面不显示或者闪退

如果全局无法生效,但是使用命令gz sim --render-engine ogre就不会发生闪退的现象,那么就修改gazebo的配置文件,找到gazebo的配置路径:~/.gz/sim/8/gui.config 或 /usr/share/gz/gz-sim8/config,在GUI plugins中的3D scene中的。虚拟机中的Ubuntu 22.04,ROS2 Humble中使用仿真,Gazebo(harmonic)渲染出现问题或者出现闪退的现象,目前。

m0_73822937的博客 1041

10、网络安全工具:Bettercap 与 Web 应用测试工具全解析

本文详细解析了网络安全工具Bettercap及其在中间人攻击和无线攻击中的应用,同时介绍了多种Web应用测试工具,如Amass、Cadaver、Dirb等,并探讨了工具的使用场景、流程、注意事项以及未来发展趋势,为网络安全测试提供了全面的指导。

u0v1w2x3的博客 226

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: 成功移植spca5xx摄像头驱动到Qwerk板
下一篇: 修复被Windows覆盖的grub
emlinux
博客等级 码龄20年 18粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值