【ROS】ROS+Gazebo强化学习:训练

news2024/11/25 22:46:53

1、安装ROS1

【ROS】Ubuntu20.04安装ROS1

2、安装Anaconda

【AI】PyTorch入门(一):通过Anaconda安装PyTorch
【PyThon】Anaconda常用命令

3、源码下载

使用论文 Goal-Driven Autonomous Exploration Through Deep Reinforcement Learning 的源码实例

git clone https://github.com/reiniscimurs/DRL-robot-navigation

4、编译

conda activate pytorch
cd ~/DRL-robot-navigation/catkin_ws
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

注意:执行命令catkin_make来编译时,需要添加参数-DPYTHON_EXECUTABLE=/usr/bin/python3,否则会报错

-- Could NOT find PY_em (missing: PY_EM) 
CMake Error at /opt/ros/noetic/share/catkin/cmake/empy.cmake:30 (message):
  Unable to find either executable 'empy' or Python module 'em'...  try

5、修改源码

按照github(https://github.com/reiniscimurs/DRL-robot-navigation)步骤操作时,没有启动gazebo

1)手动创建launch

cd DRL-robot-navigation-main/catkin_ws/src/multi_robot_scenario/launch
vi TD3_world.launch
<launch> 
    <include file="$(find gazebo_ros)/launch/empty_world.launch">
        <arg name="world_name" value="$(find multi_robot_scenario)/launch/TD3.world"/>
        <arg name="paused" value="false"/>
        <arg name="use_sim_time" value="true"/>
        <arg name="gui" value="true"/>
        <arg name="headless" value="false"/>
        <arg name="debug" value="false"/>
      </include>
</launch>

2)修改velody_env.py文件
修改DRL-robot-navigation/TD3/velody_env.py

cd DRL-robot-navigation/TD3
cp velody_env.py velody_env.py-bk
vi velody_env.py

r1改为p3dx
分布在:第82行、116行、130行

3)屏蔽启动launch的代码,后面会手动启动
还在文件velody_env.py中修改

        #port = "11311"
        #subprocess.Popen(["roscore", "-p", port])

        print("Roscore launched!")

        # Launch the simulation with the given launchfile name
        rospy.init_node("gym", anonymous=True)
        #if launchfile.startswith("/"):
        #    fullpath = launchfile
        #else:
        #    fullpath = os.path.join(os.path.dirname(__file__), "assets", launchfile)
        #if not path.exists(fullpath):
        #    raise IOError("File " + fullpath + " does not exist")

        #subprocess.Popen(["roslaunch", "-p", port, fullpath])
        #print("Gazebo launched!")

6、启动环境、开始训练

1)在终端1中启动:虚拟世界

conda activate pytorch
cd ~/DRL-robot-navigation/catkin_ws
catkin_make
source devel/setup.sh
roslaunch multi_robot_scenario TD3_world.launch  

在这里插入图片描述

2)在终端2中启动:机器人模型

conda activate pytorch
cd DRL-robot-navigation-main/catkin_ws/
source devel/setup.sh
roslaunch multi_robot_scenario pioneer3dx.gazebo.launch 

在这里插入图片描述

3)在终端3中启动:训练脚本

conda activate pytorch
cd DRL-robot-navigation-main/TD3
python train_velodyne_td3.py

7、停止所有服务

killall -9 rosout roslaunch rosmaster gzserver nodelet robot_state_publisher gzclient python python3

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

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

相关文章

VMware虚拟机安装win10系统教程

执行本教程前请依次阅读以下2篇文章&#xff0c;完成环境准备&#xff1a; 1.VMware虚拟机下载安装教程【详细步骤 - 图文结合】 VMware虚拟机下载安装教程【详细步骤 - 图文结合】_西晋的no1的博客-CSDN博客 2.如何在微软官网下载win10镜像文件 如何在微软官网下载win10镜像文…

IDEA中Node.js环境下npm报错Error:0308010C:digital envelope routines:unsupported

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 是一个开源的、跨平台的 JavaScript 运行时环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型&#xff0c;使其轻量又高效。Node.js 的包管理器 npm,是目前最流行的Node.js 的包管理器。 一、安装nod…

快速幂(简单 C++)

快速幂&#xff1a;就是能够快速地计算出以 a 为底数&#xff0c;b 为指数的幂&#xff0c;相较于传统的求幂算法&#xff0c;当指数 b 非常大时&#xff0c;使用快速幂算法&#xff0c;可以大大地降低循环的次数。 以3 ^ 13 为例&#xff1a; 首先将 b 转换成二进制&#xff…

Kubernetes配置Jenkins Slave

Kubernetes配置Jenkins Slave 部署在kubernetes集群内 1、部署jenkins 1.1、命名空间 apiVersion: v1 kind: Namespace metadata:name: jenkinscilabels:app: jenkinsci1.2、Deployment apiVersion: apps/v1 kind: Deployment metadata:name: jenkinscinamespace: jenkinsci…

软考A计划-系统架构师-案例分析考前背诵-上篇

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

〖数据结构〗一棵有点自律的树——搜索二叉树

文章目录 &#x1f490;专栏导读&#x1f490;文章导读&#x1f337;搜索二叉树概念&#x1f337;二叉搜索树的构建&#x1f33a;查找操作&#x1f33a;插入操作&#x1f33a;删除操作&#x1f33a;遍历操作☘️测试 &#x1f3f5;️拓展——递归实现&#x1f343;递归查找&…

MATLAB与物联网:如何应用MATLAB进行物联网数据的处理和分析

