1、hilens虚拟docker中-ros程序编译说明

2023-11-09

该文档主要用于在ubuntu机子上面编译ros库,当编译成功后,将整个文件夹的库拷贝至HiLens Kit 上面进行运行。
这里注意:

  1. 不能使用windows10的WSL 进行操作。
  2. 在执行如下指令前,请确保ubuntu上面的docker能够正常运行
    如果ROS是安装在与它匹配的架构的机子上面,你只需要执行”catkin_init”去初始化ROS catkin workspace 以及”catkin_make”去build workpsace。在每个workspace中都需要一个”src”文件夹存放你所需要编译的ROS packages 。
    但是, 现在ROS 没有安装在这个docker 镜像中,但是我们可以用aarch64的库来编译ROS。(ROS以及安装在HiLens上面了),这种方式叫做 isolated building.

下面已demo编译为例,讲解如何使用。
Demo文件存放在/demo_ws 中,进入到镜像之后可以查看。

步骤一:

下载docker 镜像文件,这个tar.gz 文件需要用docker import 来加载,然后进入之后,如图所示:
在这里插入图片描述

步骤二:

执行如下命令,能够激活所有需要的ROS和catkin相关东西,这个叫做hybrid build . runtime libraries 是aarch64,因为你需要在hilens kit上面去运行, 而build libraries是amd64,因为你是在这个镜像里面build。

$ source /ros_catkin_ws/devel_isolated/setup.bash  

步骤三:

编译demo文件 : 文件目录/demo_ws .
如果你进入到、demo_ws/src中,你可以看到我们已经提供了很多ROS相关的库(HiLens ROS driver, RPLIdar driver, Kineck driver, mBot driver 等等)

执行如下命令,编译demo。

$ cd /demo_ws

Build 这个workspace,你将用到catkin_make, 但是必须告诉它用aarch64 去编译。所以需要执行命令:

$ catkin_make -DCMAKE_TOOLCHAIN_FILE=/ros_catkin_ws/rostoolchain.cmake 

当demo 开始编译时,你将会遇到如下报错:

 /opt/aarch64-linux-gnu-gcc-7.3.0/aarch64-linux-gnu/include/c++/7.3.0/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
 #include_next <stdlib.h>
               ^~~~~~~~~~
compilation terminated.

出现如图所示的编译错误,是因为aarch64 和amd64 冲突. 所以执行指令:

sed -i 's/isystem/I/g' ./build/diagnostics/test_diagnostic_aggregator/CMakeFiles/test_diagnostic_aggregator.dir/flags.make

最后 再次执行命令:

catkin_make -DCMAKE_TOOLCHAIN_FILE=/ros_catkin_ws/rostoolchain.cmake 

你将看到如下所示内容,说明ros程序编译成功。

步骤四:

然后你可以将整个demo_ws 拷贝到HiLens Kit上面去进行,运行这些packages。 (docker中cp出来)

建议##

