前期准备
本节将介绍使用小车的一些前置准备,有了这些基础可以大大提高你的开发和学习效率。
连接小车
可以把小车想象为一个Linux服务器或者主机,我们可以使用键鼠和显示器进行桌面控制,也可以用ssh远程连接。下面介绍几种控制方法:
-
键鼠显示器控制:由于小车上usb接口很少,你需要自备拓展坞插键鼠。显示器接HDMI接口,开发阶段可以接大显示器(大屏护眼);测试阶段可以买一根HDMI转Type-C线,插在平板上使用(平板上下个相关软件即可),比较方便调车。
-
ssh远程连接:让小车和电脑处于同一局域网内。你可以选择小车开热点,也可以手机开热点,也可以用路由器。开发阶段,我推荐用手机开热点,因为小车和电脑都可以上网,方便查资料下载文件。比赛的时候是使用路由器,无法上网。
你可以使用vscode安装
Remote-SSH插件进行连接,好处在于写代码方便,但是vscode终端不能显示图像不能弹出窗口,所以只能用来做一些启动工作。推荐使用MobaXterm,终端可以弹窗口。一般两个都连着,vscode改代码,MobaXterm看效果。 -
远程桌面:可以安装如
nomachine、todesk等远程桌面控制软件,但是必须买一个hdmi欺骗器插在接口上,不然无法显示桌面 -
主从机:不推荐,需要你的电脑也安装Ubuntu和ROS。我早期使用这个方法那叫一个折磨,双系统安了半天,主从机又配置半天。
注意用vscode连接时,下载vscode服务器是需要联网的。如果始终下载不了或者连不上,可以把小车上的.vscode-server目录删了再试试。
环境相关
-
校赛阶段,大多都是几个组共用一台车,所以强烈建议每个组维护自己的python环境。可以使用
conda、venv等环境管理工具创建虚拟环境。这样可以避免与其他组的环境冲突。 -
定期清理
.cache目录,里面几乎都是没什么用的缓存,还占用很大空间。定期清理ROS的log日志,也是会占用空间。如果某天发现vscode连不上了,也有可能是存储空间不足。 -
在ROS工作空间中,每次打开新的终端都要刷新环境变量很麻烦。在
home目录下的.bashrc文件中添加以下指令,每次开终端自动刷新环境。设你的工作空间路径是 ~/ucar_ws(根据实际路径替换): source ~/ucar_ws/devel/setup.bash -
在功能包下新建的
python节点需要添加可执行权限,新建的c++节点需要配置CMakeLists.txt,并且每次修改c++文件需要重新编译才能生效。
代码维护
由于很多组会共用一台车,所以代码安全十分重要!建议每次调完车都备份并删除代码。下面介绍两种代码维护方式:
- 使用移动存储设备如U盘、移动硬盘等,每次调完车将最新的代码拷贝下来。优点是,备份方便。
- 使用
git仓库维护,非常推荐,git的好处可就太多了。每次调完车上传一下代码,回寝室还可以在本地拉下来继续改,改好了又上传,下次调车直接克隆最新代码。建议只上传功能包中src文件夹,其他两个devel和build是由编译生成的不需要备份,不然每次上传和克隆的文件会非常大,每次只需要克隆src再编译即可。此外,如果有代码改错或者损毁的情况,可以查找历史提交直接退回。
讯飞组的竞争非常激烈,比赛时运气和实力并存才能取得好成绩。我建议新加入并且想取得好成绩的朋友们,不要盲目依赖于历届学长的代码。虽然小车传感器就那几个,任务模块也是围绕导航、识别、找板子、巡线不会有很大出入。但是毕竟每年都是新的赛题,各个任务模块的组合顺序不一样,所以想要在传承的代码上进行微调完赛几乎是不可能的。
希望这个系列的后续文章能让你了解和熟悉各个传感器,一步一步地搭建起项目框架并教会你去思考如何通过几个传感器去实现任务。
请点击此链接下载讯飞二代车原始功能包,并完成编译。若有最新版本请以科大讯飞机器人开放平台为准。
更多关于全国大学生智能汽车的分享,请访问个人主页。
期待你的评论与交流!