首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使无人驾驶飞机自主包装在Jetson上工作?

如何使无人驾驶飞机自主包装在Jetson上工作?
EN

Stack Overflow用户
提问于 2019-08-05 12:29:46
回答 2查看 732关注 0票数 1

我正在研制一款Jetson板,我需要将它与鹦鹉ar无人机2.0连接起来,因此为了做到这一点,我想使用ardrone_autonomy软件包,但我不能这样做,因为jetson有Ubuntu 18,它只支持ROS旋律,它没有这个软件包。

以下是我尝试过的:

  1. 我从这个存储库构建了这个包:自治

但是我得到了这个错误:

代码语言:javascript
复制
/tmp/ccIoQjBo.s: Assembler messages:
/tmp/ccIoQjBo.s:128: Error: unknown mnemonic `bswap' -- `bswap x3'
generic.makefile:231: recipe for target '../../Soft/Build/targets_versions/vlib_PROD_MODE_Linux_4.9.140-tegra_GNU_Linux_usrbingcc_5.4.0/video_mem32.o' failed
make[8]: *** [../../Soft/Build/targets_versions/vlib_PROD_MODE_Linux_4.9.140-tegra_GNU_Linux_usrbingcc_5.4.0/video_mem32.o] Error 1
vlib.makefile:104: recipe for target 'all' failed
make[7]: *** [all] Error 2
Makefile:167: recipe for target 'build_vlib' failed
make[6]: *** [build_vlib] Error 2
Makefile:170: recipe for target 'all' failed
make[5]: *** [all] Error 2
Makefile:84: recipe for target 'build_libs' failed
make[4]: *** [build_libs] Error 2
Makefile:20: recipe for target 'all' failed
make[3]: *** [all] Error 2
ardrone_autonomy/CMakeFiles/ardronelib.dir/build.make:110: recipe for target '/catkin_ws/devel/src/ardronelib-stamp/ardronelib-build' failed
make[2]: *** [/catkin_ws/devel/src/ardronelib-stamp/ardronelib-build] Error 2
CMakeFiles/Makefile2:578: recipe for target 'ardrone_autonomy/CMakeFiles/ardronelib.dir/all' failed
make[1]: *** [ardrone_autonomy/CMakeFiles/ardronelib.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

在我解决了这个问题之后,我使用了几乎所有的解决方案:自治/问题/71

我可以毫无问题地编译包,但是当我试图运行节点时,它说ardrone_driver已经死了,没有任何其他信息。

2.然后,我尝试在ROS Kinetic下的一个码头中构建包,但是在得到与上面相同的bswap错误之后,在应用了上面的解决方案之后,我得到了如下结果:

代码语言:javascript
复制
/tmp/ccFs5LFZ.s: Assembler messages:
/tmp/ccFs5LFZ.s:130: Error: unexpected characters following instruction at operand 2 -- `mov x4,x4,ror#8'
generic.makefile:231: recipe for target '../../Soft/Build/targets_versions/vlib_PROD_MODE_Linux_4.9.140-   tegra_GNU_Linux_usrbingcc_5.4.0/video_mem32.o' failed
make[8]: *** [../../Soft/Build/targets_versions   /vlib_PROD_MODE_Linux_4.9.140-tegra_GNU_Linux_usrbingcc_5.4.0   /video_mem32.o] Error 1
vlib.makefile:110: recipe for target 'all' failed
make[7]: *** [all] Error 2
Makefile:167: recipe for target 'build_vlib' failed
make[6]: *** [build_vlib] Error 2
Makefile:170: recipe for target 'all' failed
make[5]: *** [all] Error 2
Makefile:84: recipe for target 'build_libs' failed
make[4]: *** [build_libs] Error 2
Makefile:24: recipe for target 'all' failed
make[3]: *** [all] Error 2
ardrone_autonomy/CMakeFiles/ardronelib.dir/build.make:110: recipe for target '/ardrone_ws/devel/src/ardronelib-stamp/ardronelib-build' failed
make[2]: *** [/ardrone_ws/devel/src/ardronelib-stamp/ardronelib-build]     Error 2
CMakeFiles/Makefile2:578: recipe for target 'ardrone_autonomy/CMakeFiles/ardronelib.dir/all' failed
make[1]: *** [ardrone_autonomy/CMakeFiles/ardronelib.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[  2%] Built target    _ardrone_autonomy_generate_messages_check_deps_matrix33
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j2" failed

这就是我陷入困境的地方,因为据我所知,这是处理器体系结构的问题(Jetson使用armv8),上面的所有解决方案都是针对armv7的,但我不知道如何解决这个问题。如果其他人找到了解决这个问题的办法,请告诉我。任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

发布于 2019-08-13 10:12:54

我终于解决了这个问题,下面是完整的步骤,如果还有其他人正在为同样的问题而挣扎:

  1. 我使用:sudo docker pull ros:kinetic-robot-xenial下载了docker映像,然后按照以下步骤运行映像:http://wiki.ros.org/docker/Tutorials/Docker
  2. 我从上面的链接中克隆了工作空间中的ardrone_autonomy包:

mkdir -p catkin_ws/src cd catkin_ws/src git clone https://github.com/dsapandora/ardrone_autonomy.git apt-get update cd ../ rosdep install --from-paths src --ignore-src -r -y catkin_make

  1. 使用bswap出现错误后,编辑此文件:devel/src/ardronelib/ARDroneLib/VP_SDK/VP_Os/linux/intrin.h并替换:

static INLINE uint32_t _byteswap_ulong(uint32_t value) { __asm("bswap %0": "=r" (value): "0" (value));

return value; }

在这方面:

static INLINE uint32_t _byteswap_ulong(uint32_t value) { int32_t tmp;

__asm __volatile( "eor %1, %2, %2, ror #16\n" "bic %1, %1, #0x00ff0000\n" "mov %0, %2, ror #8\n" "eor %0, %0, %1, lsr #8" : "=r" (value), "=r" (tmp) : "r" (value) );

return value; }

并评论这一行:_BitScanReverse(&index, code);

  1. 完成此操作后,如果您尝试给它一个catkin_make,那么它应该出现最后一个错误,这个错误可以“简单地”解决(在您了解了那里发生的事情之后:),只需替换这一行(来自上面的相同文件):

"mov %0, %2, ror #8\n"

通过以下方式:

"mov %0, %2\n"

现在应该可以正常工作了。

PS:别忘了获取你的工作空间。

票数 0
EN

Stack Overflow用户

发布于 2021-04-06 09:26:11

AR无人驾驶飞机2.0仍然兼容。

只需将固件降级到2.4.1 (我使用这个)

https://www.espaciodrone.com/todos-los-firmware-del-ar-drone-1-y-2/

打开你的AR.Drone

把你的电脑连接到AR.Drone的网络

打开到192.168.1.1的telnet会话

键入以下内容: echo "1.1.1“>/固件/version.txt

按下回车

键入以下内容: echo "2.4.1“> /update/version.txt

将FTP客户端连接到: 192.168.1.1端口: 5551 (我使用nautilius +l然后使用ftp://192.168.1.1:5551)

将下载的plf文件上载到FTP服务器(AR.Drone)

断开计算机与AR.Drone的连接

将电池与AR.Drone断开

重新连接电池

在升级完成前等待大约5分钟,让你的无人机打开。

使用这个git克隆https://github.com/dsapandora/ardrone..

就像一种魅力..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57358653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档