提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、TORCS安装
环境WIN10,python3.8
主要参考以下链接:
https://www.cnblogs.com/Qwells/p/6379077.html
大概步骤是:
1.下载安装包,一键操作.exe直接安装;
2.下载patch包,安装目录替换文件。
3.双击wtorcs.exe,即可进入平台。Race->Quick Race -> New Race.
这个时候已经可以正常手动玩赛车游戏了。
其他环境安装:
编译器用的pycharm,依赖库的话,需要哪个装哪个,不再赘述。
二、配置AI robot
Quick race -> configure ->accept -> 选择 scr_server1
感觉程序通信机制好像是 server-client 机制,我不是学通信的,具体不太懂,有大佬解答一下就好了。
源码中配置Client部分如下:
def respond_to_server(self):
if not self.so: return
try:
message = repr(self.R)
self.so.sendto(message.encode(), (self.host, self.port))
except socket.error as emsg:
print("Error sending to server: %s Message %s" % (emsg[1],str(emsg[0])))
sys.exit(-1)
if self.debug: print(self.R.fancyout())
# Or use this for plain output:
#if self.debug: print self.R
def get_servers_input(self):
'''Server's input is stored in a ServerState object'''
if not self.so: return
sockdata= str()
while True:
try:
# Receive server data
sockdata,addr= self.so.recvfrom(data_size)
sockdata = sockdata.decode('utf-8')
except socket.error as emsg:
print('.', end=' ')
#print "Waiting for data on %d.............." % self.port
if '***identified***' in sockdata:
print("Client connected on %d.............." % self.port)
continue
elif '***shutdown***' in sockdata:
print((("Server has stopped the race on %d. "+
"You were in %d place.") %
(self.port,self.S.d['racePos'])))
self.shutdown()
return
elif '***restart***' in sockdata:
# What do I do here?
print("Server has restarted the race on %d." % self.port)
# I haven't actually caught the server doing this.
self.shutdown()
return
elif not sockdata: # Empty?
continue # Try again.
else:
self.S.parse_server_str(sockdata)
if self.debug:
sys.stderr.write("\x1b[2J\x1b[H") # Clear for steady output.
print(self.S)
break # Can now return from this function.
三、注意事项
(1)在TORCS中一共提供了10个可供配置的ROBOT,scr_server 1- 10,对应的port分别是 3001-3010,这个关系一定要对应好,不然会提示“waiting for port XXX”
(2)GUI中配置scr_server的时候,要把该成员放在第一位,不然识别不到server,表现出来就是“运行snakeoil3_gym.py后,车不动”。
snakeoil3_gym.py 是一个简单的示例程序,用简单的控制策略控制小车前进。
其他未知问题可以参考这位仁兄的笔记,他踩的坑比较多…
https://blog.csdn.net/weixin_46995912/article/details/112639585?spm=1001.2014.3001.5501
后续
1.源码资源在我主页-资源里,下载即可。
2. experiment.py 目前没有调通,提示time out for answering,欢迎一起交流
3.在该平台研究机器学习相关算法