Blog

菜单

菜单

  • 博客
  • 邮件
  • 订阅
  • 登陆

页面

  • 目录
  • Linux命令

最近的帖子

  • 讯飞智能救援赛后总结
  • CentOS7 部署饥荒服务器
  • [学习笔记]FreeRTOS
  • [学习笔记]Socket通信
  • 树莓派ROS安装指南

档案

  • August 2024
  • March 2024
  • May 2023
  • February 2023
  • January 2023
  • September 2022
  • August 2022
  • December 2020
  • November 2020

August 2024

  • 讯飞智能救援赛后总结

    前言 整个比赛差不多花了3、4个月,可算是结束了。名次上预估国二 开头先吐槽一下讯飞二代车的诸多硬件问题,麦克风扬声器摄像头总会检测不到、雷达漂移断点甚至在某个方向还有一片死区、小车wifi不稳定远程连接总是断开、开关机只能通断电源没法软件上操作不然那个b风扇就会狗叫个不停、陀螺仪的逆天输出原地不动的情况下还会在10cm范围内反复震荡(md小车最小通行距离也就50cm),整台车甚至在工作半小时后就会开始出现各种玄学问题。就这车,可以说给我带来了非常糟糕的比赛体验,但好在为了解决这些问题还是学到了新东西。 客观来说我觉得比赛的内容并不困难,主要的障碍还是小车的硬件环境。摄像头高度太低不知道是不是命题人有意为之,确实要比常规巡线困难不少。不过我主要还是做的寻找工具那块,初看赛题内心很糟糕,因为在此之前没有任何处理雷达数据的经验,最后只能尝试用计算几何的知识硬算(我计算几何学得很烂w_w)。 正文 具体来说,场地内,雷达能扫到的只有边界和板子,只要想办法过滤掉边界,对剩下的板子枚举就好了。问题就是怎么过滤掉边界,可以注意到边界为矩形(黄色区域)。 只要小车在黄色区域内运动,雷达总会获取到这个矩形的信息,但是由于有板子的遮挡,你并不能完全拿到这个矩形,当你试图补全这个矩形,你就会发现,这个矩形刚好是雷达读取到的所有点的最小外接矩形。 那么问题就转变为:“给定一个子元素为(x,y)的点集,求它的最小外接矩形。” 对于这个问题,我的做法是先用Graham算法求出点集的凸包,再根据最优情况下至少有一条矩形边与凸包的边重合,枚举凸包的边求出矩形。 关于如何求解凸包和Graham算法的内容,可以看这篇文章数论小白都能看懂的平面凸包详解 - 洛谷专栏 求完凸包后,我们需要对于凸包的每条边,找出满足下面条件的矩形。 以这条边所在直线的一部分为一边 包含这个凸包的所有点 面积最小 答案即为这些矩形中面积最小的一个。 贴一下第一个条件的证明,另外两个很好理解,因为是外接矩形,它当然至少要包含所有的点,同时保持面积最小 怎么找这些矩形,这是个问题,看看这张图 为了方便起见,当前正在考虑的边画成水平。 我们要分别求出最右、最上、最左的点(点的数量很少,枚举每一个凸包内的点即可,比如分别枚举ABCDQP),再加上当前边一定包含最下的点,这样便能得到矩形的长宽。 但是不喜欢枚举怎么办…

    永久链接至 “讯飞智能救援赛后总结”

March 2024

  • CentOS7 部署饥荒服务器

    服务器依赖 sudo yum update sudo yum -y install glibc.i686 libstdc++.i686 libcurl4-gnutls-dev.i686 libcurl.i686 screen 安装SteamCMD cd /root && mkdir steamcmd && cd steamcmd wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar -xvzf steamcmd_linux.tar.gz #启动安装程序 ./steamcmd.sh 设置安装目录 force_install_dir /root/dstserver login anonymous # download app | update app_update 343050 validate 映射游戏依赖 ln -s /usr/lib/libcurl.so.4 /home/dstserver/bin/lib32/libcurl-gnutls.so.4 启动脚本 cd /root/dstserver/bin echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /root/dstsave -conf_dir dst -cluster World1 -shard Master" > master_start.sh echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /root/dstsave -conf_dir dst -cluster World1 -shard Caves" > cave_start.sh chmod +x master_start.sh cave_start.sh 输入 ./master_start.sh 启动服务器正常显示为 设置存档 服务器token,放在 World1/cluster_token.txt 特别注意.ini文件…

    永久链接至 “CentOS7 部署饥荒服务器”
2023的档案