控制组快速入门(从入门到退队)
nuc基本配置
安装Ubuntu服务器版
插入装有ubuntu服务器版的u盘,进入u盘启动,正常安装即可。给/swap分配16g,/efi分配512m,剩下的硬盘空间全部挂载到/目录下。设备名看这台nuc给哪个机器人用,用户名dynamicx,密码dynamicx。安装完成后按照提示移除u盘,重启。
安装ssh,并通过ssh用你的电脑操控nuc
1、将自己的电脑连接上wifi,然后用一根网线将nuc和你的电脑连接。这时你的电脑左上方会出现有线连接的图标。进入有线连接,点击设置,点击IPV4,设置“与其他计算机共享网络”(类似的意思)。这样nuc就能上网了。可用`ping baidu.com`来检查是否已联网。
2、安装ssh服务器端
sudo apt install openssh-server
如需要安装依赖,按提示安装
3、在nuc上使用`ip a`查看nuc的ip地址。在你的电脑上输入指令`ssh dynamicx@“nuc的ip地址”`,这样你就能在你的电脑上操控nuc了。
换源
网上搜索国内的源,例如清华源,阿里源,换源。网上的清华源有的能用,有的是坏的,如果装清华源锅了就换一个。
安装easywifi
1、在github上搜索easywifi,第一个就是。将源代码clone下来,注意要用http。
2、安装easywifi依赖:
sudo apt-get install network-manager-config-connectivity-ubuntu
3、进入easywifi文件夹,输入
sudo python3 easywifi.py
4、成功运行easywifi,运行 *1*<!–Scan for networks–> 搜索wifi,然后运行 *5*<!–Setup new network–> 输入wifi名称和密码,让nuc连上wifi。
5、和nuc连上同一个wifi,继续用ssh操控nuc。
安装ros
安装ros请主要参考ros_wiki上的安装教程。请注意安装base而不是full-desktop。
安装catkin tools
catkin tools官方文档:https://catkin-tools.readthedocs.io/en/latest/ 如果你使用catkin build时需要你安装osrf-pycommon>0.1.1这个依赖,请输入以下指令:
sudo apt-get install python3-pip
pip3 install osrf-pycommon
rosdep
rosdep update 失败的参考解决方法:https://github.com/SparkChen927/rosdep
git clone https://gitclone.com/github.com/SparkChen927/rosdep.git
为机器人安装软件包
我们团队为 rm_control 和 rm_controllers 搭建了软件源,请根据 这个网站 给nuc添加软件源并把相应的软件包拉下来。
优化
1、你会发现开机很慢,这是一个系统服务导致的,可以设置将其跳过。
$ sudo vim /etc/netplan/01-netcfg.yaml`
注:这个文件可能不叫这个名字,可能需要转到/etc/netplan这个目录下看看。
在网卡的下一级目录中增加
optional: true
修改完后生效设置
$ sudo netplan apply
2、阻止nuc休眠
nuc长时间不用会休眠,会给工作带来一定麻烦。因此需要设置阻止nuc休眠。输入以下指令:
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
换内核
1、使用搜索引擎搜索xanmod,通常搜索结果第一个就是,打开 此网站 。
2、我们需要更换一个实时性更强的内核,这样的内核通常名字里会带有“rt”(realtime)。在这个网站往下拉会看到“Install via Terminal”(通过命令行安装)。根据提示安装自己想要的内核。
3、使用指令 sudo dpkg --get-selections | grep linux-image
来查看你想要安装的内核是否安装成功。
4、重启,按F2进入BIOS模式。在boot->Boot Priority勾选Fast boot。Power选项里勾选Max Performance Enabled,Dynamic Power Technology设为最长的那个,Power->Secondary Power Settings将After Power Failure设为Power on。cooling选项里将Fan Control Mode设置为Fixed,Fixed Duty Cycle设为100。***关闭安全启动***然后退出BIOS,正常启动。
5、测试新内核的实时性和can总线传输速率
P.S:如果进不了BIOS可尝试长按开机键直至指示灯变成橙色。
关于Clion的远程传输配置
免密登陆设置
当我们远程连接NUC的时候,需要输入密码,但是这样的话可能会比较麻烦,因此最好我们配置免密登陆,可以省去很多麻烦
命令行操作:
ssh-copy-id dynamicx@host
回车之后还需要输入一次密码,输入完之后就可以了,以后每次都可以免密登陆
配置CLion流程
首先在setting处的CMake一栏配置,在原有的debug下面点击添加符号,并命名为remote

然后设置remote中的CMake options为
-DCATKIN_DEVEL_PERFIX=../remote_devel
设置Build directory为
./remote_build
操作完之后CMake就配好了,配置好CMake之后,就会在工作空间下的src中生成remote_build这个文件,这里是远程主机中间生生成的编译文件
完成配置之后,如果在Build菜单栏中选择
Build Project则是本地以及远程主机中的包一起编译,
Build all Debug则是只编译本地的文件
接下来还需要配置deployment
配置deployment流程
部署远程文件地址和本地文件地址(能够在本地文件和远程文件进行同步)。
root path:远程文件的根路径 deployment path:远程文件相对于根路径的相对路径 local path:本地文件的路径
首先,在deployment处点击添加符号,文件类型选择SFTP,并命名为standard4(命名取决于是什么机器人,比如standard4是四号步兵),接下来是配置connection
点击SSH configuration处的省略号配置SSH如图

然后同样点击添加符号,开始配置相关信息
如图

Host处填写的是你需要远程连接的服务器的ip,用户名和密码都是队名,如图配置好之后点击Apply应用,之后点击OK,
接下来在配置Mapping,如图

现在这一步是把本地的路径映射到目标主机上去
本地路径分别是:/home/username/工作空间名/src 对应的deployment path为/home/dynamicx/rm_ws/src(固定的)
/home/username/工作空间名/src/remote_devel/lib 对应的deployment path为/home/dynamicx/rm_ws/src/devel/lib
/home/username/工作空间名/src/remote_devel/include 对应的deployment path为/home/dynamicx/rm_ws/devel/include
配置好之后应用再点击OK
最后一步是配置Excluded path
同样是点击添加符号,然后输入路径为/home/username/工作空间名/src/remote_build
然后配置好SSH之后退出到deployment界面,同样点击Apply,再点击OK,完成上述流程之后就完全配置好了,如果需要进行远程传输,则进行如下
流程
远程传输流程
在CLion中的工作空间中,点击src,选择你想要进行远程传输的功能包,鼠标右击,选择菜单栏中的deployment,如果需要从本地传输文件到远程主机则选择upload to “目标主机”,如果需要从目标主机中传输到本地,则选择download from “目标主机”
can总线的连接
初始化can
sudo ip link set can的编号 up type can bitrate 1000000
检查can是否已连接
candump can的编号`
发指令
cansend can的编号 标识符#16位数字 `
标识符有两种,分别是1FF和200,两种标识符对应两组电机。16位数字每4位对应一个电机的电流大小,共四个电机,即使电机不足四个也要补满16位。由此可见一根can线最多挂载八个电机。