RDK库Linux交叉编译指南

RDK库Linux交叉编译指南RDK RobotDevelop 是一个集成了机器人开发过程中常用的通信协议 控制算法的机器人开发工具包 主要面向 Linux 平台同时也支持 stm32f1 与 stm32f4 平台

大家好,欢迎来到IT知识分享网。

RDK库Linux交叉编译指南

RDK库简介

RDK(Robot Development Kit)是一个集成了机器人开发过程中常用的通信协议、控制算法的机器人开发工具包,主要面向Linux平台同时也支持stm32f1与stm32f4平台。目前该工具包包含PID增量式与位置式算法的实现、维特智能私有协议(惯性导航)、达妙电机与大疆电机的控制协议、常见编码电机的控制算法、USB串口类、USB转CAN总线功能、简单消息传输协议(传输字符串)、简单二进制传输协议(传输自定义结构体)、可靠二进制传输协议(带丢包超时重传功能)、底盘运动解算(两轮差速、麦克纳姆轮、全向轮)、VOFA可视化服务器。

RDK库链接

安装Docker

强烈建议在docker容器中开发机器人,不需要配置任何环境,并且代码保存在本地并在本地进行编译,效率远高于在机器人开发板中开发。交叉编译指的是在一个硬件平台上生成另一硬件平台的可执行代码,例如在笔记本电脑(x86)编译能够在树莓派(arm)上运行的程序。交叉编译的目标系统一般都是内存较小、显示设备简陋甚至没有,没有能力在其上进行本地编译,或无法运行我们所需要编译器。

下载交叉编译工具链

在这里插入图片描述
链接: https://pan.baidu.com/s/19ieR6x-M0OQjy0ZKvhVXxw 提取码: pge8
下载其中的cmake文件夹和pi_build.img,其中cmake文件夹里包含交叉编译所需要的cmake配置文件,pi_build.img则是docker镜像,包含aarch64和arm32交叉编译工具链、boost、opencv4.8.0。2024-03-15-raspios-bookworm-arm64.img.xz是树莓派arm64位最新版操作系统。

运行容器

将下载的镜像导入docker

docker load -i pi_build.img docker images 

在这里插入图片描述
创建容器并运行

docker run -it -d --mount type=bind,src=D:\\work_dir,target=/home/work_dir --name rc pi_build /bin/bash 

上面的命令将本地磁盘D:\work_dir目录映射到容器中的/home/work_dir目录,这样就可以在docker容器中访问本地磁盘上的代码。

查看正在运行的容器

docker ps 

在这里插入图片描述
连接到容器

# docker attach <container id> docker attach 11b722d53fcd 

在这里插入图片描述

安装RDK库

进入到/home/work_dir目录

cd /home/work_dir git clone https://github.com/ExceptionQWQ/RobotDevKit/ 

在这里插入图片描述
创建build目录

cd RobotDevKit mkdir build cd build 

在这里插入图片描述
在x86平台交叉编译arm32程序使用下面的指令安装

sudo apt-get install libboost-dev:arm sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf cmake -D CMAKE_INSTALL_PREFIX=/usr/arm-linux-gnueabihf -D CMAKE_BUILD_TYPE=RELEASE .. make install 

在x86平台交叉编译arm64程序使用下面的指令安装

sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu sudo apt-get install libboost-dev:arm64 cmake -D CMAKE_INSTALL_PREFIX=/usr/aarch64-linux-gnu -D CMAKE_BUILD_TYPE=RELEASE .. make install 

如果直接在arm或者x86平台上编译则使用下面的指令安装

sudo apt-get install libboost-dev cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=RELEASE .. make install 

这里以交叉编译arm64程序为例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用VSCode连接到容器进行开发

在VSCode中安装好Dev Containers插件
在这里插入图片描述
在Remote Exploers中选择Dev Containers,进入刚才创建的docker容器。
在这里插入图片描述
点击向右的箭头,Attach in Current Window
在这里插入图片描述
在work_dir目录像往常一样创建cmake工程,然后将刚才下载的cmake文件夹放进自己创建的工程根目录中,修改CMakeLists.txt,在project()前加上set(CMAKE_TOOLCHAIN_FILE “cmake/aarch64-gnu.toolchain.cmake”)

cmake_minimum_required(VERSION 3.10) #这一行一定要在project前面 set(CMAKE_TOOLCHAIN_FILE "cmake/aarch64-gnu.toolchain.cmake") set(CMAKE_CXX_STANDARD 20) project(ReliableBinaryTransferDemo VERSION 1.0) find_package(RobotDevKit REQUIRED) include_directories(${ 
   RobotDevKit_INCLUDE_DIRS}) add_executable(main src/main.cpp) target_link_libraries(main ${ 
   RobotDevKit_LIBRARIES}) 

交叉编译arm64程序
在这里插入图片描述
最后使用scp指令将生成的可执行文件上传到目标硬件平台上。

如果是交叉编译arm32的程序,则把CMAKE_TOOLCHAIN_FILE改成cmake/arm.toolchain.cmake

linux平台使用rdk库的例程请参考:ReliableBinaryTransferDemo

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/147928.html

(0)
上一篇 2025-04-03 20:33
下一篇 2025-04-03 20:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信