本科毕设——树莓派ROS编程(一)
环境搭建
我的硬件型号为raspberryPi 4B 4GB版本,内存卡容量为64GB
安装 Ubuntu mate 20.04
链接: Ubuntu mate 官网.
由于 4B 推出时间比较晚,测试发现ubuntu mate 18.04和16.04都无法在4B上运行。
安装 ROS
这部分可以参考 ROS wiki 中noetic版本的安装教程
链接: ROS wiki
设置中科大的安装源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
设置Key
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
首先需要更新 apt(以前是 apt-get, 官方建议使用 apt 而非 apt-get),apt 是用于从互联网仓库搜索、安装、升级、卸载软件或操作系统的工具。
sudo apt update
这里直接安装 ros-noetic-desktop-full 会提示无法定位软件包,这里只安装 ros-noetic-desktop 版本,而且考虑到树莓派性能有限,一般也不会在树莓派上运行3D仿真。
sudo apt install ros-noetic-desktop
然后配置环境变量
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
由于 rosdep 初始化经常报错,这里暂时不安装,等需要的时候再装。运行 roscore ,能正常运行则安装成功。
安装 WiringPi
后面会用到树莓派4B 的 GPIO, 因此还需要安装 WiringPi
sudo apt install wiringpi
安装完成后还需要更新 WiringPi 的版本以适配 4B,可以参考:
链接: https://blog.csdn.net/tfb760/article/details/101292027.
完成后执行
gpio readall
可以看到各个引脚的状态。
实现分布式多机通信
我的电脑安装的系统为 Ubuntu 16.04 LTS,ROS 版本为 kinetic
确保树莓派与电脑在一个路由器下,分别输入
ifconfig
查看电脑和树莓派的 ip,分别将他们的 ip 设置到对方的 hosts 文件中
电脑端:
sudo vim /etc/hosts
添加:
192.168.0.106 zs-raspberrypi #输入树莓派端的ip和计算机名(不是用户名)
树莓派端同理
在树莓派端设置 ROS_MASTER_URI
sudo vim ~/.bashrc
添加:
export ROS_MASTER_URI=http://zhusheng-VirtualBox:11311