摘录: https://www.ngui.cc/51cto/show-23557.html
Ubuntu18.04下基于ROS和PX4的无人机仿真平台底层组态编程学习 2020/7/12 19:50:27 522巡阅
Ubuntu18.04下基于ROS和PX4的无人机仿真平台底层配置构建参考资料: https://www.Yu que.com/XT drone/manual _ cn/basic _ config _ 1.11
3359 blog.csdn.net/QQ _ 42585108/article/details/106781596
只是基于这两篇文章进行了总结和个人安装时的经验体会,中途可能会引用很多,如果侵权请联系删除。
系统Ubuntu18.04,从我刚安装的纯Ubuntu开始安装,一步到位,综合了一些网络上的构建方法和其中遇到的问题,把这些记录下来,方便大家和自己参考。 如果有错误就不欢迎指出来。
一.依赖安装1、
sudoaptinstall-yninja-buildexiftoolpython-arg parsepython-empypython-toml python-numpy python
pip installpandasJin ja2py serialCerberuspy ulognumpytomlpy quaternion 2,ROS安装可在ROS官方网站: 33
或教程: https://is mango.blog.csdn.net/article/details/106049992
注意: Ubuntu18.04直接安装所有。 (desktop-full为ROS Melodic时,选择desktop-full方式进行安装。 这将同时安装Gazebo9和感知相关库。 ) 16.04 ) ROSkinetic )如果不选择destop,将安装gazebo7
要稍后启动ROS,请执行以下操作:
roscore具有以下输出,指示安装成功:
. logging to /home/ro诚实汉堡/.ROS/log/a 5118 af0-5474-11ea-8b 86-e 454 e 828 c 524/rcheckinglogdirectoryfordiskusage.thismaytakeawhile.press ctrl-ctointerruptdonecheckinglogfilediskusage.usage is 1gb.sttttted 90336034223/ROS _ commversion1. 12.14 summary=====parameters */ROS distro 3360 k inning ROS version 33601.12.14 : startedwithpid [ 30244 ] ROS _ master _ uri=setting/run _ idtoa 5118 af0- 5474-11ea-8b 86-e 454 e 828 c 524 process
Gazebo的安装请参考官方网站:
http://gazebosim.org/tutorials? tut=install_ubuntucat=install
注意事项:
1 .备用安装:步骤- by-step选择安装方法
安装向导盒9
因为Gazebo本身独立于ROS,所以还必须安装ROS的Gazebo插件
sdoaptinstallros-kinetic-gaze bo9-*四、 MAVROS安装sudoaptinstallros-kinetic-mavrosros-kinetic-MAV ROS-extrasroscdmavroswget 3359 raw.github user content.cotic install _ geographic lib _ datasets.shsudochmodax./install _ geographic lib _ datasets.sh./install _ geographic lic lib
git clone https://github.com/PX4/Firmwaremv Firmware PX4_Firmwarecd PX4_Firmwaregit checkout -b xtdrone/dev v1.11.0-beta1git submodule update --init --recursive安装必要的python依赖:
cd PX4_Firmware bash bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools编译
make posix_sitl_default gazebo修改 ~/.bashrc,加入以下代码,注意路径匹配
cd PX4_Firmwaresource ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_defaultexport ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmwareexport ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo然后运行如下命令,此时会启动Gazebo,如下图所示。
cd ~/PX4_Firmwareroslaunch px4 mavros_posix_sitl.launch
并运行
若connected: True,则说明MAVROS与SITL通信成功。
---header:seq: 11stamp:secs: 1827nsecs: 173000000frame_id: ''connected: Truearmed: Falseguided: Falsemanual_input: Truemode: "MANUAL"system_status: 3---注意:
1.有条件的建议科学上网下载。GitHub上下载速度比较缓慢,还可能失败,我也尝试过修改网络什么的效果几乎没有,建议在git clone之前把GitHub上PX4源码的放到码云(gitee)上,码云的使用请大家自行搜索。
如果是把代码放到码云上下载,在更新子模块(git submodule update --init --recursive)中还是从GitHub上下载速度也是很慢,这个好像需要修改submodule,但是我还不知道如何操作,若有大神希望指导一下。
2.make px4_sitl_default gazebo这个过程可能比较考验电脑内存,我电脑有几次CPU都是100%运行,而且停下卡住
情况可能如下:
可以尝试先增加临时swap空间,再执行make px4_sitl_default gazebo指令
#注释:of=/home/swap,放置swap的空间; count的大小就是增加的swap空间的大小,64M就是块大小,这里是64MB,所以总共空间就是bs*count=1024MB.这里分配空间的时候需要一点时间,等待执行完毕。sudo dd if=/dev/zero of=/home/swap bs=64M count=16 #注释:把刚才空间格式化成swap各式sudo mkswap /home/swap (可能会提示warning: don't erase bootbits sectorson whole disk. Use -f to force,不用理会)#注释:使刚才创建的swap空间sudo swapon /home/swap3.在最后一个指令(make px4_sitl_default gazebo)运行时可能出现如下错误:
解决方法:
4.运行时可能会出现如下状况:
这些报错和警告并不影响使用,可以直接无视。
5.第一次运行时进程比较缓慢,gazebo可能有一段时间黑屏,其实这是在初始化,请耐心等待一下,后面的情况也如此。
六、QGC地面站安装安装链接:https://docs.qgroundcontrol.com/en/getting_started/download_and_install.html
启动后,将出现下图 所示画面。注意Ubuntu16.04没法直接使用QGroundcontrol 版本4系列(可以使用版本3系列),Ubuntu16.04需要源码编译版本4系列,请仔细查看安装链接。
注意:cp -r sitl_config/models/* ~/.gazebo/models/ 这一步可能出现如下情况:
可以暂时先不要管,继续进行后面的步骤,编译后再进行尝试可能就成功了。
在一个终端运行
cd ~/PX4_Firmwareroslaunch px4 indoor1.launchGazebo启动后,在另一个终端运行
cd ~/XTDrone/communication/python multirotor_communication.py iris 0与0号iris建立通信后,在另一个终端运行
cd ~/XTDrone/control/python multirotor_keyboard_control.py iris 1 vel成功后如图所示
可以通过键盘控制1架iris的解锁/上锁,修改飞行模式,飞机速度等。使用t起飞利用的是takeoff飞行模式,相关参数(起飞速度、高度)要在rcS中设置。一般可以使用offboard模式起飞,这时起飞速度要大于0.3m/s才能起飞。
到此,仿真平台基础配置完成
注意:执行roslaunch px4 indoor1.launch指令时可能会发生如下错误:
目前我无法解决这个问题,原作者说可能是三维激光雷达的问题,据说把
gazebo9升到11可以解决,我还没有进行尝试
参考网页:
[1]: https://www.yuque.com/xtdrone/manual_cn/basic_config_1.11
[2]: https://blog.csdn.net/qq_42585108/article/details/106781596