yocto stm32mp1集成ros

这篇具有很好参考价值的文章主要介绍了yocto stm32mp1集成ros。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

yocto集成ros

本章节介绍yocto如何集成ros系统用来作机器人开发。

下载meta-ros

第一步首先需要下载meta-ros layer,meta-ros的链接如下:https://github.com/ros/meta-ros/tree/master,在我们的yocto源码layers路径下执行如下指令:

git clone https://github.com/ros/meta-ros.git

下载完成以后如下:
yocto stm32mp1集成ros,Yocto学习笔记(基于STM32MP1系列),STM32MP157学习笔记,stm32,yocto,ros
完成以后需要进入到meta-ros里面切换匹配yocto版本的分支,比如我当前使用的yocto版本是dunfell即yocto 3.1,这样我们也需要切换meta-ros到对应的dunfell分支上。

cd meta-ros
git chekcout remotes/origin/dunfell

这样我们的meta-ros layer就准备好了。

这里后面遇到一个编译问题,提示meta-layer不兼容,作了一个小改动,如果遇到同样问题可以尝试以下:
修改你需要集成的ros版本里面的LAYERSERIES_COMPAT_属性为你当前yocto的版本
yocto stm32mp1集成ros,Yocto学习笔记(基于STM32MP1系列),STM32MP157学习笔记,stm32,yocto,ros

yocto集成ros

  1. 添加编译支持
    首先我们需要将meta-ros layer添加到我们的编译系统中来,在conf/bblayers.conf里面添加如下配置:
# ROS
ADDONSLAYERS += " \
	${OEROOT}/layers/meta-ros/meta-ros-backports-hardknott \
	${OEROOT}/layers/meta-ros/meta-ros-backports-gatesgarth \
	${OEROOT}/layers/meta-ros/meta-ros-common \
	${OEROOT}/layers/meta-ros/meta-ros1 \
	${OEROOT}/layers/meta-ros/meta-ros1-noetic \
	"

注意我这里集成的是ros1 noetic版本,如果你需要集成其他版本按照你的需求写就好了,前面4个为meta-ros1-noetic 的依赖layer,如果你和我版本不同请根据你的依赖关系填写。到此应该就可以编译ros系统了,可以尝试使用如下指令来编译ros:

bitbake ros-image-core
  1. 添加ros打包
    如果上面的编译成功的话下一步就可以开始集成我们的rros到rootfs里面了,在我们的rootfs的bb文件里面添加一行如下内容:这个会追加ros的ros-core turtlesim 两个组件到rootfs,后续如果有其他package需求往里面加就好了。
CORE_IMAGE_EXTRA_INSTALL += " ros-core turtlesim  "

rootfs验证

按照第二部做完正常情况下ros的 ros-core turtlesim 就应该已经集成到根文件系统了,下面使用ros自带的测试节点测试ros是否能正常工作

  1. 启动roscore
    登陆到板子上,打开一个终端,执行如下指令:
source /opt/ros/noetic/setup.sh
roscore

执行效果如下:
yocto stm32mp1集成ros,Yocto学习笔记(基于STM32MP1系列),STM32MP157学习笔记,stm32,yocto,ros

  1. 启动UI
    这一步依赖你的板子连接好屏幕,然后rootfs里面有qt系统支持, 然后重新启动一个终端登陆进板子,执行如下指令:
source /opt/ros/noetic/setup.sh
rosrun turtlesim turtlesim_node

这里注意以下因为我板子上的qt系统后端是使用eglfs的,和ros默认的xcb不同,直接执行会coredump,所以我使用export QT_QPA_PLATFORM=eglfs指定了QT的后端使用eglfs,这样就能正常运行了,下面是操作截图:
yocto stm32mp1集成ros,Yocto学习笔记(基于STM32MP1系列),STM32MP157学习笔记,stm32,yocto,ros

  1. 启动终端控制
    这一部需要在开一个终端连接到板子上,执行如下指令:
source /opt/ros/noetic/setup.sh
rosrun turtlesim  turtle_teleop_key

这样在这个终端里面就可以使用上下左右的键盘来控制UI上的小海龟移动拉
yocto stm32mp1集成ros,Yocto学习笔记(基于STM32MP1系列),STM32MP157学习笔记,stm32,yocto,ros

下面贴一张实际在板子上的运行状态照片:
yocto stm32mp1集成ros,Yocto学习笔记(基于STM32MP1系列),STM32MP157学习笔记,stm32,yocto,ros
默认的ui在板子上显示有点问题,不过不影响测试,小海龟的白色路径就是用键盘控制画出来的。集成工作结束,下面就能愉快的开发ros拉文章来源地址https://www.toymoban.com/news/detail-703000.html

