Turtlebot3(数莓派4版本)无显示器安装ubuntu20.04+ROS-noetic+Turtlebot3-burger

目录

一、准备工作

1.1 硬件清单

1.2 软件清单

二、数莓派4安装ubuntu

2.1 系统烧录

2.1.1 下载+raspi.img>

2.1.2 格式化SD卡并烧录 

2.2 启动机器人并连接wi-fi 

三、下载安装ROS-noetic

3.1 无线连接Turtlebot3

3.2增加交换空间

3.3 安装ROS-noetic 

3.4 安装TurtleBot3及相关依赖包

3.4.1 安装相关依赖包

3.4.2 安装TurtleBot3包

3.4.3 安装LDS-02雷达包

3.4.4 配置模型和雷达的环境变量

3.4.5 允许将USB端口用于没有root权限的OpenCR板

3.5 Turtlebot3 OpenCR固件更新

3.5.1 安装相关依赖包

3.5.2  设置环境变量

3.5.3 下载最新固件

3.5.6 烧录固件

四、配置通信网络

4.1 同步时间

4.2 主从机设置 

4.2.1 IP地址获取

4.2.2 PC Ubuntu操作

4.2.3 Turtlebot3 Ubuntu操作

4.2.4 测试

五、结尾 

一、准备工作

1.1 硬件清单

-Turtlebot3机器人一台(搭载数莓派4+OpenCR开发板)

-网线一根

-路由器一台(可以上网且能进入管理界面) 

-电脑一台

-SD卡一张(16G及以上)

1.2 软件清单

-电脑安装Ubuntu 20.04并配置ROS-Noetic(也可以是22.04或者其他可以安装ROS-noetic的版本)(可以是虚拟机或单独系统,建议虚拟机)

-Win32DiskImager软件(windows系统下载地址)

-烧录软件(推荐使用数莓派官方的烧录软件,有windows和linux版本下载地址)

二、数莓派4安装ubuntu

2.1 系统烧录

2.1.1 下载

下载地址https://cdimage.ubuntu.com/releases/20.04/release/

Turtlebot3(数莓派4版本)无显示器安装ubuntu20.04+ROS-noetic+Turtlebot3-burger_第1张图片  

2.1.2 格式化SD卡并烧录 

打开’Win32DiskImager‘软件,选择SD卡,点击格式化(Format)

Turtlebot3(数莓派4版本)无显示器安装ubuntu20.04+ROS-noetic+Turtlebot3-burger_第2张图片

 格式化完毕后,打开下载的烧录软件,这里以数莓派烧录软件为例

Turtlebot3(数莓派4版本)无显示器安装ubuntu20.04+ROS-noetic+Turtlebot3-burger_第3张图片

选择系统(2.1.1所下载镜像)

选择路径(已格式化的SD卡)

烧录

等待

成功后有如下弹窗

Turtlebot3(数莓派4版本)无显示器安装ubuntu20.04+ROS-noetic+Turtlebot3-burger_第4张图片

2.2 启动机器人并配置wi-fi 

首先确保你Turtlebot3上的所有连线都按照官方手册连好,建议直接使用有线电源(将电源适配器插至OpenCR板开关右侧的供电口,如果电池电量充足也可以使用电池,电池快没电OpenCR板会蜂鸣报警)

1.连接电源(或电池)

2.用网线将数莓派与路由器连接

3.打开Turtlebot3的开关(位于OpenCR板上,正常情况下所有电路板都有LED亮,激光雷达会转)

4.等待大概30秒后可以在路由器的设备管理界面发现新增了一台名为ubuntu的有线连接设备,点开并查看其IP地址

5.在电脑安装的ubuntu中新建终端

ssh [email protected]
#'ubuntu'是默认用户名,‘1XX.1XX.X.1XX’更换为上一步查看的IP地址
#连接成功后终端名会变为‘ubuntu@ubuntu’
#默认密码为ubuntu,下一步会让你更换密码,先输入原来的ubuntu,再更改,成功后,再次
ssh [email protected]
#输入更改后的密码登录

本文无特殊提示的所有操作都是在这个终端窗口进行

下一步配置Wifi,首先启动无线网卡

sudo ip link set wlan0 up

修改配置文件

sudo vi /etc/netplan/50-cloud-init.yaml

这一步使用Vim编辑器修改,输入‘i’进入输入模式,方向键移动光标,修改为如下所示格式(name用你的WIFI名字替换,password后引号中输入密码,注意冒号后有空格),输入完成后Esc退出输入模式,输入指令":wq!"保存且退出

network:
    ethernets:
        eth0:
            dhcp4: true
            optional: true
    version: 2
    wifis:
        wlan0:
            dhcp4: true
            access-points:
                "name":
                     password: "xxxxxxxx"

下一步验证语法

sudo netplan generate
#若有报错返回上一步修改

 应用配置

sudo netplan apply

 等待1分钟左右,进入路由器设备管理界面,发现有一台新的名为‘ubuntu’的无线设备接入证明wifi配置成功,之后的所有操作都可以无线进行,不需要连接网线。

三、下载安装ROS-noetic

3.1 无线连接Turtlebot3

打开Turtlebot3开关,打开路由器管理界面,找到ubuntu的无线设备,查看IP,此处记为192.168.1.101(可以直接在路由器界面将IP与MAC绑定,这样Turtlebot3的无线IP地址就不会变动)

ssh [email protected]

3.2增加交换空间

#创建一个交换空间且赋予权限
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
#使用mkswap命令设置Linux的交换空间
sudo mkswap /swapfile
#启用该交换空间
sudo swapon /swapfile
#设置开机挂载
sudo vim /etc/fstab
#将下面这句话添加到文件末
swapfile swap swap defaults 0 0

