基于windows的TORCS安装配置

本文档详细介绍了在Windows 10环境下安装TORCS赛车游戏平台的步骤,包括下载安装包、应用补丁以及手动启动游戏。然后,讲解了如何配置AIrobot,特别是设置scr_server1进行客户端-服务器通信。注意端口和机器人配置的对应,并提到了可能遇到的问题及解决方案。最后,给出了后续的源码资源和实验中遇到的问题。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、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.在该平台研究机器学习相关算法

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值