树莓派的Ubuntu系统镜像可以在Ubuntu官网下载,Server是服务器版本,amd64代表64位,armhf代表32位,raspi3和raspi4分别代表树莓派3和树莓派4。
我们选择64位的Ubuntu Server 20.04.2 LTS
下载好后将系统烧写到卡里,树莓派官方出了一个烧写工具比较好用,也可以用balenaEtcher或者Win32DiskImager等其他工具。
SSH默认是安装的,可以直接连接,用户名和密码都是ubuntu,第一次登录会要求更改一个复杂一点儿的密码。
如果无法连接可以尝试把卡插在电脑上在system-boot目录新建一个ssh文件(没有后缀)
Mac可以直接在终端输入:
touch /Volumes/system-boot/ssh
之后将卡插入树莓派开机即可。
第一次开机推荐直接使用网线连接电脑,容易获取树莓派的IP地址,如果电脑连网的话树莓派也会自动连网。
如果Mac已经连网,用网线连接树莓派后在终端输入:
arp -a
找到后缀为[bridge]的IP就是树莓派的IP地址。
树莓派开机后在终端输入:
ssh [email protected] //改为你树莓派的IP地址
就可以使用ssh连接树莓派了。
Windows可以用putty连接。
命令行输入:
sudo su //切换为root用户
nano /etc/apt/sources.list
把所有的url全换为https://mirrors.ustc.edu.cn/ubuntu-ports/
之后
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ubuntu-desktop
等待安装完成后重启树莓派就可以进入桌面了
sudo reboot
Ubuntu自带屏幕共享的功能,但必须要插上屏幕才能使用VNC连接。
在设置中找到Sharing中的Screen Sharing
需要先连接一个wifi才能打开
现在连接会报错,需要安装dconf-editor:
sudo apt-get install dconf-editor
打开dconf Editor,在/org/gnome/desktop/remote-acess/
中关闭require-encryption
之后就可以使用wifi的IP地址进行vnc连接了。
ROS的安装可以参考官网的教程。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
这个源的速度可以接受,也可使用国内源,但有的源会404。
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
也可以使用curl代替apt-key:
curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
sudo apt-get update
有好多版本可选,这里我们安装最全的
sudo apt install ros-noetic-desktop-full
注意这里的noetic,Ubuntu20.04对应的版本号是noetic,如果添加源后无法找到包的话可以检查一下版本号是否和系统版本对应。
如果还是找不到包的话可以使用命令找一下有哪些包可用,并安装可用的包
sudo apt-cache search ros-noetic
Bash:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
zsh:
echo "source /opt/ros/noetic/setup.zsh" >> ~/.zshrc
source ~/.zshrc
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
注意这里都是python3,有些18.04的教程是python,会出现问题。
sudo rosdep init
rosdep update
到这里ROS就安装好了,可以用小乌龟测试一下,这里就不写了,直接使用激光雷达。
这里使用的是思岚A1激光雷达,其他激光雷达方法类似。
mkdir -p ~/rplidar_test/src
cd ~/rplidar_test/src
git clone https://gitee.com/h_yun/rplidar_ros.git
从GitHub clone速度可能会很慢,这里用的是是我导入码云后的链接。
cd ..
catkin_make
source /turtlebot_ws/devel/setup.bash
将激光雷达连接树莓派
ls -l /dev |grep ttyUSB
sudo chmod a+rw /dev/ttyUSB0
命令行输入
roscore
打开另一个终端
cd ~/rplidar_test/src
. devel/setup.bash
roslaunch rplidar_ros view_rplidar.launch
这时会发现激光雷达停转一下后继续转,之后就能在屏幕上可以看见图像了
这样就说明环境已经配置好了,雷达正常工作。
参考[ROS学习笔记]ROS中使用激光雷达(RPLIDAR)
这里参考思岚A1激光雷达hector_mapping建图与定位
sudo apt-get install ros-noetic-hector-slam
如果之前安装的是ros-noetic-desktop-full,那么就可以直接进行下一步了。
nano ~/rplidar_test/src/rplidar_ros/launch/test0.launch
内容如下:
原文中有较为详细的代码解释,可以参考一下。
roscoe
打开另一个终端:
cd ~/rplidar_test/src
. level/steup.bash
roslaunch rplidar_ros view_rplidar.launch
这时就可以看见二维图像了
至此,环境的配置就全部结束了。