ROS、OpenAI和Gazebo机器人与人工智能仿真与实践教研杂记(一)安装配置

ROS、OpenAI和Gazebo机器人与人工智能仿真与实践教研杂记(一)安装配置
ROS、OpenAI和Gazebo机器人与人工智能仿真与实践教研杂记(一)安装配置

课程教学实践环境:

系统:Ubuntu 18.04.2 LTS + ROS Melodic(1.0)1.14.3 ~ 1943 + ROS  Crystal(2.0)0.6.1 ~ 541 etc.

仿真:Gazebo 9.8.0 + V-Rep 3.6.1 + Webots 2019a.1 etc.

实物:Cozmo/Vector + Leap Motion + Joystick + Camera + Microphone + Speaker + Phone(ios&android)+ Arduino etc.

镜像:ROS2Go ver2.0 + 实验楼ROS + Exbot ROS iso indigo&kinetic etc.

书籍:ROS机器人高效编程 + ROS机器人项目开发11例 etc.

编程:Matlab 2018a + Python 2.7 + Python 3.6 + C++ etc.

智能:Tensorflow + Caffe + OpenAI etc.

语音:科大讯飞 + 百度语音 + Sphinx etc.

2015-2019全部涉及软硬件平台更多,均在博客中有记录和介绍,此处不再赘述。

先以gym-gazebo为例,简要说明一下:

测试和调试环境:Ubuntu 18.04.2 LTS,其余如上文所述。

gym-gazebo支持ROS Melodic(1.0),gym-gazebo2支持ROS Crystal(2.0)

ROS、OpenAI和Gazebo机器人与人工智能仿真与实践教研杂记(一)安装配置

版本问题:将gazebo-8代码替换给gezbo-9:

Could not open file[/usr/share/gazebo-8/worlds/empty_bullet.world]

ROS、OpenAI和Gazebo机器人与人工智能仿真与实践教研杂记(一)安装配置
ROS、OpenAI和Gazebo机器人与人工智能仿真与实践教研杂记(一)安装配置
ROS、OpenAI和Gazebo机器人与人工智能仿真与实践教研杂记(一)安装配置

使用Gazebo的Open gym扩展,下面以ROS Melodic为例介绍:

An OpenAI gym extension for using Gazebo known as gym-gazebo

This work presents an extension of the initial OpenAI gym for robotics using ROS and Gazebo. A whitepaper about this work is available at https://arxiv.org/abs/1608.05742. Please use the following BibTex entry to cite our work:

代码语言:javascript代码运行次数:0运行复制

@article{zamora2016extending,  title={Extending the OpenAI Gym for robotics: a toolkit for reinforcement learning using ROS and Gazebo},  author={Zamora, Iker and Lopez, Nestor Gonzalez and Vilches, Victor Mayoral and Cordero, Alejandro Hernandez},  journal={arXiv preprint arXiv:1608.05742},  year={2016}}

论文发表和简要介绍如上。

gym-gazebo is a complex piece of software for roboticists that puts together simulation tools, robot middlewares (ROS, ROS 2), machine learning and reinforcement learning techniques. All together to create an environment whereto benchmark and develop behaviors with robots. Setting up gym-gazebo appropriately requires relevant familiarity with these tools.

Code is available “as it is” and currently it’s not supported by any specific organization. Community support is available here. Pull requests and contributions are welcomed.

gym-gazebo是一个复杂的机器人软件软件,它将模拟仿真工具,机器人中间件(ROS,ROS 2),机器学习和强化学习技术结合在一起。共同创造一个环境,用机器人来评估和开发行为。正确设置gym-gazebo需要熟悉这些工具。

目录环境安装用法

安装

Ubuntu 18.04Ubuntu 16.04(已弃用)Ubuntu 14.04(已弃用)Docker(已弃用)Ubuntu 18.04

基本要求

Giiso写作机器人 Giiso写作机器人

Giiso写作机器人,让写作更简单