第一章&#xff1a;引言 物联网&#xff08;Internet of Things, IoT&#xff09;作为当今科技领域的热门话题&#xff0c;正在改变我们的生活方式和工作方式。随着物联网设备的普及和数据的不断增长&#xff0c;如何高效地处理和分析物联网数据成为了一个重要的挑战。MATLAB作…

【C语言之操作符1】

C语言之操作符1 1. 操作符分类2. 算术操作符3. 移位操作符3.1 左移操作符3.2 右移操作符 4. 位操作符5. 赋值操作符 1. 操作符分类 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员 2. 算术…

【哈佛积极心理学笔记】第14讲 过犹不及

第14讲 过犹不及 Recap: Stress is not the problem. The problem is lack of revovery. level of stress -> chronic stress -> chronic anxiety -> depression Recovery on different level: micro level 15 min break, lunch timemezzo level, full night slee…

1.Apollo开发部署-linux

一.官方文档 https://www.apolloconfig.com/#/zh/deployment/quick-start-docker 二.环境准备 1.MySql 5.6.51.单独服务器192.168.2.13 https://downloads.mysql.com/archives/installer/ 2.JDK 1.8.X https://www.oracle.com/java/technologies/downloads/ 三.Apollo部署…

【JVM篇】垃圾回收算法

目录 1、前言 2、标记-清除算法 3、标记-整理算法 4、标记-复制算法 5、总结 1、前言 说起垃圾回收&#xff08;Garbage Collection&#xff09;&#xff08;本文简称GC&#xff09;。相信同时对C和Java有了解的小伙伴都知道&#xff0c;C在new完对象后&#xff0c;是需要…

【Linux】发展史浅谈

为什么要学Linux&#xff1f; LInux和微软的Windows在定位上都是一样的&#xff0c;即操作系统。而且LInux是一款雄霸服务端的操作系统&#xff0c;是在企业端被高频使用的后台操作系统。 科技发展的基本模式 所有的技术进步&#xff0c;本质都是为了促进更好的工具的发明&a…

【Python ORM】零基础也能轻松掌握的学习路线与参考资料

Python orm&#xff08;Object-Relational Mapping&#xff09;是一种模式&#xff0c;它将对象和关系型数据库之间的映射相互转换&#xff0c;使得应用程序可以通过面向对象的方式来操作数据库。Python orm 在开发大型 Web 应用程序中特别有用&#xff0c;使得与数据库的交互变…

【IMX6ULL驱动开发学习】08.IMX6ULL通过GPIO子系统函数点亮LED

通过GPIO子系统函数点亮LED 1、GPIO子系统函数 1.1 确定 led 的GPIO标号&#xff0c;查看内核中的gpiochip 查看 gpiochip &#xff0c;以正点原子的IMX6ULL阿尔法开发板为例 [root100ask:/sys/class/gpio]# cat /sys/kernel/debug/gpio 查看原理图&#xff0c;发现led接的引…

Linux虚拟网络设备---之使用Veth pair连接linux网桥bridge

本文目录 1、我们可以用以下命令来创建veth pair: veth0----veth12、创建五个命名空间namespaces后&#xff0c;可以用以下命令将veth设备对的一端移入namespaces命名空间&#xff0c;并开启veth2、将veth设备对的另外一端连接到linux网桥&#xff0c;并将所有namespaces命名空…

【Redis应用】UV统计(四)

&#x1f697;Redis应用学习第四站~ &#x1f6a9;本文已收录至专栏&#xff1a;Redis技术学习 一.引入 首先我们要搞懂两个概念&#xff1a; UV&#xff1a;全称Unique Visitor&#xff0c;也叫独立访客量&#xff0c;是指通过互联网访问、浏览这个网页的自然人。1天内同一个…

【动态规划】斐波那契数列模型

冻龟算法系列之斐波那契数列模型 文章目录 【动态规划】斐波那契数列模型1. 第N个泰波那契数1.1 题目解析1.2 算法原理1.2.1 状态表示1.2.2 状态转移方程1.2.3 初始化1.2.4 填表顺序1.2.5 返回值 1.3 编写代码1.4 空间优化 2. 三步问题2.1 题目解析2.2 算法原理2.2.1 状态表示2…

解决Centos安装时找不到磁盘:未选择任何磁盘(no diks selected),本地标准磁盘为空

文章目录 问题描述问题原因解决办法 问题描述 笔者最近又买了一台新电脑&#xff0c;并打算在上面安装 Linux 来充当一个新的服务器结点。但很不幸的是&#xff0c;每次笔者略微尝试新事物时&#xff0c;都要踩很多坑。笔者在使用 U 盘刻录 CentOS 8 镜像之后&#xff0c;准备在…

公平锁/非公平锁/可重入锁/自旋锁

在JAVA中我们知道有很多加锁的方式&#xff0c;比如常见的 通过synchronized关键字&#xff0c;还有Lock&#xff0c;还有之前说原子CAS操作时有看到过的死循环方式的自旋锁。 借此来说一下锁的分类: 公平锁: 是指多个线程按照申请的顺序来获取锁&#xff0c;每次获取锁时会…

dp算法篇Day1

"多希望有人来陪我&#xff0c;度过末日啊~" 讲讲我为什么突然想更新这篇栏目。 想想自己也算 "系统" 接触计算机这个学科也有差不多一年了&#xff0c;回想起当初下定决心要全身心投入到这个专业或者说行业中来&#xff0c;现在到了这样的地步&#xff0c…