如何在nao-robot上构建第三方软件

概述:

Nao是在学术领域世界范围内运用最广泛的类人机器人。法国AldebaranRobotics公司将Nao的技术开放给所有的高等教育项目,并于2010年成立基金会支持在机器人及其应用领域的教学项目。

Nao运行在开源的linux上(gentoo发行版,在本文中我们称之为nao-os),其核心软件是naoqi,开发者可以用多种语言通过调用naoqiapi驱动Nao。但是开发者如果需要构建第三方应用就比较麻烦了,开发Nao的人很聪明,也考虑到了扩展naoqi-api的需要。在我的一个项目中需要让naoqi接收蓝牙4.0的数据报,也就必须扩展naoqi-api了。

接下来我就逐步介绍构建第三方应用和扩展naoqi-api的过程。

首先是第三方应用,也就是在nao-os上运行自己的binaray程序。有人可能会查到gentoo上有叫emerge的包管理器,或者是可以通过源码安装(也就是make命令)。但很可惜,这些工具在nao-os上都没有。那么我们改怎么做呢?

官方的nao文档中提到了构建第三方应用的方法:qibuild工具+OpenNAO(在Virtutalbox上运行的虚拟镜像)

qibuild工具用来进行工程的管理和编译。

OpenNAO用来获取第三方依赖库或来查看程序的运行正确性。


构建第三方应用的步骤如下:

1.OpenNAO虚拟机器上构建第三方依赖。

2.把在OpenNao上构建的二进制包转换成qiBuild工具包格式。

3.qiBuild包添加到cross-toolchain(一种跨平台构建程序的工具,首先你得建立一个)

4.构建自己的主程序(此时可以调用依赖库)。

5.将主程序部署到机器人上。

注:如果不需要第三方依赖库,则可以跳过1-3步,直接进入第4


a.OpenNAO虚拟机器上构建第三方依赖(比如libupnp)

1.寻找依赖库:emerge-s libupnp

2.安装依赖库:

su;

emergelibupnp

3.查看依赖库:equeryfiles libupnp

4.从你的主机上获取虚拟机中的二进制包:

scp-r -P 2222nao@localhost:/home/nao/opennao-distro/packages/net-libs/.



b.Gentoo的二进制包转换进cross-toolchain

qitoolchainimport-package -c cross-atom libupnp /path/to/libup-1.6.6.tar.bz2

查看加入到cross-toolchain中的包信息:qitoolchaininfo cross-atom

注:首先你得先用naotoolchain.xml建立一个cross-toolchain哦(这里假设你已经建立了cross-atom)!


c.构建依赖第三方的程序:

1.构建你自己的主程序。

2.然后命令行执行:

qibuildconfigure -c cross-atom

qibuildmake -c cross-atom


d.部署应用:

编辑qiproject.xml

<projectname=”bar”>

<dependsbuildtime=”true” runtime=”true” names=”libupnp”/>

</project>

然后运行:

qibuildpackage –include-deps –runtime –release -c cross-atom bar

这个命令或编译并构建bar工程(也就是你的主程序),然后在当前文件夹中安装来自barlibupnp的组件,然后在当前安装目录中生成一个.tar.gz

这个包是可以移动的,意味这一旦它在机器人上解压,bar主程序总是可以找到libupnp

这意味着尼可以把这个包放在robot/home/nao的目录里,而不用成为root用户或冒险更改系统的类库。

最后一件事就是将包发送到robot上(推荐用ftp,比较方便,但文档中室scp命令)

scpbar.tar.gz[email protected]: .

解压,然后运行即可。


发布了35 篇原创文章 · 获赞 61 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/cql342624757/article/details/40262807