基于TORCS的自动驾驶学习总结(一)

0.写在最前面

  仿真平台打算用airsim或者torcs两者中的一个,airsim太大了,我电脑不咋地,暂时放弃,先整个torcs试试。
  至于程序,先学学python,网上的DQN、DDPG程序多得是,gym有torcs的库,也有airsim的库,这几天先把git上的torcs例程跑跑跑,网上大多数是基于Linux系统的配置方法,github上也推荐Linux,或许以后我也得用Linux,以下是我这几天搭建环境(win10)过程中遇到的大大小小的问题,简单整理了一下,希望能跟各位大佬交流交流。

1.TORCS的安装

  我使用的是windows10系统,到TORCS官网下载的安装包,目前更新到1.3.7,用手机热点下的,300多MB,下了两三个小时。
  下载完正常解压就行了,解压后有个wtorcs.exe文件,双击就可以运行了,没啥特殊的。

2.PYTHON的安装

  我官网下的python3.8,之前买的RL的书,跟着书上例程用cmd pip install了很多包,并且自己尝试着把因为库函数版本不同而产生的bug纠正了一下,我用的pycharm作为编辑器,我用不明白jupyter,到现在我去找github上的代码,都是复制粘贴。
  在这得pip install gym_torcs,应该够用了。

3.gmy_torcs与TORCS的通讯

  在这我遇到了很多坑,下面一个一个说。

3.1git上的例程落后于我装的gym_torcs

  首先example_experiment.py中的

from gym_torcs import TorcsEnv
from sample_agent import Agent

  要改成

```javascript
from gym_torcs import sample_agent
from gym_torcs import torcs_env

你可以到C:\Users\XXXX\AppData\Local\Programs\Python\Python38\Lib\site-packages\gym_torcs
看一眼,里面应该是没有TorcsEnv.py,但是进到torcs_env里,能找到TorcsEnv()这个函数。
后面同样的道理,也要改。

env = TorcsEnv(vision=vision, throttle=False)
agent = Agent(1)  # steering only

改成

env = torcs_env.TorcsEnv(vision=vision, throttle=False)
agent = sample_agent.Agent(1)  # steering only

现在,解决了第一个问题。

3.2subprocess未定义和cannot find Files

  这个问题,真的是太头疼了,总之在解决完Q1后,又继续报错,我把赌注压在了这个subprocess未定义上,点了一下对应的错误,跳转到了某个.py中,我忘了具体是哪个,我还特意在其他的gym_torcs目录下的库里搜了一下,有subprocess这个函数,并且有subprocess.py这个东西,应该是python自带的,我不是很清楚。所以我灵机一动,在那个报错的库前面加了一个

import subprocess

  然后,完美解决这个问题!

3.3Waiting for server on 3101…

  这时候运行程序,先Waiting for server on 3101…,然后Count Down : 54321-1,不断报错。
  我凭直觉认为程序本身没问题,这应该是跟TORCS程序没连接上才会出现这个错误,所以我开始找TORCS和程序的接口。
  之前看到CSDN上一位大佬的文章,安装他的操作,人家就有Initializing Driver scr_server1,我就没有我显示什么什么cannot open XXXX.dll,我查了一下,我的TORCS的drivers目录里确实没有scr_server.dll这个东西,我以为是版本的问题,我又下载了一个1.3.4版本的TORCS,但是吗,依然没有scr_server,直到我找到了这篇文章,里面说有个patch要下载,我就照做了,可以依然报错,并且没法运行TORCS,无法定位程序输入点XXX于动态链接库XXX,我以为是dll文件缺失,就按照这篇文章去安装scr_server.dll文件(这个文件我在那个patch里找到的),

cmd regsvr32 c:\windows\system32\scr_server.dll

继续报错
在这里插入图片描述
  我在这卡了一会儿,不知道该咋整,但是办法总比苦难多,继续求助万能的网友,直到我找到了这篇文章,我看到了希望,原来是要把那个patch解压到TORCS的安装目录下,全部替换,到此再次运行wtorcs.exe,成功了!我按照博主的方法,运行snakeoil3_gym.py,结果还是一样,接着报错,server3101…但是令人惊喜的是,TORCS>race>practice>configure race里面找到了scr_server1,于是我点了accept>NEW RACE
TORCS的窗口显示,waiting for port 3001,到这里,我盲猜是snakeoil3_gym.py里面的port 设置的是3101,我进去改成3001就行了,到这里,我的环境彻底配置好了。

4.总结

  能搭建好这个环境,真是多亏了各路神仙网友,我也打算记录一下我遇到的问题,接下来会继续记录我的菜鸡入门之路,希望这个假期能把第一个DQN程序跑通!最后,感谢BJX的鼓励,否则我真的想放弃TORCS回去用airsim了,后续也会更新一下我搭建airsim仿真环境的过程。

  • 22
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
《使用Python的强化学习算法》是一本由Packt出版的书籍。这本书的主要内容是介绍如何使用Python编写强化学习算法来解决人工智能挑战。强化学习是人工智能领域中一个非常流行且具有前景的分支,它涉及到构建更智能的模型和代理来完成任务。这本书的代码库提供了一些实现强化学习算法的示例代码,可以帮助读者学习、理解和开发用于应对AI挑战的智能算法。 关于Python自动驾驶算法代码的具体内容,我目前没有找到与之相关的引用内容。但是在自动驾驶领域中,深度强化学习是一种常用的方法。深度强化学习可以通过让智能代理根据环境的反馈逐步学习和改进,来实现自动驾驶任务。在使用深度强化学习进行自动驾驶时,离散操作的问题可能会较为适用,而在连续动作空间中可能会遇到一些挑战。因此,在自动驾驶中,对于代码实现来说,需要考虑到适合的学习率、网络架构等因素。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [Reinforcement-Learning-Algorithms-with-Python:Packt发布的Python强化学习算法](https://download.csdn.net/download/weixin_42113794/19102832)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [硕士论文:自动驾驶中的深度强化学习:用于使汽车学习TORCS中驾驶的A3C算法; Python 3.5,Tensorflow,...](https://download.csdn.net/download/weixin_42114041/15047216)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值