Toybrick

中文 / EN
Toybrick Wiki教程 TB-RK1808S0 开发流程简介
开发流程简介

概述

主动模式下,RK1808人工智能计算棒是一个专用AI应用模块。RK1808人工智能计算棒作为主动设备,RK1808人工智能计算棒内部默认已安装rknn-toolkit和rknn-api,上位机(也称宿主机)无需安装rknn-toolkit和rknn-api,模型及算法固化在RK1808人工智能计算棒中,上位机只需通过USB口向计算棒输入数据(例如图片和视频流),RK1808人工智能计算棒自动完成数据的前处理、推理、后处理,然后把处理结果通过USB口输出给上位机。这里的上位机可以是任何带有USB接口的平台及任何操作系统,包括了x86/x64/arm32/arm64的linux/windows/mac os及单片机、树莓派等等...

为了方便用户通过USB口传输数据,RK1808人工智能计算棒会把USB口虚拟成网卡等标准设备,用户只需通过标准设备接口的操作(例如网络的socket编程)即可完成对RK1808人工智能计算棒数据的输入和输出。

细节如下:

        1.RK1808计算棒插入上位机后,会被虚拟成网卡设备

        2.上位机进行虚拟网卡配置,配置IP为192.168.180.1,保证上位机和1808中间的网络连接正常

        3.计算棒默认IP为192.168.180.8,账号密码皆为toybrick,用户可以SSH登录计算棒,拷贝模型和server服务程序到计算棒

        4.计算棒端运行server服务程序,用来接收上位机的连接请求,并调用RKNN进行处理,再返回结果

        5.上位机运行client程序,连接server成功之后,发送推理请求,从1808端获取返回结果

单计算棒程序流图.jpg



主动开发模式总体流程图:

1.png

主动模式下AI开发过程

主动模式下开发的AI程序分为两个部分:计算棒server程序和上位机client应用程序。

• 模型预先部署在计算棒的存储上,计算棒server程序初始化环境并加载模型,启动socket server,接收上位机推送过来的数据,进行推理,然后把推理的结果返回给上位机。

• 上位机client应用程序采集数据(如抓取摄像头数据),通过socket client把数据推送给计算棒,同时通过socket client接收计算棒返回的处理结果,并做进一步的处理(如显示)。

主动模式下的RK1808 人工智能计算棒上RKNN API调用参考:《Rockchip_RK1808_Developer_Guide_Linux_RKNN》。

RK1808人工智能计算棒上已经提供了RKNN API C/C++语言所需的库和头文件,同时也预装了RKNN API的python 3.6库,用户可以在RK1808人工智能计算棒上开发部署C/C++或python的主动AI程序。


主动模式下会提供两种开发方式,推荐使用ssh登录进行开发调试:


1、RK1808人工智能计算棒的linux操作系统为fedora,用户可以通过ssh登录fedora系统进行开发和调试,root根用户的密码为toybrick,普通用户toybrick的密码为toybrick。

2、提供toybrick_deployc工具进行开发调试,TB-RK3399Pro开发板支持toybrick_deployc的固件后续会发布。


toybrick_deployc开发工具说明

toybrick_deployc命令列表及命令说明

主动模式的开发工具为toybrick_deployc ,该工具只能运行在toybrick开发平台上。

1、命令列表:

                                                                

image.png


2、命令说明:

l  默认对象:null

1)   toybrick_deployc  -V:查看toybrick_deploy的版本号。

2)   toybrick_deployc  -H:查看命令帮助信息。

l  部署: deploy

1)   toybrick_deployc  deploy  -s  dir:将dir目录同步到RK1808人工智能计算棒的应用工作目录。

2)   toybrick_deployc  deploy  -r:同步成功后,执行目录下的boot.sh脚本。

3)   toybrick_deployc  deploy  -b:将boot.sh设置为开机启动。

l  提示信息说明:

1) Password  for  deploy:提示用户输入toybrick_deploy的登录密码;

2)   Local  host's  username:提示用户输入上位机系统用户名;

3)   Password  for  user[ username ]:提示用户输入系统用户名对应的命名;

4)   [INFO]:表示服务端返回的命令执行详细信息;

5)   Command  XXXXX  done:表示命令成功返回;

6)   Command  xxxxx  error:表示命令执行错误。

基于Toybrick平台的开发流程

1.   RK1808人工智能计算棒作为网卡设备(rndis),通过web配置成主动模式,详见web配置介绍(如需恢复被动模式,请重新设置选择被动模式)。

2.   设置toybrick_deploy 登录密码。

3.   通过主动模式开发工具toybrick_deployc对RK1808人工智能计算棒中的系统软件包进行升级,保证RK1808人工智能计算棒中系统软件包处于最新版本。toybrick有维护自己的源服务器,会不定期的进行系统软件包更新,增加系统稳定性,该步骤视用户需要自行选择是否更新,在现有系统可以满足开发需要的情况下,可不更新。

4.   RK1808人工智能计算棒与上位机通过网络socket进行通信,编写上位机服务程序以及RK1808人工智能计算棒中下位机程序,通过主动模式开发工具toybrick_deployc安装RK1808人工智能计算棒中rpm及python依赖包(如有需要),把模型以及运行程序固化于RK1808人工智能计算棒,并在RK1808人工智能计算棒上运行推理及相关处理程序,上位机程序接收RK1808人工智能计算棒中推理及相关数据处理结果。

5.   通过主动模式开发工具toybrick_deployc设置固化于RK1808人工智能计算棒中的程序开机启动,并重启RK1808人工智能计算棒,验证是否设置成功,为部署做准备。

产品部署过程

1.   把模型及算法固化于RK1808人工智能计算棒,并设置固化于RK1808人工智能计算棒中的程序开机自启动。

2.   RK1808人工智能计算棒插入目标设备,如网络摄像头设备、PC机、无人机、智能小车等。

3.   目标设备上运行上位机服务程序,显示处理结果。

4.   具体案例详见wiki教程中yolov3主动模式案例。








产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


返回顶部