Windows10下Webots R2023b外部控制器无法指定机器人名称及修改端口
解决Webots R2023b多外部控制器端口与机器人名称匹配问题
核心问题分析
你遇到的问题源于两个关键错误:
- 参数顺序错误:
--robot-name是webots-controller.exe的自身选项,必须放在控制器脚本路径之前,否则会被当成Python脚本的参数,Webots无法识别。 - 引号冗余:Windows环境下不需要给机器人名称加单引号,额外的单引号会让Webots尝试匹配名称为
'Abot'(带单引号)的机器人,而你的场景中机器人名称是Abot,导致匹配失败。
正确命令写法
1. Windows CMD 命令(控制Abot)
"D:\Program Files\Webots\msys64\mingw64\bin\webots-controller.exe" --robot-name=Abot "D:\Abot\controllers\robot_run\robot_run.py"
2. Python 脚本中的命令列表
command = [ "D:\\Program Files\\Webots\\msys64\\mingw64\\bin\\webots-controller.exe", "--robot-name=Abot", "D:\\Abot\\controllers\\robot_run\\robot_run.py" ]
控制监督者节点(robot)的命令
只需替换--robot-name参数值:
"D:\Program Files\Webots\msys64\mingw64\bin\webots-controller.exe" --robot-name=robot "D:\你的监督者控制器路径.py"
修改端口的方法
方式1:让Webots监听指定端口
启动Webots时添加--port选项,指定自定义端口:
"D:\Program Files\Webots\webots.exe" --port=1235 your_world.wbt
方式2:让控制器连接指定端口的Webots实例
在控制器命令中添加--port选项,放在--robot-name之后、脚本路径之前:
"D:\Program Files\Webots\msys64\mingw64\bin\webots-controller.exe" --robot-name=Abot --port=1235 "D:\Abot\controllers\robot_run\robot_run.py"
验证方法
- 确保Webots场景中两个机器人的控制器均设置为
extern。 - 分别启动两个控制器进程,若Webots界面中机器人节点旁显示控制器已连接(无红色感叹号),则说明配置成功。
内容的提问来源于stack exchange,提问作者ning
相关产品推荐
相关产品推荐

