我正在研制一款Jetson板,我需要将它与鹦鹉ar无人机2.0连接起来,因此为了做到这一点,我想使用ardrone_autonomy软件包,但我不能这样做,因为jetson有Ubuntu 18,它只支持ROS旋律,它没有这个软件包。
以下是我尝试过的:
但是我得到了这个错误:
/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错误之后,在应用了上面的解决方案之后,我得到了如下结果:
/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的,但我不知道如何解决这个问题。如果其他人找到了解决这个问题的办法,请告诉我。任何帮助都将不胜感激!
发布于 2019-08-13 10:12:54
我终于解决了这个问题,下面是完整的步骤,如果还有其他人正在为同样的问题而挣扎:
sudo docker pull ros:kinetic-robot-xenial下载了docker映像,然后按照以下步骤运行映像:http://wiki.ros.org/docker/Tutorials/Dockermkdir -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
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);
catkin_make,那么它应该出现最后一个错误,这个错误可以“简单地”解决(在您了解了那里发生的事情之后:),只需替换这一行(来自上面的相同文件):"mov %0, %2, ror #8\n"
通过以下方式:
"mov %0, %2\n"
现在应该可以正常工作了。
PS:别忘了获取你的工作空间。
发布于 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..。
就像一种魅力..。
https://stackoverflow.com/questions/57358653
复制相似问题