到了这里,关于yocto stm32mp1集成ros的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 测试计划实例:Yocto测试计划

    Yocto 项目是一个开源协作项目,它提供模板、工具和方法,帮助您为嵌入式产品创建基于Linux的定制系统,而无需考虑硬件架构。QA团队负责验证一些可用的工具和组件,以及支持的不同平台的image完整性和功能性。 测试过程主要侧重于跟踪和审查Yocto项目及其参考系统和内部

    2024年02月08日
    浏览(53)
  • OpenWRT、Yocto 、Buildroot和Ubuntu有什么区别

    OpenWRT : 用途 :OpenWRT 是一个专注于路由器和嵌入式网络设备的Linux发行版。它提供了一个优化的Linux环境,旨在将网络设备变成功能丰富、高度可定制的路由器。 包管理器 :OpenWRT 使用 opkg 包管理器,它是一个轻量级的包管理器,用于安装、升级和卸载软件包。 软件源 :

    2024年02月04日
    浏览(36)
  • 使用Yocto进行嵌入式Linux开发3 Toaster

    我们已经知道了如何在Poky中使用BitBake构建图像image,那么我们将学习如何使用Toaster完成同样的操作。 Toaster是一个用于配置和运行构建的Web接口。它与BitBake和Poky构建系统通信,以管理和收集有关构建、软件包和镜像的信息。 使用Toaster的两种方法: 本地 可以将Toaster作为本

    2024年02月08日
    浏览(43)
  • 【openeuler】Yocto &embedded sig联合例会 (2022-11-03)

    Yocto embedded sig联合例会 (2022-11-03)_哔哩哔哩_bilibili                                        

    2024年02月08日
    浏览(32)
  • 使用Yocto进行嵌入式Linux开发2 第一个基于Poky的系统

    Ubuntu: Fedora 在我们的开发主机系统上安装了所需的软件包后,我们可以使用 Git 下载当前 LTS 版本的 Poky 源代码,命令如下: 下载完成后,poky 目录中的内容如下: 在poky目录中存在oe-init-build-env脚本,用于设置构建环境。 这里,[build-directory] 是一可选参数,用于指定配置环境

    2024年02月08日
    浏览(49)
  • IMX6ULL采用YOCTO构建嵌入式Linux系统

    切换至工程项目文件夹,如:/home/user/Linux/Yocto/fsl-release-yocto,在该文件夹下使用如下命令: 在本地环境变量中指定repo服务器地址,可以使用清华的镜像源进行更新,即将如下内容复制到你的~/.bashrc里: 切换至Yocto工作路径/home/user/Linux/Yocto/fsl-release-yocto,然后使用如下repo命

    2024年02月02日
    浏览(60)
  • Buildroot,Ubuntu,Debian,Yocto 它们分别是什么,它们之间的具体关系是什么

    1. Buildroot 定义: Buildroot是一个简化和加速嵌入式Linux系统开发过程的工具,提供一种容易、高效的方式来生成交叉编译工具链、根文件系统、内核映像和引导加载程序。Buildroot使用makefile和kconfig(和Linux内核使用的相同系统)来配置和构建整个嵌入式系统。 适用场景: 对于

    2024年04月25日
    浏览(36)
  • imx6ull基于yocto工程的l汇编点亮ed

    在裸机状态下通过汇编点亮led,即没有操作系统,(uboot kernel rootfs 都不需要实现)。 1.GPIO复用 根据原理图,找到led对应的引脚(pin),复用为GPIO(只有GPIO才能控制输入输出) 芯片手册查询寄存器的方法,以CSI_HSYNC为例,在IOMUXC章节搜索CSI_HSYNC 找到 是MUX意为复用,2

    2024年01月21日
    浏览(79)
  • imx8的源码开发方式非yocto方式(二)——基于imx8的uboot源码移植经验

    先从NXP官方的github源码库中下载各个版本的u-boot, uboot的下载地址为: GitHub - nxp-imx/uboot-imx: i.MX U-Boot 图1 选择uboot版本 1.本文下载最新的uboot版本(lf-5.15.71-2.2.0)的tar.gz的压缩包。 图2 拷贝、解压uboot源码到工作目录 2.拷贝uboot源码到ubuntu工作目录,并解压uboot压缩包,流程如

    2024年02月02日
    浏览(42)
  • 【ROS学习笔记17】ROS常用仿真组件URDF集成Gazebo

    写在前面,本系列笔记参考的是AutoLabor的教程,具体项目地址在 这里 1.1 URDF与Gazebo基本集成流程 URDF 与 Gazebo 集成流程与 Rviz 实现类似,主要步骤如下: 创建功能包,导入依赖项 编写 URDF 或 Xacro 文件 启动 Gazebo 并显示机器人模型 1.创建功能包 创建新功能包,导入依赖包: 2.编

    2024年02月06日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包