特色软件包¶
Docker软件包¶
TB-RK3588SD预置debian11固件内可直接支持Docker功能。
安装软件包¶
sudo apt -y install toybrick-server
安装docker¶
执行如下脚本安装docker:
toybrick-install.sh docker
打开docker配置¶
docker配置需要先打开kernel内的docker相关的配置。
具体配置方法 请参考 编译源代码 –> 编译配置 –> 设置配置信息 ,根据 配置信息说明 打开docker配置。
Docker使用¶
查找镜像¶
执行以下命令从Docker镜像站中查找镜像
docker search $IMAGE
下载镜像¶
执行以下命令从Docker镜像站中下载镜像
docker pull $IMAGE
导入已有容器或镜像¶
执行以下命令导入已有容器/镜像
docker load < $IMAGE.tar
使用容器¶
执行以下命令新建一个容器,并以命令行模式进入该容器:
doocker run -it $IMAGE bash
执行以下命令新建一个容器并映射本地端口/路径到容器内部:
docker run -d -v $LOCAL_PATH:$DOCKER_PATH -p $LOCAL_PORT:$DOCKER_PORT $IMAGE
执行以下命令启动已有容器:
docker start $IMAGE
执行以下命令以命令行模式进入已有容器:
docker exec -it $IMAGE bash
执行以下命令查看容器/镜像
docker ps -a  #查看全部容器
docker images #查看全部镜像
执行以下命令停止正在运行的容器
docker stop $IMAGE
其它用法详见:官方文档
说明:
$IMAGE:镜像名称
$LOCAL_PATH:本地路径
$DOCKER_PATH:docker容器内部路径
$LOCAL_PORT:本地端口
$DOCKER_PORT:docker内部端口
ROS1/ROS2软件包¶
TB-RK3588X预置debian11固件内可直接支持ROS1/ROS2功能。
安装软件包¶
ROS1安装命令
#安装ros1
toybrick-install.sh ros1
#查看帮助命令
toybrick-install.sh --help
ROS2安装命令
#安装ros2-foxy
sudo apt -y install ros2-foxy
#安装辅助软件包
ros2.sh prebuild
ROS2通信测试¶
- 依次打开两个新的终端运行如下命令: - #终端1 listener ros2 run demo_nodes_cpp listener #终端2 talker ros2 run demo_nodes_py talker 
- 若两个终端能正常通信,显示如下日志,则说明编译成功: - #终端1 listener [INFO] [1642061058.658442093] [listener]: I heard: [Hello World: 1] [INFO] [1642061059.638045379] [listener]: I heard: [Hello World: 2] [INFO] [1642061060.638299705] [listener]: I heard: [Hello World: 3] [INFO] [1642061061.638672438] [listener]: I heard: [Hello World: 4] [INFO] [1642061062.639527715] [listener]: I heard: [Hello World: 5] [INFO] [1642061063.639907756] [listener]: I heard: [Hello World: 6] [INFO] [1642061064.640647545] [listener]: I heard: [Hello World: 7] [INFO] [1642061065.640954641] [listener]: I heard: [Hello World: 8] [INFO] [1642061066.641028633] [listener]: I heard: [Hello World: 9] #终端2 talker [INFO] [1642061058.636212156] [talker]: Publishing: 'Hello World: 1' [INFO] [1642061059.635725887] [talker]: Publishing: 'Hello World: 2' [INFO] [1642061060.635657118] [talker]: Publishing: 'Hello World: 3' [INFO] [1642061061.635704049] [talker]: Publishing: 'Hello World: 4' [INFO] [1642061062.635686631] [talker]: Publishing: 'Hello World: 5' [INFO] [1642061063.635791621] [talker]: Publishing: 'Hello World: 6' [INFO] [1642061064.635742135] [talker]: Publishing: 'Hello World: 7' [INFO] [1642061065.635865475] [talker]: Publishing: 'Hello World: 8' [INFO] [1642061066.635945009] [talker]: Publishing: 'Hello World: 9' 
说明:编译生成的软件包安装在/opt/ros2_foxy目录下
音量控制C++ Demo¶
- 下载sample: - sudo apt -y install ros2-foxy-sample 
- 将sample拷贝到home目录下: - sudo cp /opt/ros2-foxy/sample ~/sample chown -R toybrick:toybrick ~/sample/ 
- 编译service,源码实现在sample/src/volume_control目录下: - cd ~/sample colcon build --packages-select volume_control
- 测试service,若能在屏幕上看到正确控制音量图标,则说明运行正常: - #终端1:server source /opt/ros2-foxy/envsetup source ~/sample/install/setup.sh #运行server ros2 run volume_control server #终端2:client source /opt/ros2-foxy/envsetup source ~/sample/install/setup.sh #控制音量+ ros2 run volume_control client 1 #控制音量- ros2 run volume_control client 0 
音量控制python Demo¶
- 下载sample: - sudo apt -y install ros2-foxy-sample 
- 将sample拷贝到home目录下: - sudo cp /opt/ros2-foxy/sample ~/sample chown -R toybrick:toybrick ~/sample/ 
- 编译service,源码实现在sample/src/py_volume_control目录下: - cd ~/sample colcon build --packages-select py_volume_control
- 分别打开两个终端运行节点,可以在桌面上看到已经成功控制音量加减图标: - #终端1:server source /opt/ros2-foxy/envsetup source ~/sample/install/setup.sh #运行server ros2 run py_volume_control server #终端2:client source /opt/ros2-foxy/envsetup source ~/sample/install/setup.sh #控制音量+ ros2 run py_volume_control client 1 #控制音量- ros2 run py_volume_control client 0 
Python 软件包¶
Toybrick Python SDK是一款专门为边缘计算打造的Python快速开发接口,接口设计上沿用了Python精简的理念和熟悉的CV命名方式,完全融合了Rockchip硬件加速模块,在接口内均以物理Buffer和零拷贝的方式运作。兼容Numpy、Opencv等常用的运算模块,方便用户快速开发和评估。
使用方法¶
- 安装(固件已经默认预装) 
sudo apt install python3-toybrick
- 在python中引入包 
import toybrick as toy
支持平台¶
- RK3588 
- Toybrick 其他芯片平台将在后续推出 
加速单元¶
- GPU:Mali 图形处理单元 
- RGA:RK 2D图形辅助计算单元 
- VPU:RK 视频硬件编解码单元 
模块一览¶
全局工具函数 Utils¶
| 函数名 | 描述 | 
|---|---|
| toy.version | 查看当前版本 | 
| frame = toy.copy_from(nparray) | 将numpy数组拷贝建立本地物理buffer | 
输入流 Capture¶
| 函数名 | 描述 | 
|---|---|
| stream = toy.RtspCapture(url, usr, pwd, isTCP) | 建立Rtsp输入流 | 
| stream = toy.HdmiCapture(path) | 建立Hdmi-In输入流 | 
| stream = toy.PipeCapture() | 建立进程管道输入流 | 
| ret, frame = stream.read(width, height, format) | 读取一帧图像 | 
输出流 Writer¶
| 函数名 | 描述 | 
|---|---|
| stream = toy.RtspWriter(path, encoder, port) | 建立Rtsp本地服务输出流 | 
| stream.write(frame, width ,height) | 输出一帧图像 | 
显示 Display¶
| 函数名 | 描述 | 
|---|---|
| disp = toy.Display(name, width, height, displayport) | 新建显示设备 | 
| w = disp.width() | 获取显示Buffer宽度 | 
| h = disp.height() | 获取显示Buffer高度 | 
| view = disp.addview(x, y, w, h) | 新增显示区域 | 
| disp.mvview(view, x, y, w, h) | 移动显示区域 | 
| disp.rmview(view) | 删除显示区域 | 
| disp.imshow(frame, view) | 显示一帧 | 
图像操作 Graphic¶
| 函数名 | 描述 | 
|---|---|
| dst = frame.rotate(degree) | 图像旋转 | 
| dst = frame.resize(width, height) | 图像缩放 | 
| dst = frame.crop(x, y, w, h) | 图像剪裁 | 
| nparr = frame.asarray() | 转为numpy数组,可给cv、numpy使用 | 
详细文档¶
 云盘下载