Giiso写作机器人 56 查看详情 Giiso写作机器人 ROS Melodic:推荐使用Desktop-Full Install,包括Gazebo 9.0.0(http://wiki.ros.org/melodic/Installation/Ubuntu)。Gazebo 9.0.0

ROS Melodic相关的依赖

代码语言:javascript代码运行次数:0运行复制

sudo apt-get install python-pip python3-vcstool python3-pyqt4 pyqt5-dev-tools libbluetooth-dev libspnav-dev pyqt4-dev-tools libcwiid-dev cmake gcc g++ qt4-qmake libqt4-dev libusb-dev libftdi-dev python3-defusedxml python3-vcstool ros-melodic-octomap-msgs        ros-melodic-joy                 ros-melodic-geodesy             ros-melodic-octomap-ros         ros-melodic-control-toolbox     ros-melodic-pluginlib       ros-melodic-trajectory-msgs     ros-melodic-control-msgs       ros-melodic-std-srvs        ros-melodic-nodelet       ros-melodic-urdf       ros-melodic-rviz       ros-melodic-kdl-conversions     ros-melodic-eigen-conversions   ros-melodic-tf2-sensor-msgs     ros-melodic-pcl-ros ros-melodic-navigation ros-melodic-sophus

安装Python包:

代码语言:javascript代码运行次数:0运行复制

sudo pip install gymsudo apt-get install python-skimagesudo pip install h5pypip install tensorflow-gpu (if you have a gpu if not then just pip install tensorflow)sudo pip install keras

安装gym-gazebo:

代码语言:javascript代码运行次数:0运行复制

cd ~git clone https://github.com/erlerobot/gym-gazebocd gym-gazebosudo pip install -e .

运行bash文件,构建ros工作区:

代码语言:javascript代码运行次数:0运行复制

cd gym-gazebo/gym_gazebo/envs/installationbash setup_melodic.bash

执行示例

运行qlearn的示例:

终端1

代码语言:javascript代码运行次数:0运行复制

cd gym-gazebo/gym_gazebo/envs/installation/bash turtlebot_setup.bash

终端2

代码语言:javascript代码运行次数:0运行复制

cd gym-gazebo/examples/turtlebotpython circuit_turtlebot_lidar_qlearn.py

运行dqn的示例:

终端1

代码语言:javascript代码运行次数:0运行复制

cd gym-gazebo/gym_gazebo/envs/installation/bash turtlebot_nn_setup.bash

终端2

代码语言:javascript代码运行次数:0运行复制

cd gym-gazebo/examples/turtlebotpython circuit_turtlebot_lidar_qlearn.py

用法建造并安装gym-gazebo

库的根目录中:

代码语言:javascript代码运行次数:0运行复制

sudo pip install -e .

运行环境加载与要启动的机器人对应的环境变量。例如加载Turtlebot:代码语言:javascript代码运行次数:0运行复制

cd gym_gazebo/envs/installationbash turtlebot_setup.bash

注意:所有设置脚本都可用 gym_gazebo/envs/installation

运行可用的任何示例examples/。例如:代码语言:javascript代码运行次数:0运行复制

cd examples/turtlebotpython circuit2_turtlebot_lidar_qlearn.py

显示仿真模拟

要在模拟过程中查看Gazebo中发生的情况,请运行gazebo客户端。为了启动gzclient并能够将其连接到运行gzserver

打开一个新终端。获取相应的设置脚本,这将更新GAZEBO_MODEL_PATH变量:例如source setup_turtlebot.bash导出gazebo_env提供的GAZEBO_MASTER_URI。您将看到在每个脚本执行开始时打印的变量。例如export GAZEBO_MASTER_URI=http://localhost:13853

注意:现在需要此指令,因为gazebo_env为GAZEBO_MASTER_URI创建了一个随机端口,允许同时运行多个模拟实例。如果您不打算启动多个实例,可以从环境中删除以下两行:

代码语言:javascript代码运行次数:0运行复制

os.environ [ “ ROS_MASTER_URI ” ] = “ http:// localhost:” + self.portos.environ [ “ GAZEBO_MASTER_URI ” ] = “ http:// localhost:” + self.port_gazebo

最后,启动gzclient。

代码语言:javascript代码运行次数:0运行复制

gzclient

显示奖励细节

通过运行以下脚本显示显示当前奖励历史记录的图表:

代码语言:javascript代码运行次数:0运行复制

cd examples/utilitiespython display_plot.py

提示:使用--helpflag来获得更多选项。

ROS、OpenAI和Gazebo机器人与人工智能仿真与实践教研杂记(一)安装配置

杀死后台进程

有时,在结束或杀死模拟gzserverrosmaster留在后台后,请确保在开始新测试之前结束它们。

我们建议创建一个别名来终止这些进程。

代码语言:javascript代码运行次数:0运行复制

echo  “ alias killgazebogym ='killall -9 rosout roslaunch rosmaster gzserver nodelet robot_state_publisher gzclient' ”  >>  〜/ .bashrc

以上就是ROS、OpenAI和Gazebo机器人与人工智能仿真与实践教研杂记(一)安装配置的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/298912.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
windows11如何使用DISM命令修复系统映像_Windows 11DISM系统修复方法
上一篇 2025年11月5日 00:05:51
app怎么开发?以用户需求为导向‌
下一篇 2025年11月5日 00:05:55

相关推荐

  • windows8无法弹出usb设备怎么办_windows8安全移除U盘失败解决方法

    先重启Windows资源管理器,再依次排查占用进程、使用文件资源管理器弹出、确保Plug and Play服务运行、禁用USB选择性暂停、修复注册表通知项,可解决U盘无法安全移除问题。 如果您尝试从Windows 8电脑上安全移除U盘或其他USB设备,但系统提示设备正在使用中或没有任何反应,则可能是…

    2026年9月23日
    200
  • 如何在mysql中备份二进制日志

    答案:MySQL二进制日志备份可通过mysqlbinlog工具导出、直接复制日志文件、定时归档及结合mysqldump全量备份实现,需配合FLUSH LOGS和SHOW BINARY LOGS确保一致性,并制定保留策略以支持数据恢复。 在 MySQL 中,二进制日志(Binary Log)记录了所有…

    2026年9月23日
    100
  • Photopea中AI图片如何导出为PNG?快速保存图像的实用方法

    答案:在Photopea中导出AI生成图片为PNG,需点击“文件”→“导出为”→选择PNG,设置质量100%、勾选透明度并确认尺寸后保存;为平衡质量与文件大小,优先调整图像尺寸而非降低质量,高分辨率图片可缩放以优化;常见技巧包括使用高分辨率源图、保留图层非破坏性编辑;其他格式如JPEG适合无透明背景…

    2026年9月23日
    200
  • 如何使用Java制作简易的博客系统

    首先搭建Spring Boot后端,设计BlogPost实体类并用JPA实现数据持久化,通过BlogController处理页面请求,使用Thymeleaf模板引擎渲染index和create页面,配置H2内存数据库并启用控制台,最终实现文章的发布与展示功能。 用Java制作一个简易的博客系统,核心…

    2026年9月23日
    200
  • qq浏览器主页被篡改了如何修复_qq浏览器主页被篡改修复方法

    首先检查QQ浏览器设置中的主页地址并修正,接着查看桌面快捷方式目标路径是否被添加恶意网址并清理,然后使用腾讯电脑管家等工具扫描修复,最后可尝试重置浏览器或通过注册表编辑器锁定主页,防止再次被篡改。 QQ浏览器主页被篡改,通常是由恶意软件、插件或安全软件锁定导致的。修复的关键是检查多个可能被修改的位置…

    2026年9月23日
    100
  • 渗透测试|利用curl回传文件

    在处理低权限shell回传文件的问题时,如果无法使用scp命令且无法安装sshpass,可以考虑使用curl命令进行文件传输。以下是详细的伪原创内容: 至少我们曾经在一起过。 来自:一言 var xhr = new XMLHttpRequest();xhr.open(‘get’, ‘https://…

    2026年9月23日
    100
  • 抖音涨粉慢怎么办?快速提升粉丝量的10个有效方法

    抖音涨粉慢怎么办?快速提升粉丝量的10个有效方法抖音涨粉慢怎么办?快速提升粉丝量的10个有效方法抖音涨粉慢怎么办?快速提升粉丝量的10个有效方法抖音涨粉慢怎么办?快速提升粉丝量的10个有效方法

    抖音涨粉慢可通过10个方法提升,一是明确内容定位,选择垂直领域持续输出,如美妆测评、职场干货等,提高系统推荐精准度;二是做好前3秒“钩子”,用问题、数据或反差吸引用户停留;三是蹭热点话题和挑战,结合创意参与提升曝光;四是引导评论互动,增加算法权重;五是选择合适发布时间,匹配目标人群活跃时段;六是保持…

    2026年9月23日 用户投稿
    300
  • VSCode如何配置Scala开发环境 VSCode搭建Scala项目的完整教程

    首先安装jdk 11或17并正确配置java_home和path环境变量;2. 通过包管理器或官网安装sbt,用于项目构建与依赖管理;3. 在vscode中安装scala (metals)插件,以获得代码补全、错误检查等语言服务;4. 使用sbt new scala/scala-seed.g8创建项…

    2026年9月23日
    100
  • PHP面向对象高级特性_PHP高级OOP设计模式

    PHP高级OOP特性如命名空间、Traits、魔术方法等结合设计模式可提升代码质量。1. 命名空间避免类冲突,Traits实现横向复用,后期静态绑定支持运行时解析,魔术方法增强对象控制,抽象类与接口定义契约,Final防止继承修改。2. 单例确保唯一实例,工厂封装创建逻辑,依赖注入降低耦合,观察者实…

    2026年9月23日
    100
  • Airtable的AI混合工具怎么用?快速管理数据的智能化操作步骤

    Airtable的AI混合工具通过将AI能力嵌入数据管理流程,实现自动化处理、分析与内容生成。首先明确AI需求,如总结反馈或生成文案;接着选择AI字段或在自动化中添加AI动作;然后配置模型与提示词,精准设计指令以确保输出质量;指定输入输出字段后进行测试迭代,优化提示词直至满意;最后部署并持续监控。该…

    2026年9月23日
    100
  • 华为 Mate 70 Air 手机上架电信终端产品库 eSIM 方案成悬念

    10 月 21 日消息,华为一款型号为 sup-al90 的新机——华为 mate 70 air,目前已上架中国电信终端产品库。产品信息显示,该机型将提供曜金黑、羽衣白、金丝银锦三款配色,并预装 harmonyos 5.0 操作系统。 产品库信息显示 Mate70 Air 采用一块 6.9 英寸大屏…

    2026年9月23日
    300
  • VSCode快速配置Jupyter:中文内核、交互编程、数据可视化

    安装vscode及python环境,推荐使用anaconda以简化依赖管理;2. 在vscode扩展商店安装python和jupyter插件以支持notebook功能;3. 创建.ipynb文件,vscode将自动启用jupyter界面;4. 点击右上角“选择内核”按钮并选择目标python环境;5…

    2026年9月23日
    100
  • 高德地图离线地图怎么更新_高德地图离线数据更新步骤

    高德地图车机版离线地图更新方法包括:一、通过Wi-Fi在线更新,进入“离线数据”页面检测并下载新版地图;二、使用U盘导入,从官网下载解压后复制amapauto文件夹至U盘根目录,插入车机并选择更新;三、开启Wi-Fi自动更新功能,在设置中启用“Wi-Fi下自动更新离线数据”及“离线图面增量更新”,实…

    2026年9月23日
    100
  • mysql如何输入特殊字符 mysql写sql语句的转义方法

    mysql如何输入特殊字符 mysql写sql语句的转义方法mysql如何输入特殊字符 mysql写sql语句的转义方法mysql如何输入特殊字符 mysql写sql语句的转义方法mysql如何输入特殊字符 mysql写sql语句的转义方法

    在mysql中处理特殊字符的核心方法是使用预处理语句,1.手动转义可通过反斜杠实现,如单引号转为’、双引号转为”等,但易出错且不安全;2.更推荐使用预处理语句(prepared statements)或参数绑定,它能自动处理特殊字符并防止sql注入;3.预处理语句的优势包括安全性高,彻底杜绝sql注…

    2026年9月23日 用户投稿
    400
  • VSCode高效配置Elixir:Phoenix框架、中文提示、模式匹配

    要高效配置vscode支持elixir开发,必须安装elixirls扩展并确保elixir和erlang环境正确;elixirls提供代码补全、跳转、格式化和调试功能,配合手动设置.heex、.leex文件关联为html可优化phoenix框架开发体验;通过安装中文语言包、设置files.encod…

    2026年9月23日
    100
  • PHP高效读取大型GZ文件:揭示Gzip的顺序访问限制与实践方法

    本教程深入探讨了php中处理大型gz压缩文件的核心挑战:其固有的顺序访问特性。我们将解释为何无法对gz文件进行随机跳转读取,以及这意味着您必须从头开始按序解压数据。文章将提供一种实用的分块读取策略,并附带php示例代码,帮助开发者高效、安全地处理超大gz文件,同时讨论潜在的跨块数据处理问题及内存管理…

    2026年9月23日
    200
  • 如何在RayTune中训练AI大模型?分布式超参数优化的技巧

    如何在RayTune中训练AI大模型?分布式超参数优化的技巧如何在RayTune中训练AI大模型?分布式超参数优化的技巧如何在RayTune中训练AI大模型?分布式超参数优化的技巧如何在RayTune中训练AI大模型?分布式超参数优化的技巧

    RayTune通过分布式超参数优化解决大模型训练中的资源调度、搜索效率、实验管理与容错难题,其核心是利用并行化和智能调度(如ASHA、PBT)加速最优配置探索。首先,将训练逻辑封装为可调用函数,并在其中集成分布式训练(如PyTorch DDP);其次,定义超参数搜索空间与资源需求(如每试验2 GPU…

    2026年9月23日 用户投稿
    100
  • mysql怎么执行子查询 mysql输入嵌套sql语句方法

    mysql怎么执行子查询 mysql输入嵌套sql语句方法mysql怎么执行子查询 mysql输入嵌套sql语句方法mysql怎么执行子查询 mysql输入嵌套sql语句方法mysql怎么执行子查询 mysql输入嵌套sql语句方法

    mysql子查询常见类型包括标量子查询、行子查询和表子查询,分别返回一行一列、一行多列和多行多列数据;应用场景涵盖where作为过滤条件、from作为派生表、select作为标量列以及dml操作的数据提供。此外,根据与外部查询的关联性分为非关联子查询和关联子查询,前者独立执行一次,后者依赖外部查询每…

    2026年9月23日 用户投稿
    100
  • 硬刚 Sora 2,谷歌的 Veo 3.1 确实有小惊喜|AI 上新

    硬刚 Sora 2,谷歌的 Veo 3.1 确实有小惊喜|AI 上新硬刚 Sora 2,谷歌的 Veo 3.1 确实有小惊喜|AI 上新硬刚 Sora 2,谷歌的 Veo 3.1 确实有小惊喜|AI 上新硬刚 Sora 2,谷歌的 Veo 3.1 确实有小惊喜|AI 上新

    谷歌最新视频生成模型 veo 3.1 来了!今日上手可用。 北京时间 10 月 16 日,谷歌在 Gemini API 中发布了 Veo 3.1 和 Veo 3.1 Fast 付费预览版。模型一上线,就受到了行业的高度关注。毕竟,和前不久发布的 Sora 2 一样,这次 Veo 3.1 也新增了音频…

    2026年9月23日 用户投稿
    200
  • Java Optional与集合结合使用方法

    Optional与集合结合可避免空指针异常。1. 用Optional.ofNullable包装可能为null的集合元素;2. Stream中filter后接findFirst返回Optional,安全查找;3. 对象属性为Optional时,通过flatMap展开提取值;4. 方法返回Optiona…

    2026年9月23日
    200

发表回复

登录后才能评论
关注微信