1.ROS
ROS(机器人操作系统)是一个机器人软件平台,能够进行灵活的编程,为异构平台集群提供良好的通信控制机制。并且拥有极好的软件模拟能力,不需要硬件,也能够进行机器人算法的学习。
2.Cuda
Cuda是Nvidia开发的并行运算平台,使用其强大的并行运算能力,我们能够将逻辑控制交付给CPU,将并行计算交给GPU去运算,这就是所谓的"硬件加速”。笔者在使用ROS进行硬件加速的时候,如何添加Cuda的的编程支持,在这里尽心记录。
3.环境配置
3.1环境说明
我们知道,如果需要使用Cuda C语言进行编码的话,就必须使用NVCC编译器进行编译,但是通常情况下,ROS都是通过GCC进行编译的,所以这里的设想是将硬件加速的函数以动态库的方式进行提供,其他包需要使用这个包里的硬件加速函数,就动态调用这个动态库,这样可以最大程度的减少修改原有的包的CMakelists.txt文件。
3.2过程说明
创建一个新的包。
修改新建的包的CMakelists.txt文件如下:
编写cu文件如下:
领取专属 10元无门槛券
私享最新 技术干货