建议你将自己的packages 放入到demo_ws中,因为一些基础的ROS packages 已经build好

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1、hilens虚拟docker中-ros程序编译说明 的相关文章

  • Android 使用ffmpeg软编码 将摄像头采集视频编码成视频文件

    Android 使用ffmpeg软编码 将摄像头采集视频编码成视频文件 这次代码实现的是视频采集的功能 Android 通过jni 调用ffmpeg 编码yuv数据变成视频文件 先上代码 编码器上下文保存的实体 struct EnCodeB
  • R语言课程论文

    本文是自己在学习R统计分析课程后的课程小论文 对详细详细的文档及实现的R代码感兴趣者 可见文末获取方式 若转载请注明出处 欢迎大家交流学习 不足之处请多指教 Word版全文以及相应的r代码获取方式 资源下载链接 https download
  • 学一点Wi-Fi:WPA3 BP/OCV/SCV/PK/H2E/TD

    WFA在2020年底发布了WPA3标准的第三版 其中又提出了一些新的feature 这里结合之前的版本简单总结一下 1 BP BP是Beacon Protection的缩写 问 Beacon中的信息都是未加密的 所以可能存在攻击者会对AP发
  • 课设:影院管理系统

    影院管理系统 导言 知识点总结 课设介绍 导言 从3月份开始到现在 大概两周多的时间 写了一个影院管理系统 功能有待改善 有的功能还有点bug需要该 现在总结一下 影院管理系统告一段落 接下来要学习算法和数据结构 知识点总结 一 三层架构
  • 一文看懂npm、yarn、pnpm之间的区别

    本文作者对比了当前主流的包管理工具npm yarn pnpm之间的区别 并提出了合适的使用建议 以下为译文 NPM npm是Node js能够如此成功的主要原因之一 npm团队做了很多的工作 以确保npm保持向后兼容 并在不同的环境中保持一
  • 大数据毕设选题 - 深度学习口罩佩戴检测系统(python OpenCV YOLO)

    文章目录 0 前言 1 课题介绍 2 算法原理 2 1 算法简介 2 2 网络架构 3 关键代码 4 数据集 4 1 安装 4 2 打开 4 3 选择yolo标注格式 4 4 打标签 4 5 保存 5 训练 6 实现效果 6 1 pyqt实
  • Linux(ubuntu)上安装RDP Server(Xrdp)使用的注意事项

    ubuntu上的基本安装方法 1 apt get install xrdp 基本上就已经安装完成了 但是此时连接会出现异常 类似黑屏的情况 原因 1 Xrdp不支持unity 3D的图形 解决方法 1 使用xfce或者gnome 2d等 如
  • C#小知识

    项目编译后复制文件到生成目录 方法1 对于单个文件 可以点击属性 输出目录里选择始终复制 方法2 把项目中的ServerScripts复制到输出目录 在项目设置中 生成事件里添加批处理 xcopy ProjectDir ServerScri
  • anaconda用法

    查看已经安装的包 pip list 或者 conda list 安装和更新 pip install requests pip install requests upgrade 或者 conda install requests conda
  • LINUX权限-bash: ./startup.sh: Permission denied

    LINUX权限 bash startup sh Permission denied 执行 startup sh 或者 shutdown sh的时候 报 Permission denied 需要用命令 chmod 修改一下bin目录下的 sh
  • spring boot配置双Kafka方法

    第一步 application yml的配置 server port 8080 spring application name demo kafka one bootstrap servers xxx xxx xxx xxx consume
  • android动态毛玻璃,Android模糊处理简单实现毛玻璃效果

    自从iOS系统引入了Blur效果 也就是所谓的毛玻璃 模糊化效果 磨砂效果 各大系统就开始竞相模仿 这是怎样的一个效果呢 我们先来看一下 如下面的图片 实现效果大家都知道了 如何在Android中实现呢 说白了就是对图片进行模糊化处理 小编
  • Vue项目生成二维码

    场景 民主测评 闭卷测试 Vue项目生成二维码 使用手机浏览器扫码录入答题 一 创建vue项目 样式布局 接口联调 npm run build 打包成dist 文件 让后台发送到服务器中 页面地址就获取到了 二 前引入vue qr 二维码地
  • openwrt 编译笔记

    错误一 Creating filesystem with parameters Size 50331648 Block size 4096 Blocks per group 32768 Inodes per group 6000 Inode
  • 基于OpenCV-Python实现的人脸识别

    在初步学习了数字图像处理的相关知识并在Matlab进行了初步的模拟后 我将学习的中重点转向了Python环境下的OpenCV库的学习 以此博客记录一下学习的进程 本文章代码主要参考OpenCV库源代码 刘波译的 OpenCV3计算机视觉Py
  • Apache Tomcat

    简介 简而言之 Tomcat是一个免费的开放源代码的Web应用服务器 属于轻量级应用服务器 Apache Tomcat Tomcat是Apache 软件基金会 Apache Software Foundation 的Jakarta 项目中的
  • 邻接矩阵广度优先遍历算法 连通图采用邻接表深度优先遍历的非递归过程 图G中距离顶点v的最短路径长度最大迪杰斯特拉

    1 采用邻接矩阵存储图的广度优先遍历算法的实现 参考教材算法6 5选作 2 一个连通图采用邻接表作为存储结构 设计一个算法 实现从顶点v出发的深度优先遍历的非递归过程 3 设计一个算法 求图G中距离顶点v的最短路径长度最大的一个顶点 设v可
  • 函数调用之回调函数

    重新回到CSDN 工作以来写第一个博客 不码代码 不追求高大上的专业术语 只求通俗的理解 以前听过回调函数 也研究过 但由于没有在实际中用过 所以也没太懂 每次一听到回调函数这个词 感觉很高大上 最近在工作上遇到了 而且被公司前辈广而用之

