Lien182 / ReconROS

Easy to use framework for ROS2 FPGA-based hardware acceleration; Supports Pub/Sub communication, Actions and Services and costum ROS Messages
GNU General Public License v2.0
25 stars 5 forks source link

xilinx kria26 #14

Open ctgulzh opened 3 months ago

ctgulzh commented 3 months ago

Hello, I was wondering how can I use ReconROS for Kria26. Are the improvement steps consistent with the ZCU102 improvement steps? Thank you! I read your latest paper on fpgaDDS and am very interested in it. I would like to know more implementation details. Can you provide some information? Sorry to bother you again! Thank you!

AlexanderUPB commented 3 months ago

Hello!

I was wondering how can I use ReconROS for Kria26. Are the improvement steps consistent with the ZCU102 improvement steps?

We tested the implementation of fpgaDDS with the ZCU104 Board. Both the ZCU104 and the Kria K26 use the UltraScale+ Platform. Therefore, it should be portable.

You need to create a custom template for the Kria K26 in the templates folder. I recommend copying the ref_linux64_zcu104_0_hwtopics_vivado_2021.2 folder and renaming it ref_linux64_kria26_0_hwtopics_vivado_2021.2. The ref_linux64_zcu104_0_hwtopics_vivado_2021.2 template includes code that generates the infrastructure for fpgaDDS. You will need to adapt the copied template to work with the Kria K26. For example, you need to change statements where the board is specified.

I read your latest paper on fpgaDDS and am very interested in it. I would like to know more implementation details. Can you provide some information?

An example project can be found here. Additionally, it uses Gateways to map between hardware and software topics. More information about Gateways is available in our recent publication [1]. The server_app is the one that runs on the FPGA. If you want to use the project for the Kria K26, you also need to adapt the TargetBoard and TargetPart in the build.cfg. The steps to build the application are the same as described in the README.md for the other demo applications.

The hardware topics are specified via the build.cfg. The build.cfg is then interpreted by the rdk python3 tool located here. Here, in the export file, python3 dictionaries containing information about the hardware topics are generated. These are used to create a project from the template files mentioned above.

The export.tcl file in the template folder contains the TCL commands that generate the AXI-Stream infrastructure mentioned in the fpgaDDS paper.

I hope I could help you!

If you have any further questions, don't hesitate to ask.

[1] Christian Lienen, Alexander Philipp Nowosad, and Marco Platzner. 2024. Mapping and Optimizing Communication in ROS 2-based Applications on Configurable System-on-Chip Platforms. In Proceedings of the 2023 9th International Conference on Robotics and Artificial Intelligence (ICRAI '23). Association for Computing Machinery, New York, NY, USA, 23–31. https://doi.org/10.1145/3637843.3637846

ctgulzh commented 3 months ago

OK,Thank you so much!I try to do as you say.