树莓派4初次使用笔记
下载Pi OS树莓派显示黑边问题 远程连接(Remote)内置远程桌面Xshell SSH命令行连接 换源【此步十分重要】安装ROS问题合集[opencv3] still active & rosdep: no definition for OS [debian]error: ‘logWarn’ was not declared in this scope 成功安装 roscore主要有目录所示的几点,使用树莓派也是因为需要在ROS平台上搭建一个实际的ROS研究型小车,主要是摄像头、超声波、2维激光雷达的传感器融合建图
所以本文主要会有下载树莓派Pi OS系统,远程操作,下载ROS等几步,同小白所以可能很多步骤仔细且无法解释hhh 能解释的我尽量解释一下,基本都能找到前人给出的解决方案。
下载Pi OS
这个官方的软件基本无Bug,在写这篇文章的时候使用的是最新的raspberry pi 4 8G版,然而ubuntu mate 18的写入SD卡,不能启动,报错;ubuntu mate 20的写入,前面还行,安装什么都正常,一连接wifi 定位到时间地点后,陷入无限循环闪屏,卡机,并且无法重启、关机,只能断电源。无奈之下,只能下载官方的操作系统来搞了【虽然我知道这样并不适合】
树莓派官方下载地址
看有无时间,我放一个网盘链接,毕竟这个下载不科学上网 基本16kb/s emm
安装系统:Raspberry Pi OS (32-bit) Version:May 树莓派官方系统下载地址
安装ROS版本:ROS Kinetic 跳转目录
树莓派显示黑边问题
再一次根据别人的教程打开了config.txt,位于/boot/目录下。简单的读了一下,发现其实问题的答案一直在这里放着!在文件中有下面这么几行信息,其中提到了如果显示器有黑边就把注释(第10行)放开。
或者是直接左上角标->Preferences->Raspberry Pi Configuration -> Display -> Overscan: 点到Disable
远程连接(Remote)
内置远程桌面
首先设置好了一切之后【用户名和密码别搞忘了,用户名就是下图pi@raspberrypi的@前面的,图中所示的用户名也就是pi,输入
ifconfig
展示如图:
因为这里我链接的是wifi,所以对应wlan0 看到inet 192.168.0.141,OK 信息get 返回到现在使用的额WIN 10电脑,call小娜搜索远程桌面
打开,按着指示连接就行。
或者是通过
Xshell SSH命令行连接
基本就和自己搭服务器是一个道理,点击新建,改一下名称,主机设为刚刚查看所得的ip地址,如下两幅图所示:
换源【此步十分重要】
如果使用欧洲官方源,哇 那个速度真的是,痛苦不已 最多10kb/s一开始我不太懂树莓派的换源方法,ubuntu用惯了都是直接设置里面改的
教你如何给树莓派更换软件源【PS:nano 比vm好用太多了… 记得按回车确定保存修改原文件】
过程:设置好了->保存并退出Ctrl+X->Y->回车->Ctrl+X
清华大学开源软件镜像站:Raspberry Pi OS 镜像使用帮助【这个是官方实时维护的,大家可以双方参考】
安装ROS
主要参考的就是
1.清华大学开源软件镜像站 ROS镜像使用帮助
但是这个还没有Raspbian Buster的那个,直接改为:
deb https://mirrors.tuna./ros/ubuntu/ $(lsb_release -sc) main
然后下载的时候是可以自己读取版本信息的。
2.官方安装Kinectic on the Raspberry Pi教程
这里的每一步都十分详细,一开始我就没有仔细看,遇到一个就google一个,其实… 能遇到的问题其实官方都备注了… 也给了相关讨论的论坛帖
在这里先提醒一下各位,一定要换源,raspberry pi的源换了 还要加入ROS的源哦
rosdep update
在执行完这一步时,失败概率极其的高,主要是网络问题:
1.上网,然而小白捣鼓了半天都没开成
2.设置timeout时间,我设的是100,然后尝试基本8次左右,才更新OK
3.改手机热点,改开了代理的电脑热点,emm 基本无用
成功后会输出:
reading in sources list data from /etc/ros/rosdep/sources.list.dHit /ros/rosdistro/master/rosdep/osx-homebrew.yamlHit /ros/rosdistro/master/rosdep/base.yamlHit /ros/rosdistro/master/rosdep/python.yamlHit /ros/rosdistro/master/rosdep/ruby.yamlHit /ros/rosdistro/master/releases/fuerte.yamlQuery rosdistro index /ros/rosdistro/master/index-v4.yamlSkip end-of-life distro "ardent"Skip end-of-life distro "bouncy"Skip end-of-life distro "crystal"Add distro "dashing"Add distro "eloquent"Add distro "foxy"Skip end-of-life distro "groovy"Skip end-of-life distro "hydro"Skip end-of-life distro "indigo"Skip end-of-life distro "jade"Add distro "kinetic"Skip end-of-life distro "lunar"Add distro "melodic"Add distro "noetic"Add distro "rolling"updated cache in /home/pi/.ros/rosdep/sources.cache
到后面还有这一步
wstool init src kinetic-desktop-wet.rosinstall
可能会出现问题合集里的死循环,直接ctrl C终止了,继续,我的就是opencv3定位不到一直循环,第一次是roscpp卡死,ctrl C 然后输入这个再来一次
wstool update -j4 -t src
到后面的步骤就接着跟着Ros wiki上的教程走
成功rosdep后,最后一句话即图:All required rosdeps installed successfully
在这步之后,我们需要扩展一下我们的swap space,参考:/install-ros-noetic-raspberry-pi-4/
First we turn off sawp:
sudo dphys-swapfile swapoff
Then we edit the following file to increase the swap space form 100 MB to 1024 MB (1 GB). As you may notice as well, 100 MB is quite small.
sudoedit /etc/dphys-swapfile
Finally we call dphys-swapfile to set up the swap:
sudo dphys-swapfile setup
输出:want /var/swap=1024MByte, checking existing: deleting wrong size file (104857600), generating swapfile … of 1024MBytes
随后进行下一步:
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic
这一步比较长,放图
问题合集
参考:不知道是哪位仁兄做的这个,超仔细啊,调完bug从参考做起 点击这个蓝字跳转
[opencv3] still active & rosdep: no definition for OS [debian]
实际我安装的时候是:
[opencv3] still active
然后我就找 单独安装法,
cd ~/ros_catkin_wsrosinstall_generator desktop_full --rosdistro kinetic --deps --wet-only --tar > kinetic-desktop-full-wet.rosinstall
然后就出现了:
rosdep: no definition of [opencv3] for OS [debian]
这个的原因是opencv3并没有OS版本debian,但是我看有人安装melodic上可以:贴ROS论坛原文
I got finally install ROS Melodic+navigatiion+perception+navigation+opencv3.4.6. I only could not install gazebo 9 and ros_controls totally, I got it only partial.
然后我就直接下载下来解压放到/ros_catkin_ws/src下了,一同放在链接里吧,也可以参考:树莓派4B安装ROS(Kinetic版本)
error: ‘logWarn’ was not declared in this scope
/home/pi/ros_catkin_ws/src/geometry2/tf2/src/buffer_core.cpp:126:34: error: ‘logWarn’ was not declared in this scope
logWarn("%s",ss.str().c_str());
写的时候 遇到问题就查,看到一篇问题挺全的,emmm 好希望有人安装好了直接给系统做个copy上传,这样都不用等安装的时间了,能想象我第一次安装从晚上按到白天… 真的是
强烈建议提前看一下这里面遇到的错误,直接一次性解决:
树莓派4B安装ROS(Kinetic版本)
所有的编译错误基本我都遇到了 遇到一次改一次,效率十分的慢,建议一次性搞定
成功安装 roscore
放一张从… 黑夜安装到下午,终于完了… 【我本来想录一个视频教程的,但是我觉得这个周期巨长,放弃了 算了算了… 我还是直接把这个系统做个镜像分享出来吧】
一般测试都是小乌龟,那就小乌龟也来一张吧: