fpga (field programmable gate array) crecomp file2. kazushi yamashina, hitomi kimura, takeshi...

2
可将电功率好的FPGA处理引进机器人 符合ROS标准的组件 大川猛 (宇都宫大学 研究生院工学研究科信息系统科学专业 助理教授) PEAR LAB Utsunomiya Univ. 2018/5/12-15 日中大学展暨日中大学论坛 in CHINA 2018@广州 开发将FPGA作为符合ROS标准的组件使用的技术 致谢:本研究开发是日本总务省SCOPE(受理号:152103014)委托的项目。 展现广阔的应用前景 图像识别处理(神经网络) 安全(加密、网络数据包) 大数据处理(数据压缩、挖掘) 电功率高的FPGA (Field Programmable Gate Array) FPGA引进机器人的课题 设计生产效率低=开发FPGA困难 HDL或者回路化前提的C语言 编译时间长 软件协调、网络连接 ROS(Robot Operating System) Linux运行的机器人软件开发环境 多个部件(节点)进行分散处理 以开放源代码提供众多部件 智能机器人的世界开发标准 目标:Xilinx公司Zynq ARM处理器+FPGA单芯片 图像标签处理将FPGA路作为ROS节点封装 标签的FPGA处理 整体性能:1.7高速化(与ARM相比) 1个像素1个时钟处理 ARM26高速化 分辨率:1920×1080 ARM: Cortex-A9 666Mhz FPGA: Zynq-7020 PC: Core i7 870 2.93GHz 输入 HDL记述 设置文件 输出 可构建的ROS节点源 文件 通过Linux上的软件实现ROS通信 自动生成开发时间长的HW/SW通信 可轻松建立FPGA回路的ROS节点 课题:大的通信开销 ARM处理器的ROS协议通信 (利用TCP/IPPublish/Subscribe提高设计生产效率: 自动生成符合ROS标准的FPGA组件 GitHub上公开工具(cReComp组件事例: 图像处理标签ROS组件 原理: 包括FPGA在内,实现与软件功能相同(输 入、输出)的ROS节点 Application ROS node input output Publisher Subscriber Subscriber Publisher PS(ARM) PL(FPGA) ROS-Compliant FPGA Component(SoC) interface for FPGA interface for FPGA 0 0.5 1 1.5 2 2.5 3 3.5 FPGA+ARM SW only(ARM) time(s) Application ROS node input output Publisher Subscriber Subscriber Publisher PS(ARM) PL(FPGA) ROS-Compliant FPGA Component(SoC) interface for FPGA interface for FPGA Node Publication Subscription Topic msg Node Node ROS的通信模型 组件构成 提案1:使用了可编程SoCARM+FPGA)的ROS组件 研究的背景与目的 FIFO Ctrl ROS APP Verilog-HDL FIFO FIFO Configuration file cReComp User logic Output ROS-compliant FPGA component C++ Communication Hardware Software Described by User FILE Input

Upload: others

Post on 24-Jun-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FPGA (Field Programmable Gate Array) cReComp file2. Kazushi Yamashina, Hitomi Kimura, Takeshi Ohkawa, Kanemitsu Ootsu, Takashi Yokota, "cReComp:Automated Design Tool for ROS-Compliant

可将电功率好的FPGA处理引进机器人

符合ROS标准的组件 大川猛 (宇都宫大学 研究生院工学研究科信息系统科学专业 助理教授)

PEAR LAB Utsunomiya Univ. 2018/5/12-15 日中大学展暨日中大学论坛 in CHINA 2018@广州

开发将FPGA作为符合ROS标准的组件使用的技术

致谢:本研究开发是日本总务省SCOPE(受理号:152103014)委托的项目。

展现广阔的应用前景

・图像识别处理(神经网络)

・安全(加密、网络数据包)

・大数据处理(数据压缩、挖掘)

电功率高的FPGA (Field Programmable Gate Array)

将FPGA引进机器人的课题

设计生产效率低=开发FPGA困难

・HDL或者回路化前提的C语言

・编译时间长

・软件协调、网络连接

ROS(Robot Operating System)

在Linux运行的机器人软件开发环境

・多个部件(节点)进行分散处理

・以开放源代码提供众多部件

智能机器人的世界开发标准

目标:Xilinx公司Zynq ARM处理器+FPGA单芯片

→图像标签处理将FPGA回路作为ROS节点封装

标签的FPGA处理

整体性能:约1.7倍高速化(与ARM相比)

1个像素1个时钟处理

→比ARM约26倍高速化 分辨率:1920×1080

ARM: Cortex-A9 666Mhz

FPGA: Zynq-7020

PC: Core i7 870 2.93GHz

输入

・HDL记述

・设置文件

输出

・可构建的ROS节点源文件

・通过Linux上的软件实现ROS通信

・自动生成开发时间长的HW/SW通信

→可轻松建立FPGA回路的ROS节点

课题:大的通信开销

ARM处理器的ROS协议通信

(利用TCP/IP的Publish/Subscribe)

提高设计生产效率:

自动生成符合ROS标准的FPGA组件

在GitHub上公开工具(cReComp)

组件事例:

图像处理标签ROS组件

原理:

包括FPGA在内,实现与软件功能相同(输入、输出)的ROS节点

Application ROS node

input output

Publisher Subscriber SubscriberPublisherPS(ARM)

PL(FPGA)

ROS-Compliant FPGA Component(SoC)

interfacefor FPGA

interfacefor FPGA

0 0.5 1 1.5 2 2.5 3 3.5

FPGA+ARM

SW only(ARM)

time(s)

Application ROS node

input output

Publisher Subscriber SubscriberPublisherPS(ARM)

PL(FPGA)

ROS-Compliant FPGA Component(SoC)

interfacefor FPGA

interfacefor FPGA

Node

Publication SubscriptionTopic

msg

Node Node

ROS的通信模型 组件构成

提案1:使用了可编程SoC(ARM+FPGA)的ROS组件

研究的背景与目的

FIFO CtrlROS APP

Verilog-HDL

FIFO

FIFO

Configuration

filecReComp

User logic

Output

ROS-compliant FPGA component

C++

Communication

HardwareSoftware

Described by User

FILEInput

Page 2: FPGA (Field Programmable Gate Array) cReComp file2. Kazushi Yamashina, Hitomi Kimura, Takeshi Ohkawa, Kanemitsu Ootsu, Takashi Yokota, "cReComp:Automated Design Tool for ROS-Compliant

提案2:利用硬件TCP/IP通信的高性能组件

输入图像

摄像头 FPGA

配置图 ROS节点构成

硬件构成例:

能够以ROS形式输出的高速图像滤波器

25 48

129

55

101

290

34 63

175

0

50

100

150

200

250

300

350

1M 2M 6M延迟时间

(ms)

数据大小(byte)

收发图像信息所产生的延迟时间

PC-PC PC-ARM PC-FPGA

与ARM处理器上的软件ROS的通信延迟时间相比,最大削减115ms的延迟时间

致谢:本研究开发是日本总务省SCOPE(受理号:152103014)委托的项目。

特征点图像(FPGA处理)

特征点图像

(PC处理)

参考文献

1. Kazushi Yamashina, Takeshi Ohkawa, Kanemitsu Ootsu, Takashi Yokota, "Proposal of ROS-compliant FPGA Component for Low-Power Robotic Systems ---case study on image

processing application---," Second International Workshop on FPGAs for Software Programmers (FSP 2015) September 1, 2015, London, United Kingdom, pp.62-6

2. Kazushi Yamashina, Hitomi Kimura, Takeshi Ohkawa, Kanemitsu Ootsu, Takashi Yokota, "cReComp:Automated Design Tool for ROS-Compliant FPGA Component," IEEE 10th

International Symposium on Embedded Multicore/Many-core Systems-on-Chip (MCSoC-16), Lyon Congress Center, Lyon, France, September 21-23, 2016

3. Yuhei Sugata, Takeshi Ohkawa, Kanemitsu Ootsu and Takashi Yokota, "Acceleration of publish/subscribe messaging in ROS-Compliant FPGA Component," The 8th International

Symposium on Highly Efficient Accelerators and Reconfigurable Technologies (HEART2017), 7-9 June 2017.

4. Takeshi Ohkawa, Yutaro Ishida, Yuhei Sugata, Hakaru Tamukoh, "ROS-Compliant FPGA Component Technology - FPGA installation into ROS," RosCon2017 (co-located with

IROS2017), Vancouver, September 21-22, 2017.

5. 菅田 悠平、大川 猛、大津 金光、横田 隆史《使用硬件TCP/IP堆栈符合ROS标准的FPGA组件通信性能评估》,嵌入系统专题研讨会2017,2017/8/24-25

6. 大川 猛、菅田 悠平、松本 拓也、大津 金光、横田 隆史《联合FPGA与云的Visual SLAM分散处理系统》,第35届日本机器人学会学术演讲会,2017/9/11-14

通过实现面向机器人的应用程序进行有用性实证

・分散SLAM(自身位置推测映射处理)

・图像处理在FPGA进行,其他处理在云进行

・评估机器人本体耗电量削减效果

・生活支援与守护应用,灾害救助应用

探讨硬件化的方针:

分析ROS节点间的通信包内容

Pub/Sub通信分为2步 ・使用XMLRPC的登记处理

・通过TCPROS的数据通信

方针:使用硬件TCP/IP(SiTCP),仅对TCPROS协议的数据通信进行高性能化

优点:能够通过1个端口1个对话期的TCP/IP堆栈,实现ROS节点(节约硬件成本)

Publisher SW/HW构成 Subscriber SW/HW构成

事例:符合硬件ROS标准的FPGA组件(图像识别:FAST特征点检测)

性能:

以ROS图像信息形式进行通信延迟评估

uvc_

camera_node

image_

view

pre_pr

ocess_node

Sub HW

Pub HWroscore

/image/raw /input_data

/output_data

Fast_PC

FAST 回路

(VivadoHLS)

image_

view

image_

view

/image_fast_pc

image_

view

AXI-Stream

AXI-Stream

今后的研究开发与参考文献

充实组件库

・组合FPGA处理的图像传感器输入(例:特征点摄像头)等

为ROS社区做贡献

・通过ROS官方Wiki开放源代码

①advertise(“bar”, foo:1234)

①subscribe(“bar”)

②{foo:1234}

PublisherSW on PC

PublisherHW on FPGA

Subscriber

master

③requestTopic(“bar”,TCP)

④ FPGA:3456

XMLRPC

TCPROS

Publisher

①advertise(“bar”, foo:1234)

①subscribe(“bar”)

②{foo:1234}

Publisher SubscriberSW on PC

SubscriberHW on FPGA

master

③requestTopic(“bar”,TCP)

④ foo:2345

XMLRPC

TCPROS

Publisher

topic name: “bar”hostname: fooXMLRPC port number: 1234

TCPROS port number :2345

Subscribersubscribe to “bar”

①advertise(“bar”, foo:1234)

①subscribe(“bar”)

②{foo:1234}

Publisher Subscriber

master

③requestTopic(“bar”,TCP)

④ foo:2345⑤ connect(foo:2345)

⑥ data transmission

XMLRPC

TCPROS

可扫码访问项目网站↓

PC

(Intel Core i7) FPGA

(Spartan 6)

FAST corner detection (640x480) (ms) 19.1 18.8

Power (W) 50 5

性能与功率评估结果:功率性能比=约10倍

SubscriberHW

PublisherHW

Application

FPGA

Topic Topic

Receive messages

(TCPROS)

Publish processing results

to topics (TCPROS)

PEAR LAB Utsunomiya Univ. 2018/5/12-15 日中大学展暨日中大学论坛 in CHINA 2018@广州