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

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

准备

硬件清单

  • Turtlebot3机器人一台(搭载数莓派4+OpenCR开发板)
  • 网线一根
  • 路由器一台(可以上网且能进入管理界面)
  • 电脑一台(安装ubuntu系统或虚拟机)
  • SD卡一张(16G及以上)

软件清单

  • 电脑安装Ubuntu 20.04并配置ROS-Noetic(也可以是22.04或者其他可以安装ROS-noetic的版本)(可以是虚拟机或单独系统,建议虚拟机)
  • Win32DiskImager软件(windows系统下载地址
  • 烧录软件(推荐使用数莓派官方的烧录软件,有windows和linux版本下载地址

树莓派4安装Ubuntu20.04

系统烧录

下载ubuntu-20.04.5-preinstalled-server-arm64+raspi.img
格式化SD卡并烧录

启动机器人并配置wifi

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

  1. 连接电源(或电池)
  2. 用网线将数莓派与路由器连接
  3. 打开Turtlebot3的开关(位于OpenCR板上,正常情况下所有电路板都有LED亮,激光雷达会转)
  4. 等待大概30秒后可以在路由器的设备管理界面发现新增了一台名为ubuntu的有线连接设备,点开并查看其IP地址
  5. 在电脑安装的ubuntu中新建终端
ssh ubuntu@1XX.1XX.X.1XX

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

ssh ubuntu@1XX.1XX.X.1XX

#输入更改后的密码登录
下一步配置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

修改SSH配置文件

sudo vi /etc/ssh/sshd_config

#在文件中,找到 PasswordAuthentication 行,并确保它以 yes 结尾。
#在文件中,找到 ChallengeResponseAuthentication 选项,并通过添加 no 来禁用它。
#如果行被注释掉了,删除散列符号 # 以取消注释。

#保存后退出vim编辑器
重启SSH服务

sudo systemctl restart sshd

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

下载安装ROS-noetic

无线连接Turtlebot3

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

ssh ubuntu@192.168.1.101

增加交换空间

创建一个交换空间且赋予权限

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

安装ROS-noetic

备份原来的源

sudo cp -p /etc/apt/sources.list /etc/apt/sources.list.bak

更改源文件

sudo vim /etc/apt/sources.list

将其中内容删除,并添加以下文本

deb https://mirrors.ustc.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse

保存退出

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

设置keys

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

安装ros-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

安装TurtleBot3及相关依赖包

安装相关依赖包
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  \
  libudev-dev
安装Turtlebot3相关软件包
mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src/

这是1个操作步骤👇

git clone -b noetic-devel https://github.hscsec.cn/ROBOTIS-GIT/DynamixelSDK.git &&
git clone -b noetic-devel https://github.hscsec.cn/ROBOTIS-GIT/turtlebot3_msgs.git &&
git clone -b noetic-devel https://github.hscsec.cn/ROBOTIS-GIT/turtlebot3.git &&
git clone -b noetic-devel https://github.hscsec.cn/ROBOTIS-GIT/hls_lfcd_lds_driver.git &&
git clone -b noetic-devel https://github.hscsec.cn/ROBOTIS-GIT/ld08_driver.git
cd ~/turtlebot3_ws/src/turtlebot3 && git pull
cd ~/turtlebot3_ws && catkin_make

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

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

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

rosrun turtlebot3_bringup create_udev_rules

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

Turtlebot3 OpenCR固件更新

安装相关依赖包

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

设置环境变量

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

下载最新固件

wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS1/latest/opencr_update.tar.bz2
tar -xvf opencr_update.tar.bz2

烧录固件

cd ./opencr_update
./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr

#烧录完成后会显示‘[OK] jump_to_fw’,可以按住OpenCR板上的‘sw1’或‘sw2’,底盘的轮子会有不同反应

主从机设置

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

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
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
测试

#在PC的终端上运行ROS

roscore

然后在Turtlebot3的终端上查看话题

rostopic list

如果设置成功,Turtlebot3的终端上会显示

/rosout
/rosout_agg

结尾

到此,在Turtlebot3上无显示器安装ubuntu+ROS+Turtlebot3就完成了
如果此篇教程和其他教程混着参考,可能会导致bashrc文件中有重复语句

sudo vim ~/.bashrc

删去重复语句后保存退出

source ~/.bashrc
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值