D:\#me\第19届全国大学生智能车竞赛(智慧医疗机器人创意赛)\数字环境使用文档及启动文件\src>python bridge_client.py 192.168.1.105 8080
config.yaml文件不存在或格式有误,请检查!
(若使用脚本运行则请忽略)
ip:192.168.1.105.
端口号:8080.
正在 Ping 192.168.1.105 具有 32 字节的数据:
来自 192.168.1.105 的回复: 字节=32 时间=227ms TTL=64
192.168.1.105 的 Ping 统计信息:
数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 227ms,最长 = 227ms,平均 = 227ms
************************
*** ip:192.168.1.105 ***
*** ip有效, 正在连接 ***
************************
连接主机 ws://192.168.1.105:8080.
Traceback (most recent call last):
File "D:\#me\第19届全国大学生智能车竞赛(智慧医疗机器人创意赛)\数字环境使用文档及启动文件\src\bridge_client.py", line 435, in <module>
foxGlove2OriginCar = FoxGlove2OriginCar(
^^^^^^^^^^^^^^^^^^^
File "D:\#me\第19届全国大学生智能车竞赛(智慧医疗机器人创意赛)\数字环境使用文档及启动文件\src\bridge_client.py", line 37, in __init__
self.init()
File "D:\#me\第19届全国大学生智能车竞赛(智慧医疗机器人创意赛)\数字环境使用文档及启动文件\src\bridge_client.py", line 46, in init
self.check_host()
File "D:\#me\第19届全国大学生智能车竞赛(智慧医疗机器人创意赛)\数字环境使用文档及启动文件\src\bridge_client.py", line 140, in check_host
self.ros = Ros(host=self.host, port=self.port)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Thomas\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\roslibpy\ros.py", line 39, in __init__
url = RosBridgeClientFactory.create_url(host, port, is_secure)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Thomas\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\roslibpy\comm\comm_autobahn.py", line 122, in create_url
url = host if port is None else create_url(host, port, is_secure)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Thomas\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\autobahn\websocket\util.py", line 84, in create_url
assert port is None or (type(port) == int and port in range(0, 65535))
AssertionError
D:\#me\第19届全国大学生智能车竞赛(智慧医疗机器人创意赛)\数字环境使用文档及启动文件\src>
=====================================
"C:\Users\Thomas\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\autobahn\websocket\util.py", line 84, in create_url
assert port is None or (type(port) == int and port in range(0, 65535))
经过调查,输入create_url函数的port参数实际类型为str
在文件\src\bridge_client.py中,函数init_arg中,第81行
self.port = self.argv[2]
self.argv是字符串类型的数据,因此self.port也成了字符串类型
所以这里应该修改一下
self.port = int(self.argv[2])
再测试就OK了