回帖奖励 40 金钱      回复本帖可获得 5 金钱奖励! 每人限 1 次
楼主

[其他] 【建议帖】关于裁判系统server/client端的建议

[复制链接]
顾问shadowdancer
2022-3-10 12:31:02 只看该作者

马上注册,玩转Robomaster!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一直以来队里部署裁判系统相关的软件服务都是由我来负责,因此感觉有几个用起来不是很方便的地方,希望官方大哥们看下要不要改进:
1. 服务器和客户端启用必须要指定静态ip,但是根据我仅有的几次部署开源服务的经验来看似乎没有理解这一点为什么是必要的。如果能做到不更改服务器和客户端ip的情况下实现链接,将会变得很方便。比如类似的服务就是华南虎自研的模拟器,只要客户端输入服务器端的ip就可以参加。如果是为了加密需要,完全可以部署一个不与互联网相连的局域网嘛。。大概?除了需要额外购买路由器之外,由于裁判系统要求的静态IP与访问互联网有冲突,所以只能在局域网下进行,如果一边查找资料一边部署会很痛苦(想起了在断网组的苦逼日子)。而且由于我本人不是专职负责运维的同学,要兼顾日常的开发任务,所以不太方便将私人电脑长期当做server端运行(面向google编程!
2. 不太清楚源码有没有用到windows的动态库,如果没有的话,可不可以尝试编译或交叉编译一版linux的版本呢?我们现在正好有一个半闲置的linux服务器,由于不时需要ros等windows不支持的环境,所以不太方便刷成windows server(而且是租的云服务器,所以没法改成指定ip)。如果说ui显示需要比较大带宽的话,其实学校也有一些老师课题组用来炼丹的私有化服务器,可以提供比较流畅的远程桌面以供ui界面展示。不过令人遗憾的是基本所有的服务器都是基于linux的。
3. 基于很多队伍已经租有小型的云服务器,但可能受限于校园网的小水管带宽等原因,再加上裁判系统在很多情况下都只是需要输入相关场地指令而没有太多可视化需求这一点,如果实现了基于linux编译的版本,可不可以提供一个基于命令行运行的方式呢?即通过指令启动并输入比赛控制信息,并且在日志等文件中打印重要的比赛信息以供复盘使用。

如果实现上述功能的话,我想到的一些收益为:
1. 一次部署长期使用,服务器端可以长期在远程服务器后台运行(如上文所描述的,甚至可能不需要展示ui界面),使用时只要客户端输入服务器端相关ip或端口即可接入。
2. 对于新队伍来说部署裁判系统软件可能是一件比较麻烦的事,并且与机器人相关的技术栈似乎并不太重合,这样一来避免复杂的静态IP配置操作可以降低新队伍的门槛。

不知道上述功能可不可以借助docker或其他方式实现,按我目前的理解似乎是不太行的。。不知道有没有大佬实现了相关操作,可不可以分享下?

也欢迎大家来讨论分享下部署裁判系统的相关经验与教训~

(不负责任的猜测,感觉这套系统很像软件部大哥的手笔=。=
跳转到指定楼层
推荐

[其他] 【建议帖】关于裁判系统server/client端的建议

[复制链接]
顾问shadowdancer
 楼主| 2022-3-29 16:53:41 只看该作者
你的博客我看过!之前第一次搭裁判系统就是按照你的教程搭建的,写的很棒!
我认为官方可能已经在准备基于互联网而不是局域网的版本了,表现就是今年我第一次打开新版裁判系统服务端的时候发现可以拉到赛事流程的json了,好像其中一个是西南石油大学?
关于第三点,路由器开启DHCP之后就会指定某台设备的ip而不是动态分配,因此本机其实没有必要进行静态ip设置。
回复 支持 1 反对 0

使用道具 举报

沙发

[其他] 【建议帖】关于裁判系统server/client端的建议

[复制链接]
梯队队员Colyn
2022-3-28 10:26:58 只看该作者

回帖奖励 +5 金钱

虽然我不是官方人员,但对相关技术栈比较熟悉,这里解答一下的提到的一些相关问题:
1.为什么不开发linux版本的裁判系统?
A:没必要,增加开发成本,因为裁判系统只需要运行在普通电脑上,包括服务器软件和客户端,机器人端在主控模块里已经有相关功能。而windows用户远比mac用户更是远比linux用户多,官方完全没必要开发其他操作系统版本。
2.为什么不做成可以部署到云服务器上的赛事引擎?
A:原因很简单,首先这个系统主要是官方用来比赛用的,开放给大家用只是为了让我们熟悉系统的使用和赛事流程,所以一开始的设计初衷就不是面向学生的。因此为了保证安全性且比赛只需要在局域网环境下进行(传输更稳定更安全,且成本更低),且软件检测网关肯定是在软件里已经写固定了的,很难做到网关变化而我裁判系统和客户端、机器人端还能实现组网,外网都不是192.168.x.x。总之没必要。
3.为什么要设置静态ip?
因为防止ip冲突,虽然路由器开启了DHCP模式,但对于作为服务器的电脑端,但因为IP是由路由器动态分配的,因此机器人和客户端未必能检索到服务器进行通讯,因此官方约定服务器端的ip为192.168.1.2。
其他问题及快速搭建过程方法见https://blog.csdn.net/qq_34532102?type=blog置顶文章
地板

[其他] 【建议帖】关于裁判系统server/client端的建议

[复制链接]
步兵djiuser_83CeVnN
2022-3-29 21:08:36 只看该作者

回帖奖励 +5 金钱

很值得,谢谢大佬
5#

[其他] 【建议帖】关于裁判系统server/client端的建议

[复制链接]
梯队队员Colyn
2022-3-30 00:19:15 只看该作者
本帖最后由 Colyn 于 2022-3-30 00:46 编辑
shadowdancer 发表于 2022-3-29 16:53
你的博客我看过!之前第一次搭裁判系统就是按照你的教程搭建的,写的很棒!
我认为官方可能已经在准备基于 ...

谢谢,我大概明白你的意思了。你应该是希望大疆做一个linux端真正跑的那种服务器,然后客户端和机器人端通过路由器联网自动和服务器交互对吧?这样确实能避免搭建的复杂性。但可能会存在一些其他问题,不过这种方式确实有一定意义。可能官方考虑到其他原因吧,我个人觉得如果做成跑在web端的服务器的话,有一点不好的是可能其他队伍用云服务器会比用电脑更麻烦,比如我们战队的一个场地里面是直接没有信号的,反正网络容易受限,做成windows电脑端的好处就是路由器不需要联网都行,不论从成本、安全、使用难度和信号角度还是电脑端比较适合,因为方便组网和调试。

你说的改ip导致不能上网和需要专门的电脑做服务器端的问题我已经解决了,我写了一个专门用来解决搭建服务器、设置图传IP和检测IP参数的软件项目,可以看我博客的置顶文章,或者在论坛里搜我发的那个裁判系统解决方案。
博客:https://blog.csdn.net/qq_34532102
6#

[其他] 【建议帖】关于裁判系统server/client端的建议

[复制链接]
梯队队员Colyn
2022-3-30 00:43:18 只看该作者
纠正一个小错误,DHCP的意思就是由网关自动分配IP给该局域网内的设备。就现在的软件而言,服务端设置静态IP 192.168.1.2是为了方便该局域网内的其他AP(机器人和客户端)找到并连接服务器。
至于MySQL的作用我今天晚上专门测试了一下,详细信息见https://bbs.robomaster.com/forum ... &extra=page%3D1
7#

[其他] 【建议帖】关于裁判系统server/client端的建议

[复制链接]
顾问shadowdancer
 楼主| 2022-3-30 15:10:06 只看该作者
Colyn 发表于 2022-3-30 00:19
谢谢,我大概明白你的意思了。你应该是希望大疆做一个linux端真正跑的那种服务器,然后客户端和机器人端通 ...

太棒了!!准备过两天试一下!
8#

[其他] 【建议帖】关于裁判系统server/client端的建议

[复制链接]
顾问shadowdancer
 楼主| 2022-4-1 16:32:29 只看该作者
Colyn 发表于 2022-3-30 00:43
纠正一个小错误,DHCP的意思就是由网关自动分配IP给该局域网内的设备。就现在的软件而言,服务端设置静态IP ...

BTW, 其实我是说现在大部分路由器的设置界面支持在DHCP模式下指定某几个设备的ip固定不变
9#

[其他] 【建议帖】关于裁判系统server/client端的建议

[复制链接]
梯队队员Colyn
2022-4-9 21:15:15 只看该作者
shadowdancer 发表于 2022-4-1 16:32
BTW, 其实我是说现在大部分路由器的设置界面支持在DHCP模式下指定某几个设备的ip固定不变 ...

是的哈哈
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

触屏版 | 电脑版

Copyright © 2024 RoboMasters 版权所有 备案号 粤ICP备2022092332号

快速回复 返回顶部 返回列表