烧写OriginBot SD卡镜像

1. 下载OriginBot SD卡镜像

请从以下表格中,下载适合自己机器人的SD卡镜像。

最新版本

2. 烧写SD卡镜像

(1)使用读卡器将SD卡插入计算机,SD卡容量建议≥16GB;

(2)启动镜像烧写软件(可参考常用软件下载);

(3)确认SD卡设备号,选择要烧写的系统镜像;

image-20220902144937771

(4)点击“开始”后,继续点击“确认”,开始烧写镜像;

image-20220902145043410

(5)进度条会显示当前的烧写进度,烧写完成后,即可退出软件。

image-20220902150201248

3. 启动旭日X3派

(1)确认机器人套件已经正确安装;

(2)使用套件中的串口模块连接机器人端旭日X3派的调试串口,连接线序如下:

image-20220612121707048

(3)将串口模块连接到PC端的USB口,启动串口软件,连接串口设备、设置波特率921600、关闭流控制;

8962317cd3d7c9eb268085d233bd9c7

image-20220902151416967

(4)插入烧写好镜像的SD卡,并启动机器人电源;

image-20221021115537957

(5)在串口软件中可以看到启动过程输出的日志信息,稍等片刻,会出现登录提示:

image-20220902150943452

(6)输入用户名及密码:root/root

image-20220902151620051

(7)至此机器人端的旭日X3派启动成功。

4. 扩展SD卡空间

为了减少系统镜像大小,便于下载和烧写,系统镜像中的空闲空间已经被压缩,如果需要使用SD卡的完整空间,还需要手动扩展。

启动旭日X3派并通过串口登录后,使用如下指令即可扩展:

$ sudo growpart /dev/mmcblk2 1
$ sudo resize2fs /dev/mmcblk2p1

image-20220902151655008

运行成功后,重启系统即可生效,使用如下命令确认系统空间扩展成功,这里使用的SD卡为32GB:

image-20220902151756524

5. 配置网络连接

无线网络

完成Ubuntu安装后,启动系统,参考以下链接,完成无线网络的配置:

$ sudo nmcli device wifi rescan        # 扫描wifi网络
$ sudo nmcli device wifi list          # 列出找到的wifi网络
$ sudo wifi_connect "SSID" "PASSWD"    # 连接某指定的wifi网络

image-20220902152042941

等到终端返回信息“successfully activated",就说明WIFI连接成功;

我们可以Ping一个网站,来检查一下连接。如果能够Ping通,就说明网络已经连接成功,现在就可以成功连接到互联网,便于后续的软件下载和更新了。

image-20220902152128764

有线网络

OriginBot系统镜像出厂已经配置了有线网络的静态IP:192.168.1.10

大家可以通过网线直接连接旭日X3派的网口和PC端的网口,即可通过SSH远程登录。

image-20220902152416149

6. SSH远程登录

网络配置完成后,就可以不受串口的约束啦,大家可以通过无线网络(或者有线网络)远程登录机器人进行开发。

image-20220902152651425

image-20221017215853209

原生Ubuntu系统配置

1. 安装Ubuntu系统

参考旭日X3派官方手册,完成Ubuntu系统的安装,推荐使用服务器server版本:

旭日X3派Ubuntu镜像安装

完成Ubuntu安装后,启动系统,参考以下链接,完成无线网络的配置:

$ sudo nmcli device wifi rescan        # 扫描wifi网络
$ sudo nmcli device wifi list          # 列出找到的wifi网络
$ sudo wifi_connect "SSID" "PASSWD"    # 连接某指定的wifi网络

网络连接成功后,执行以下指令,将系统软件更新到最新版本:

$ sudo apt update
$ sudo apt full-upgrade
$ sudo reboot

2. 安装TogetherROS/ROS2

重新启动Ubuntu系统后,使用如下命令安装地平线机器人开发平台TogetherROS:

$ sudo apt install tros

配置ROS2的软件源和密钥:

$ sudo apt update && sudo apt install curl gnupg lsb-release #更新软件源
$ sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key  -o /usr/share/keyrings/ros-archive-keyring.gpg #设置ROS2软件源秘钥
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null #设置ROS2软件源

安装ROS2核心功能包:

$ sudo apt update #更新软件源
$ sudo apt install ros-foxy-ros-base ros-foxy-demo-nodes-cpp  # 安装ROS2功能包

时间会有些长,需要稍微等待一下。

2022_7_4 4_41_51

现在ROS2就安装完成了。

大家可以使用同样的命令,继续安装ROS2中的更多功能包。

3. 安装功能包与依赖库

为满足后续机器人开发的使用,还需要安装一系列功能包与依赖库:

$ sudo apt install python3-colcon-common-extensions     # ROS2编译器
$ sudo apt install git                                  # 安装git工具
$ sudo apt install ros-foxy-navigation2                 # 安装导航功能包
$ sudo apt install ros-foxy-nav2-bringup                # 安装导航功能包
$ sudo apt install ros-foxy-slam-toolbox                # 安装slam-toolbox
$ sudo apt install ros-foxy-cartographer-ros            # 安装cartographer
$ sudo apt install ros-foxy-teleop-twist-keyboard       # 安装键盘控制节点
$ sudo apt install ros-foxy-robot-localization          # 安装定位功能包
$ sudo apt install cloud-utils                          # 安装磁盘工具
$ sudo apt install ros-foxy-rmw-cyclonedds-cpp          # 安装Cyclone DDS
$ sudo apt install ros-foxy-teleop-twist-joy            # 安装手柄的驱动包
$ sudo apt install ros-foxy-joy-linux                   # 安装手柄的驱动包
$ sudo apt install ros-foxy-cv-bridge                   # 安装图像处理包
$ sudo apt install ros-foxy-xacro                       # 安装模型解析包
$ sudo apt install ros-foxy-robot-state-publisher       # 安装机器人状态发布者包
$ sudo apt install ros-foxy-joint-state-publisher       # 安装关节状态发布者包
$ sudo apt install ros-foxy-joint-state-publisher-gui   # 安装关节状态发布者包

如遇到类似下图问题:

img

需要修改一下软件源的配置:

$ sudo vi /etc/apt/sources.list

将下边被注释掉的几个软件源打开:

img

修改好重新update再安装即可。

4. 配置软链接

为了便于TogetherROS与ROS2功能包之间的链接于查找,还需要按照如下指令配置软链接:

$ cd /opt/tros 
## 使用/opt/tros目录下的create_soft_link.py创建ROS package至TogetherROS的软链接 
$ python3 create_soft_link.py --foxy /opt/ros/foxy/ --tros /opt/tros 

5. 安装传感器驱动

如果大家所使用的OriginBot带有激光雷达,需要参考以下指令,完成雷达SDK驱动包的安装:

# 安装工具库
$ sudo apt install cmake pkg-config
$ sudo apt-get install python swig
$ sudo apt-get install python-pip

# 编译ydlidar SDK
$ cd /userdata
$ git clone https://github.com/YDLIDAR/YDLidar-SDK.git
$ cd YDLidar-SDK
$ mkdir build
$ cd build
$ cmake ..
$ make -j2
$ sudo make install

# 安装python版本的SDK
$ cd ..
$ pip install .

6. 编译应用代码

在userdata(或root)文件夹下,创建dev_ws/src工作空间

$ mkdir -p /userdata/dev_ws/src

接下来进入该路径下,下载OriginBot机器人的应用代码:

$ cd /userdata/dev_ws/src
$ git clone https://gitee.com/guyuehome/originbot.git

再回到工作空间路径下,开始编译代码:

$ cd /userdata/dev_ws
$ source /opt/tros/setup.bash
$ colcon build

7. 配置雷达端口号

雷达的功能包中,提供了绑定串口号的脚本,按照以下指令执行即可:

$ chmod 0777 /userdata/dev_ws/src/originbot/originbot_driver/ydlidar_ros2_driver/startup/*
$ sudo sh /userdata/dev_ws/src/originbot/originbot_driver/ydlidar_ros2_driver/startup/initenv.sh

8. 设置环境变量

添加环境变量到bashrc中:

$ vi /root/.bashrc

# 在文件末尾添加如下内容:
source /opt/tros/setup.bash
source /userdata/dev_ws/install/local_setup.bash

备份OriginBot SD卡镜像

以下备份过程在电脑端的Ubuntu系统中完成。

1. 压缩磁盘空间

为减少镜像大小,我们先使用gparted软件压缩SD卡的磁盘空间。将SD卡插入运行的电脑中,安装并启动gparted软件:

$ sudo apt-get install gparted
$ sudo gparted

在打开的gparted软件中,右上角选择SD卡:

img

然后右键选择卸载SD卡的挂载:

img

继续点击右键,选择“Resize/Moves”选项,重新设置SD卡的空间大小:

img

拖拽空间划分条右侧,压缩空间,其中黄色是占用的分区,白色是空闲的分区,注意保留一点白色空闲分区,避免镜像无法启动。

img

确认后点击软件中的执行按钮,开始进行压缩操作。

img

压缩完成后,即可关闭gparted软件。

2. 查看磁盘信息

打开终端,使用fdisk命令查看当前磁盘情况。

$ sudo fdisk -u -l

img

图中/dev/sdb就是SD卡的磁盘编号,继续使用如下命令查看SD卡分区信息:

$ sudo fdisk -u -l /dev/sdb

img

3. 开始磁盘备份

现在就可以使用dd命令,来备份SD卡到img文件中了。

$ sudo dd bs=512 count=[fdisk命令中最大的end数+1] if=/dev/sdb of=originbot_backup.img

img

此时终端中并没有提示信息,但是备份已经开始,时间较长,请耐心等待。

完成备份后,终端指令会自动跳出,当前路径下得到img镜像备份文件。

img

生成的img镜像文件较大,有需要的话,可以继续使用zip等工具进行压缩和解压缩使用。

至此,SD卡镜像备份完毕,需要使用时,参考烧写OriginBot SD卡镜像即可。

图片1