随机推荐

  • Pickle包的使用

    想要将Python程序运行中得到的字符串 列表 字典等数据 长久的保存下来 而不是简单的放入内存中关机断电就丢失数据 Pickle模块就是专门用来完成此功能的模块 它可以将对象转换为一种可以传输或存储的格式 它实现了基本的数据序列和反序列化
  • 如何保证token的安全

    接口的安全性主要围绕token timestamp和sign三个机制展开设计 保证接口的数据不会被篡改和重复调用 下面具体来看 Token授权机制 用户使用用户名密码登录后服务器给客户端返回一个Token 通常是UUID 并将Token U
  • Sqli-labs之Less-29和Less-30和Less-31

    Less 29 基于错误 GET 双服务器 单引号 字符型注入 服务器 两层 架构 注 截图等来自 MySQL注入天书 Less 29 服务器端有两个部分 第一部分为 tomcat 为引擎的 jsp 型服务器 第二部分为 apache 为引
  • 传输线的物理基础(十):特性阻抗的频率变化

    到目前为止 我们一直假设传输线的特性阻抗随频率保持不变 正如我们所见 从传输线前端看 输入阻抗与频率密切相关 毕竟 在低频时 远端开路的传输线的输入阻抗看起来像一个电容器 阻抗开始很高 然后下降得很低 特性阻抗是否随频率变化 在本节中 我们
  • 【Linux入门】Linux编译器gcc/g++基础

    目录 1 背景知识 2 gcc g 的用法 3 指令补充 3 1 ldd指令 3 2 file指令 4 Linux下的头文件 库 4 1 指令的库 4 1 1 动态库 4 1 2 静态库 4 1 3 动静态库的优缺点 5 gcc g 静态链
  • v-if 和 v-show的区别 vue面试题

    v for 指令 作用 遍历数组 并重复生成对应长度的相同标签 语法 列表渲染 v for item in 数组名 遍历下标 v for item index in items 注意点 这个指令写在哪一个元素身上 就重复生成哪一个元素 数组
  • 小程序用户开放接口调整时间-2021年4月28日24时

    官方实例demo
  • 【编译原理龙书笔记】(三)词法分析(附联系答案)(仍未完成)

    这篇博客是根据自己学习龙书的过程编写 因为博主习惯了英语环境 在强行从英语转化为中文的时候难免会有些不自然 请大家谅解 配套的练习题答案可以在 https github com Oh233 Dragon book exercise 看到 感
  • L2F:第二层转发协议--网络大典

    第二层转发协议 L2F 是一种用来建立跨越公用结构组织 如因特网 的安全隧道 为企业家庭通路连接一个 ISP POP 的协议 这个隧道建立了一个用户与企业客户网路间的虚拟点对点连接 第二层转发协议 L2F 允许链路层协议隧道技术 使用这样的
  • 高性能计算实验——矩阵乘法基于OpenMP的实现及优化

    高性能计算实验 矩阵乘法基于OpenMP的实现及优化 1 实验目的 1 1 通过OpenMP实现通用矩阵乘法 1 2 基于OpenMP的通用矩阵乘法优化 1 3 构造基于Pthreads的并行for循环分解 分配和执行机制 2 实验过程和核
  • 《数据结构》实验报告四:串的模式匹配(BF算法、KMP算法)

    一 实验目的 1 了解串的基本概念 2 掌握串的模式匹配算法的实现 二 实验预习 说明以下概念 1 模式匹配 串的模式匹配就是子串的定位运算 设有两个字符串 S 和 T S为主串 正文串 T为子串 模式串 在主串S中查找与模式串T相匹配的子
  • tomcat配置数据库连接池

    闲着没事复习了以前的笔记 看到了tomcat配置数据库连接池 感觉这个地方没什么太多的印象 查了一下百度 发现都差不太多 都需要配置三个地方 觉得太麻烦了 于是直接查了一下tomcat帮助文档 发现里面本身就有关于配置连接池的介绍 于是手动
  • python--自定义range方法, for循环原理

    range方法其实就是一个可迭代对象 for i in range 1 10 print i 1 2 3 4 5 6 7 8 9 接下来我们自己来定义一个range 来模拟range方法 先以两个参数的range方法为例 1 可以先以两个参
  • 分区统计算法实现(C++ GDAL)

    Arcgis和QGIS都有分区统计工具 geopanda库也有相关函数 但无法满足我们课题组的需求 其中Arcgis只能输出一张表格 还需要进行连接 QGIS只能输出至新shp文件 geopandas计算速度相比慢了点 我们课题组需要对上千
  • MFC ListBox Control用法

    1添加数据 声明控件变量的类别为Control 变量类型为CListBox 变量名为m ListBox Content m ListBox Content AddString T 123 m ListBox Content AddStrin
  • 2.7 const 、指向类成员

    Const 1 const修饰变量的时候 初始化只能在初始化列表和类内 2 const修饰类内成员函数的时候 该成员函数不能修改类内的变量 除非变量有mutable修饰 3 const修饰一个对象 该对象叫做常对象 且只能调用const成员
  • arm-linux—gcc如何下载安装

    ubuntu下交叉编译环境构建 arm linux gcc 4 4 3 20100728 tar gz 1 下载arm linux gcc 4 4 3 20100728 tar gz到任意的目录下 arm linux gcc 4 4 3 2
  • docker 修改镜像和容器的存放路径

    docker info 查看docker的存储等相关信息 将路径修改至挂载磁盘中 前提 磁盘已挂载成功 方法一 1 停止docker 服务 service docker stop 2 备份数据到新的存放路径 cp r var lib doc
  • C++算法之深度优先搜索算法详解

    1 深度优先搜索算法 深度优先搜索是一种在开发爬虫早期使用较多的方法 它的目的是要达到被搜索结构的叶结点 即那些不包含任何超链的HTML文件 在一个HTML文件中 当一个超链被选择后 被链接的HTML文件将执行深度优先搜索 即在搜索其余的超
  • 1、hilens虚拟docker中-ros程序编译说明

    该文档主要用于在ubuntu机子上面编译ros库 当编译成功后 将整个文件夹的库拷贝至HiLens Kit 上面进行运行 这里注意 不能使用windows10的WSL 进行操作 在执行如下指令前 请确保ubuntu上面的docker能够正常