3.3 安装ROS-noetic 

#设置源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
#设置keys
sudo apt install curl
wget http://packages.ros.org/ros.key
sudo apt-key add ros.key
#安装noetic
sudo apt update
sudo apt install ros-noetic-desktop-full
#配置环境
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
#安装相关依赖包
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
#初始化rosdep
sudo apt-get install python3-pip
sudo pip install rosdepc
sudo rosdepc init
rosdepc update

3.4 安装TurtleBot3及相关依赖包

3.4.1 安装相关依赖包

sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy \
  ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc \
  ros-noetic-rgbd-launch ros-noetic-rosserial-arduino \
  ros-noetic-rosserial-python ros-noetic-rosserial-client \
  ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server \
  ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro \
  ros-noetic-compressed-image-transport ros-noetic-rqt* ros-noetic-rviz \
  ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers \
  ros-noetic-slam-karto ros-noetic-hector-mapping 

3.4.2 安装TurtleBot3包

mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src/
git clone -b noetic-devel https://github.com/ROBOTIS-GIT/DynamixelSDK.git
git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone -b noetic-devel https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git
cd ~/turtlebot3_ws && catkin_make
echo "source ~/turtlebot3_ws/devel/setup.bash" >> ~/.bashrc

3.4.3 安装LDS-02雷达包

sudo apt update
sudo apt install libudev-dev
cd ~/turtlebot3_ws/src
git clone -b develop https://github.com/ROBOTIS-GIT/ld08_driver.git
cd ~/turtlebot3_ws/src/turtlebot3 && git pull
cd ~/turtlebot3_ws && catkin_make

3.4.4 配置模型和雷达的环境变量

echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc
echo "export LDS_MODEL=LDS-02" >> ~/.bashrc
source ~/.bashrc

3.4.5 允许将USB端口用于没有root权限的OpenCR板

rosrun turtlebot3_bringup create_udev_rules
#如果报错没有bring_up包,重启Turtlebot3,再执行这一步

3.5 Turtlebot3 OpenCR固件更新

3.5.1 安装相关依赖包

sudo dpkg --add-architecture armhf
sudo apt-get update
sudo apt-get install libc6:armhf

3.5.2  设置环境变量

export OPENCR_PORT=/dev/ttyACM0
export OPENCR_MODEL=burger_noetic
rm -rf ./opencr_update.tar.bz2

3.5.3 下载最新固件

sudo vim /etc/hosts
#首先在 hosts 文件开头段落末尾加上如下语句
185.199.108.133 raw.githubusercontent.com
wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS1/latest/opencr_update.tar.bz2

tar -xvf opencr_update.tar.bz2

3.5.6 烧录固件

cd ./opencr_update
./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr
#烧录完成后会显示‘[OK] jump_to_fw’,可以按住OpenCR板上的‘sw1’或‘sw2’,底盘的轮子会有不同反应

四、配置通信网络

4.1 同步时间

这一步操作需要在PC上的ubuntu和Turtlebot3上ubuntu系统中分别进行一遍

sudo apt-get install chrony
sudo apt-get install ntpdate
#安装chrony和ntpdate
sudo ntpdate ntp.ubuntu.com
#同步时间
date
#显示时间,如果有一端(一般是数莓派)显示时区不是中国,可以执行下一句操作
timedatectl set-timezone Asia/Shanghai
#设置时区为上海时区

4.2 主从机设置 

4.2.1 IP地址获取

这里需要的两个IP地址有两种方法获取:

1、在路由器管理界面分别查看你的PC端IP和Turtlebot3上Ubuntu系统IP

2、分别在PC和Turtlebot3的终端窗口执行

ifconfig

 查看各自的IP地址,一般来说两个IP地址只有最后一段数字不同(若是在虚拟机上运行Ubuntu则需要设置桥接模式)

我们分别把PC和Turtlebot3的IP记为:

192.168.1.100
#PC
192.168.1.101
#Turtlebot3

4.2.2 PC Ubuntu操作

sudo vim ~/.bashrc
#文档末尾添加下面的语句
export ROS_MASTER_URI=http://192.168.1.100:11311
export ROS_HOSTNAME=192.168.1.100
#vim编辑器保存退出
source ~/.bashrc
#让环境生效

4.2.3 Turtlebot3 Ubuntu操作

sudo vim ~/.bashrc
#文档末尾添加下面的语句
export ROS_MASTER_URI=http://192.168.1.100:11311
export ROS_HOSTNAME=192.168.1.101
#vim编辑器保存退出
source ~/.bashrc
#让环境生效

4.2.4 测试

#在PC的终端上运行ROS
roscore
#然后在Turtlebot3的终端上查看话题
rostopic list
#如果设置成功,Turtlebot3的终端上会显示
/rosout
/rosout_agg

五、结尾 

到此,在Turtlebot3上无显示器安装ubuntu+ROS+Turtlebot3就完成了

如果此篇教程和其他教程混着参考,可能会导致bashrc文件中有重复语句

sudo vim ~/.bashrc
##删去重复语句后保存退出
source ~/.bashrc
#别忘了让环境生效

本文主要参考创客智造相关教程

学习ROS相关知识大家可以多去逛逛他们的官网 

相关参考文章:

关于ros安装过程设置密钥不成功解决方案
ROS rosdep update更新失败(简单解决)_长沙有肥鱼的博客-CSDN博客_ros update失败

在终端显示bash:/home/this/catkin_ws/setup.bash:没有那个文件或目录 的解决方法

ROS初学者学习过程中笔记类教程,水平有限,欢迎大家批评指正 !

你可能感兴趣的:(ubuntu,linux,运维)