fpga (field programmable gate array) crecomp file2. kazushi yamashina, hitomi kimura, takeshi...
TRANSCRIPT
・
可将电功率好的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
・
提案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@广州