RDK X3简介

RDK X3 是一款全功能开发板,具有5Tops端侧推理算力。通过搭配丰富的传感器和扩展组件,为开发者提供了灵活的硬件扩展和连接选项。

RDK X3 和 STM32 单片机有什么区别?

二者的区别在于定位上的区别,从广泛意义来看,RDK X3属于是全功能开发板,而STM32系列则是一种常见的微控制器。可以从以下几个方向来做一些区分

  1. 计算能力:

    • RDK X3拥有专门设计的处理器和神经网络加速器,可以执行复杂的深度学习任务,如图像识别、语音识别等;

    • STM32作为单片机,其处理能力较为有限,适合进行简单的控制和监控任务,如传感器数据采集和基本的实时控制;

  2. 应用领域:

    • RDK X3适用于需要较高智能化的嵌入式系统,如智能摄像头、智能家居、机器人等;

    • STM32常用于需要低功耗和实时性的嵌入式控制系统,如工业控制、汽车电子、家电控制等;

  3. 开发环境:

    • RDK X3的开发环境包括深度学习框架的支持,如TensorFlow、PyTorch等,以及针对该平台的软件开发工具;

    • STM32的开发环境主要是针对单片机的嵌入式开发工具链,如Keil、STM32CubeIDE等;

算力是什么?

在计算机领域,"算力"(computing power)通常指的是一个系统或设备能够执行计算任务的能力。它可以用来衡量一台计算机或者整个计算系统的性能,通常以每秒钟能够执行多少次浮点运算或整数运算来衡量。

Tops"是 "Trillions of Operations Per Second" 的缩写,意思是每秒能够执行的操作次数达到万亿次。这是一个非常大的计算能力单位,通常用于描述一些强大的处理器、芯片或者计算系统的性能。

所以,"5 Tops算力"意味着一个系统或设备能够以每秒约5万亿次的速度执行计算操作。这种水平的算力通常用于高性能计算、人工智能、深度学习等需要大量计算资源的应用领域。

RDK X3 有哪些外设?

学习资料参考

地平线机器人社区

RDK X3快速上手实例

镜像烧录

选择镜像版本

大家在使用电脑时一般习惯了看到图形化界面,但是一般而言在机器人开发中为了减少CPU桌面显示损耗让开发板有更好的表现会使用到无图形方式。这就引入了镜像的两个版本,serve版本和desktop版本。
server版推出,就是为了构建7*24小时运行的服务器,故而抛弃了影响性能的界面等,而专注于底层性能。简单来说,server版追求性能,desktop版追求易用。

烧写镜像

  • 演示ing

镜像扩容

$ sudo growpart /dev/mmcblk2 2
$ sudo resize2fs /dev/mmcblk2p2

远程连接

和开发板的连接方式一般可以分为三种,需要有对应的硬件支持。有线连接、串口连接、无线连接。
  • 有线连接:一般指通过网口、网线进行PC端和开发板连接,同时需要将PC端静态IP地址与开发板静态IP地址前三位字段调整成一致;

  • 无线连接:一般指通过WIFI进行连接,需要板载具备WIFI模块,也分为多个频段。目前主流的开发板一般都会搭载2.4GHZ及以上的频段以供开发者使用。
#查找周围WIFI
$ sudo nmcli device wifi rescan
#打印WIFI列表
$ sudo nmcli device wifi list
#连接WIFI
$ sudo wifi_connect "wifi名" "密码"

  • 串口连接:即RX-TX、TX-RX、GND-GND,一般用于调试,可以理解成只有一个终端的调试工具。
  • VsCode远程连接

实例演示

  1. Git工具/linux 命令行
  2. 学习NodeHub功能
  3. (以ROS2 21讲为例)

工作空间创建

在板端创建工作空间的流程和虚拟机端是一致的,本质上它们都是一个Ubuntu系统。
#创建dev_ws工作空间,src文件讲存放后续的功能包
$ mkdir -p ~/dev_ws/src
$ cd ~/dev_ws/src
#此处拉取基础版本的课程代码
$ git clone https://gitee.com/guyuehome/ros2_21_tutorials.git

安装功能包依赖

如果是大家自己创建的功能包是不需要执行这一步的,那么为什么要执行一下内容呢?大家可以注意到功能包内由一个package.xml文件,其中由如下部分

这部分就是大家需要关注的依赖,如果当前环境系统中没有这些依赖,程序将编译失败,所以一般的做法为安装从github/gitee…的功能包是要先安装功能包的依赖,具体做法如下:
发现缺少什么依赖包就安装什么依赖包!

功能包编译

之后就到了功能包编译环节,这里请大家千万注意,一定是在工作空间下进行编译,编译后的文件是与咱们一开始创建的src在同一文件级下的。
#安装编译工具“colcon”,镜像中已经下载了sudo apt install python3-colcon-ros
cd ~/dev_ws/
#编译工作空间下所有的功能包
colcon build
完成以上步骤后就完成一个基本的环境部署了。
再啰嗦两句,colcon build 是ros2开发中经常使用的命令,但是由于在开发中我们不会一次性改动特别多文件,所以除了第一次编译需要colcon build外,其余时刻一般使用单独编译的命令。
colcon build --packages-select learning_interface
编译结束后如下所示,可以看到install、build

这里需要说明的是和ROS1不同,在ROS2中不管Python/C++改动后都需要进行编译,编译后产生的执行文件都会存放到install中。为什么提到这一点?后续在开发中假如大家发现编译后并没有像自己预期一样执行内容,不妨到install看看是否真的生成了可执行文件。

设置环境变量

最后还需要设置环境变量
source install/local_setup.sh # 仅在当前终端生效
echo " source ~/dev_ws/install/local_setup.sh" >> ~/.bashrc # 所有终端均生效复制
local_setup.sh和setup.bash的区别在于setup.bash还会source一遍foxy的setup.bash 。