零. 树莓派编译
记录编译过程的方法和一些问题
一. 已有工程文件拷贝至树莓派
1. 已有工程文件拷贝至树莓派
根据自身所做项目,拷贝工程文件到树莓派,注意文件路径,文件夹名称等。
2. 编译
进入工程文件夹,编译
catkin_make -j8
(1)问题:Could not find the required component ‘tf2_geometry_msgs‘. The following CMake error indicates that…
原因:缺少库
解决:安装库
sudo apt install ros-kinetic-tf2-geometry-msgs
指令撰写规则
①kinetic:如果是ros的其他版本,只需要将kinetic换成你的版本即可
②包名:注意要把包名中的 _ 换成 - ,其他包类似。
(2)问题:编译的时候卡死
原因:树莓派的swap交换空间不够
解决:
①确保系统中有足够的空间来用做swap交换空间,在/opt/image中添加2G的swap交换文件
cd /opt
sudo mkdir image
cd image
sudo touch swap #创建文件
sudo dd if=/dev/zero of=/opt/image/swap bs=1024 count=2048000
添加交换文件并设置为2G(也可以设置为1G),运行此命令会等待几分钟后返回:
1024000+0 records in
1024000+0 records out
大小 copied, 所用时间 s, 速度 MB/s
②创建(设置)交换空间,使用命令mkswap
sudo mkswap /opt/image/swap
返回:
Setting up swapspace version 1, size = 2 GiB (2097147904 bytes)
③检查现有的交换空间大小,使用命令free
free -m
返回:
total used free shared buff/cache available
Mem: 925 185 28 14 711 660
Swap: 0 0 0
或者检查meminfo文件
grep SwapTotal /proc/meminfo
④启动新增加的2G的交换空间,使用命令swapon
sudo swapon /opt/image/swap
⑤检查现有的交换空间大小,使用命令free
free -m
返回:
total used free shared buff/cache available
Mem: 925 185 28 14 711 660
Swap: 0 0 0
或者检查meminfo文件
grep SwapTotal /proc/meminfo
⑥修改/etc/fstab文件,使得新加的2G交换空间在系统重新启动后自动生效
sudo gedit /etc/fstab #也可以将gedit换成vim
在文件最后加入:
/opt/image/swap /swap swap defaults 0 0
重启之后再次编译,成功