做企业平台网站成本,wordpress主题更换,新浪网网站的建设费用预算,株洲网站开发XTDrone仿真平台配置 文章目录 XTDrone仿真平台配置依赖安装 ROS一键安装Marvos安装PX4 安装安装QTGroundControlXTDrone下载安装 环境#xff1a; VMWare 16.0
Ubuntu 22.04 #xff08;因为没人配过#xff09;Ubuntu 20.04
参考文章#xff1a; 仿真平台基础配置 (yuq…XTDrone仿真平台配置 文章目录 XTDrone仿真平台配置依赖安装 ROS一键安装Marvos安装PX4 安装安装QTGroundControlXTDrone下载安装 环境 VMWare 16.0
Ubuntu 22.04 因为没人配过Ubuntu 20.04
参考文章 仿真平台基础配置 (yuque.com) Ubuntu20.04搭建PX4仿真环境及XTDrone开发平台最详细最明白_ubuntu安装px4_哒哒哒啥也不会的博客-CSDN博客
安装过程
简单地说XTDrone安装包括几个部分ROS安装、Gazebo安装、marvos安装和PX4 安装XTDrone下载和配置。
依赖安装
首先安装一个aptitude以解决出现的依赖问题
依赖问题的报错形式
有一些软件包无法被安装。如果您用的是 unstable 发行版这也许是 因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件 包尚未被创建或是它们已被从新到(Incoming)目录移出。 下列信息可能会对解决问题有所帮助 下列软件包有未满足的依赖关系 fcitx : 依赖: fcitx-data 但是它将不会被安装 E: 无法修正错误因为您要求某些软件包保持现状就是它们破坏了软件包间的依赖关系。
使用sudo apt install aptitude 安装aptitude在一定程度上能解决依赖问题
先从语雀下载压缩包PX4_Firmware并将该zip压缩包放置到Ubuntu主目录下使用unzip命令解压没用unzip命令工具使用sudo apt install unzip或sudo pip install unzip然后解压后将其命名为PX4_Firmware使用cd PX4_Firmware/Tools/setup其中有一个requements.txt文件
argcomplete
argparse1.2
cerberus
coverage
empy3.3
future
jinja22.8
jsonschema
kconfiglib
lxml
matplotlib3.0.*
numpy1.13
nunavut1.1.0
packaging
pandas0.21
pkgconfig
psutil
pygments
wheel0.31.1
pymavlink
pyros-genmsg
pyserial
pyulog0.5.0
pyyaml
requests
setuptools39.2.0
six1.12.0
toml0.9这是官当给出的PX4所需依赖。
在PX4_Firmware/Tools/setup目录下执行命令
bash ubuntu.sh --no-sim-tools
不加参数 --no-sim-tools就会自动安装ubuntu版本对应的gazebo及gazebo-dev和javsim等仿真依赖sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-pip python3-pip gawkpip2 install pandas jinja2 pyserial cerberus pyulog0.7.0 numpy toml pyquaternion empy pyyaml pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse记录
语雀文档中提到的一个错误
Collecting pandasUsing cached https://files.pythonhosted.org/packages/64/f1/8fdbd74edfc31625d597717be8c155c6226fc72a7c954c52583ab81a8614/pandas-1.1.2.tar.gzComplete output from command python setup.py egg_info:Traceback (most recent call last):File string, line 1, in moduleFile /tmp/pip-build-qtvsjq8t/pandas/setup.py, line 349f{extension}-source file {sourcefile} not found.\n^SyntaxError: invalid syntax----------------------------------------
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-qtvsjq8t/pandas/如果出现该错误可以先更新setuptools 和 pip。我没出现过
更新setuptools命令
pip install --upgrade setuptools
#若未报错不需要输入这两行命令
python -m pip install --upgrade pip放置一个清华源安装地址
https://pypi.tuna.tsinghua.edu.cn/simple如果报错网络连接不上或者下载一半就不下了然后报错的情况就在上面的命令后面写上
pip2 install pandas jinja2 pyserial cerberus pyulog0.7.0 numpy toml pyquaternion empy pyyaml -i https://pypi.tuna.tsinghua.edu.cn/simple可能的报错如下
ERROR: Could not install packages due to an EnvironmentError: HTTPSConnectionPool(hostfiles.pythonhosted.org, port443): Max retries exceeded with url: /packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl (Caused by NewConnectionError(urllib3.connection.VerifiedHTTPSConnection object at 0x7fd53ca02c10: Failed to establish a new connection: [Errno 101] Network is unreachable))
ROS一键安装
鱼香肉丝开发的ubuntu一键安装挺不错的避免了自己安装的很多麻烦包括编译上的麻烦换源等诸多问题。
wget http://fishros.com/install -O fishros . fishrosUbuntu 20.04是最后一个支持ROS1的对应安装ROS1的NoeticUbuntu 22.04只能安装ROS2ROS2都不是很熟我安装试了一下不太会用所以又用20.04了
安装时间会比较漫长安装结束后使用roscore命令启动rosROS2中不再这样启动出现一大段信息包括如下信息即安装成功。
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is 1GB.started roslaunch server http://ubuntu:37819/
ros_comm version 1.16.0SUMMARY
PARAMETERS* /rosdistro: noetic* /rosversion: 1.16.0NODESauto-starting new master
process[master]: started with pid [34913]
ROS_MASTER_URIhttp://ubuntu:11311/setting /run_id to 28b04b30-835b-11ee-87ca-e5b945730283
process[rosout-1]: started with pid [34924]
started core service [/rosout]
文档里有推荐安装rosdep
rosdep是ros的依赖项管理工具在安装完ros之后建议安装此工具但是在rosdep init和 rosdep update时国外的网站实在令人头疼。所以使用rosdepc
所以安装一下
sudo pip install rosdepcrosdepc需要进行初始化和更新
sudo rosdepc init
rosdepc update如果之前没有catkin_ws则需要新建工作空间之后除去PX4仿真环境启动外其余ROS相关工程在此工作空间下管理。
文档中推荐做法估计是为了集中管理
mkdir -p ~/catkin_ws/src
mkdir -p ~/catkin_ws/scripts
cd catkin_ws catkin init # 使用catkin_make话则为cd catkin_ws/src catkin_init_workspace
catkin build # 使用catkin_make话则为 cd .. catkin_make
gedit ~/.bashrc
在下面写入source ~/catkin_ws/devel/setup.bash #先写好source路径
关闭文件在终端执行
source ~/.bashrccatkin build需要先装catkin-toolssudo apt install python3-catkin-tools安装好Ubutu系统应该会有这个命令工具。
文档里说要卸载之前的GazeboCSDN博客里给出以下原因
XTDrone一般用gazebo9进行仿真而在安装ros noetic时会自动安装gazebo11以及对应的gazebo-ros插件这里我们需要卸载然后安装gazebo9以及肖老师修改过的gazebo-ros插件。
感觉也可以用gazebo11来进行仿真如果比较有时间的话可以试一试。
感觉Gazebo 11也不是不行文档里给出可以
选用Alternative installation: step-by-step的安装方式如果安装有依赖问题可以使用sudo aptitude install gazebo11选择合理的依赖解决办法别把ROS删了按步骤装完Gazebo后升级所有的包 sudo apt upgrade这样能保证gazebo所有依赖版本一致
卸载Gazebo
sudo apt-get remove gazebo*
sudo apt-get remove libgazebo*
sudo apt-get remove ros-noetic-gazebo* #kinetic melodic对应修改安装Gazebo
a、添加软件仓库
sudo sh -c echo deb http://packages.osrfoundation.org/gazebo/ubuntu-stable lsb_release -cs main /etc/apt/sources.list.d/gazebo-stable.listb、获取密钥
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -c、更新软件源
sudo apt-get updated、安装Gazebo 9
sudo apt-get install gazebo9
sudo apt-get install libgazebo9-dev #一定要记得这个
安装Gazebo 11
sudo apt-get install gazebo11
sudo apt-get install libgazebo11-dev插件修改的重新编译
安装依赖
sudo apt-get install ros-noetic-moveit-msgs ros-noetic-object-recognition-msgs ros-noetic-octomap-msgs ros-noetic-camera-info-manager ros-noetic-control-toolbox ros-noetic-polled-camera ros-noetic-controller-manager ros-noetic-transmission-interface ros-noetic-joint-limits-interface然后克隆并编译Gazebo的插件gazebo_ros_pkgs放在~/catkin_ws/src下如果编译时还缺其他的依赖同上方法安装
cd ~/catkin_ws/src
git clone https://github.com/ros-simulation/gazebo_ros_pkgs.git
cd ~/catkin_ws
catkin build上面需要使用git命令工具如果没安装过
sudo apt install gitcatkin build后的结果成功的情况是不会有Error的红色的Error看得人心惊肉跳
-----------------------------------------------------------------------
Profile: default
Extending: [env] /opt/ros/noetic:/home/sunx/catkin_ws/devel
Workspace: /home/sunx/catkin_ws
-----------------------------------------------------------------------
Build Space: [exists] /home/sunx/catkin_ws/build
Devel Space: [exists] /home/sunx/catkin_ws/devel
Install Space: [unused] /home/sunx/catkin_ws/install
Log Space: [exists] /home/sunx/catkin_ws/logs
Source Space: [exists] /home/sunx/catkin_ws/src
DESTDIR: [unused] None
-----------------------------------------------------------------------
Devel Space Layout: linked
Install Space Layout: None
-----------------------------------------------------------------------
Additional CMake Args: None
Additional Make Args: None
Additional catkin Make Args: None
Internal Make Job Server: True
Cache Job Environments: False
-----------------------------------------------------------------------
Buildlisted Packages: None
Skiplisted Packages: None
-----------------------------------------------------------------------
Workspace configuration appears valid.
-----------------------------------------------------------------------
[build] Found 6 packages in 0.0 seconds.
[build] Updating package table.
Starting gazebo_dev
Starting gazebo_msgs
Finished gazebo_dev [ 1.2 seconds ]
Finished gazebo_msgs [ 9.4 seconds ]
Starting gazebo_ros
Finished gazebo_ros [ 20.6 seconds ]
Starting gazebo_plugins
Starting gazebo_ros_control
Finished gazebo_ros_control [ 25.8 seconds ]
Finished gazebo_plugins [ 3 minutes and 41.5 seconds ]
Starting gazebo_ros_pkgs
Finished gazebo_ros_pkgs [ 1.3 seconds ]
[build] Summary: All 6 packages succeeded!
[build] Ignored: None.
[build] Warnings: None.
[build] Abandoned: None.
[build] Failed: None.
[build] Runtime: 4 minutes and 13.0 seconds total.
[build] Note: Workspace packages have changed, please re-source setup files to use them.问题git clone https://github.com/ros-simulation/gazebo_ros_pkgs.git有时候无法正常克隆库会报错。
解决方案一 在github网站上下载适用于自己ROS版本的压缩包ros-simulation/gazebo_ros_pkgs: Wrappers, tools and additional API’s for using ROS with Gazebo (github.com) 将压缩包放到~/catkin_ws/src目录下解压缩一般下载下来的压缩包是zip文件需要使用unzip命令工具。使用pip install unzip命令安装 使用cd ~/catkin_ws和catkin build进行编译。
编译通过后使用命令
roscore 开始ros服务使用命令
source ~/catkin_ws/devel/setup.bash
rosrun gazebo_ros gazebo开启gazebo查看安装是否成功。
Gazebo有很多开源的模型文件models.zip下载后将该附件解压缩后放在~/.gazebo中此时在~/.gazebo/models/路径下可以看到很多模型。如果不做这一步之后运行Gazebo仿真可能会缺模型这时会自动下载Gazebo模型服务器在国外自动下载会比较久。
Marvos安装
注意mavros-extras一定别忘记装否则视觉定位将无法完成
sudo apt install ros-noetic-mavros ros-noetic-mavros-extras # for ros-noetic
wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.shsudo chmod ax ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh #这步需要装一段时间PX4 安装
安装方式从语雀下载压缩包PX4_Firmware使用该压缩包解压编译从git上下载的代码可能很多方面都要修改而且下载速度很慢。
使用该包会报错
[0/1] Re-running CMake...
CMake Error: The source directory /home/robin/PX4_Firmware_13 does not exist.
Specify --help for usage, or press the help button on the CMake GUI.
FAILED: build.ninja
/usr/bin/cmake -H/home/robin/PX4_Firmware_13 -B/home/robin/PX4_Firmware_13/build/px4_sitl_default
ninja: error: rebuilding build.ninja: subcommand failed
make: *** [Makefile:230: px4_sitl_default] Error 1主要是编译的CMakeCache.txt文件中的路径都是/home/robin/PX4_Firmware_13肖老师自己电报的路径可能编译过不了然后自己改也是比较麻烦我尝试改了CMakeCache.txt文件中路径问题还是报错还需要改build.ninja文件、cmake_install.cmake等等。这两个文件都在PX4_Firmware_13/build/px4_sitl_default目录下。~~反正要改很多文件你就改吧我是把这个目录下的编译文件都改了一遍但还是有报错
这样看用git命令也是可以可以通过git 克隆代码
git clone -b v1.13.2 https://github.com/PX4/PX4-Autopilot.git --recursive
git clone -b v1.13.2 https://github.com.cnpmjs.org/PX4/PX4-Autopilot.git --recursive
mv PX4-Autopilot PX4_Firmware
cd PX4_Firmware
git checkout -b xtdrone/dev v1.13.2
git submodule update --init --recursive
make px4_sitl_default gazebo好叭最后还是用的VS code整体修改才可以编译
chmod x Tools/check_submodules.sh
chmod x Tools/sitl_run.sh最好发现还是不行报错是
Error creating PX4_Firmware/build/px4_sitl_default/etc - /home/sunx/PX4_Fir这个错误还显示不全应该是软连接问题。
克隆又克隆不下来编译又编译不过丢。
新的可行方法 下载语雀文档中的PX4包解压后进入PX4_Firmware然后使用命令rm -rf build删除build文件夹然后使用命令mkdir build 使用命令重新编译 cd build
cmake ..
make使用命令 git checkout -b xtdrone/dev v1.13.2
git submodule update --init --recursive
make px4_sitl_default gazebo终于编译成功了。花了一天和一个晚上 修改 ~/.bashrc加入以下代码,注意路径匹配前两个source顺序不能颠倒
#配好好路径
gedit ~/.bashrc
在里面写入
source ~/catkin_ws/devel/setup.bash
source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
#确保文件最底部是export而不是source
export ROS_PACKAGE_PATH$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo关闭文件在终端执行
source ~/.bashrc然后运行如下命令,此时会启动Gazebo,如下图所示。
cd ~/PX4_Firmware
roslaunch px4 mavros_posix_sitl.launch安装QTGroundControl
第一次安装该软件
sudo usermod -a -G dialout $USER
sudo apt-get remove modemmanager -y
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
sudo apt install libqt5gui5 -y
sudo apt install libfuse2 -yXTDrone下载安装
FAILED: /home/sunx/PX4_Firmware/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf
cd /home/sunx/PX4_Firmware/build/px4_sitl_default/build_gazebo /usr/bin/python3 /home/sunx/PX4_Firmware/Tools/sitl_gazebo/scripts/jinja_gen.py /home/sunx/PX4_Firmware/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf.jinja /home/sunx/PX4_Firmware/Tools/sitl_gazebo --generate_ros_models true
Traceback (most recent call last):File /home/sunx/PX4_Firmware/Tools/sitl_gazebo/scripts/jinja_gen.py, line 96, in moduleraise Exception(ERROR: generation would overwrite changes to {}. .format(filename_out) \
Exception: ERROR: generation would overwrite changes to /home/sunx/PX4_Firmware/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf. Changes should only be made to the template file /home/sunx/PX4_Firmware/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf.jinja. Remove typhoon_h480.sdf (after extracting your changes) to disable this overwrite protection.
解决方案
find . -name typhoon.sdf
然后使用rm 命令删除该文件FAILED: external/Stamp/sitl_gazebo/sitl_gazebo-build
cd /home/sunx/PX4_Firmware/build/px4_sitl_default/build_gazebo /usr/bin/cmake --build /home/sunx/PX4_Firmware/build/px4_sitl_default/build_gazebo -- -j 2删除文件后这个问题就可以解决了。
注意用ctrlc关闭仿真进程有可能没有把Gazebo的相关进程关干净这样再启动仿真时可能会报错。如果出现这种情况可以用killall -9 gzclientkillall -9 gzserver 这两个命令强行关闭gazebo所有进程。
killall -9 gzclient
killall -9 gzserver
文章转载自: http://www.morning.fnzbx.cn.gov.cn.fnzbx.cn http://www.morning.nkyqh.cn.gov.cn.nkyqh.cn http://www.morning.tqfnf.cn.gov.cn.tqfnf.cn http://www.morning.frzdt.cn.gov.cn.frzdt.cn http://www.morning.hdscx.cn.gov.cn.hdscx.cn http://www.morning.prhfc.cn.gov.cn.prhfc.cn http://www.morning.qnqt.cn.gov.cn.qnqt.cn http://www.morning.bqwrn.cn.gov.cn.bqwrn.cn http://www.morning.tclqf.cn.gov.cn.tclqf.cn http://www.morning.rcmwl.cn.gov.cn.rcmwl.cn http://www.morning.zhghd.cn.gov.cn.zhghd.cn http://www.morning.wbysj.cn.gov.cn.wbysj.cn http://www.morning.qggxt.cn.gov.cn.qggxt.cn http://www.morning.jpydf.cn.gov.cn.jpydf.cn http://www.morning.nbdtdjk.cn.gov.cn.nbdtdjk.cn http://www.morning.zfrs.cn.gov.cn.zfrs.cn http://www.morning.zrmxp.cn.gov.cn.zrmxp.cn http://www.morning.txysr.cn.gov.cn.txysr.cn http://www.morning.trqsm.cn.gov.cn.trqsm.cn http://www.morning.ghqyr.cn.gov.cn.ghqyr.cn http://www.morning.slzkq.cn.gov.cn.slzkq.cn http://www.morning.hbkkc.cn.gov.cn.hbkkc.cn http://www.morning.guangda11.cn.gov.cn.guangda11.cn http://www.morning.pcgjj.cn.gov.cn.pcgjj.cn http://www.morning.nclbk.cn.gov.cn.nclbk.cn http://www.morning.qmnhw.cn.gov.cn.qmnhw.cn http://www.morning.tlbdy.cn.gov.cn.tlbdy.cn http://www.morning.fynkt.cn.gov.cn.fynkt.cn http://www.morning.glxmf.cn.gov.cn.glxmf.cn http://www.morning.kwz6232.cn.gov.cn.kwz6232.cn http://www.morning.gyfhk.cn.gov.cn.gyfhk.cn http://www.morning.thnpj.cn.gov.cn.thnpj.cn http://www.morning.fhtmp.cn.gov.cn.fhtmp.cn http://www.morning.ybhrb.cn.gov.cn.ybhrb.cn http://www.morning.wjlrw.cn.gov.cn.wjlrw.cn http://www.morning.qtwd.cn.gov.cn.qtwd.cn http://www.morning.chmcq.cn.gov.cn.chmcq.cn http://www.morning.xdjwh.cn.gov.cn.xdjwh.cn http://www.morning.rrgm.cn.gov.cn.rrgm.cn http://www.morning.tfkqc.cn.gov.cn.tfkqc.cn http://www.morning.pmdzd.cn.gov.cn.pmdzd.cn http://www.morning.mdrnn.cn.gov.cn.mdrnn.cn http://www.morning.llfwg.cn.gov.cn.llfwg.cn http://www.morning.pinngee.com.gov.cn.pinngee.com http://www.morning.kngqd.cn.gov.cn.kngqd.cn http://www.morning.rqwwm.cn.gov.cn.rqwwm.cn http://www.morning.nzklw.cn.gov.cn.nzklw.cn http://www.morning.pbknh.cn.gov.cn.pbknh.cn http://www.morning.qgcfb.cn.gov.cn.qgcfb.cn http://www.morning.jqhrk.cn.gov.cn.jqhrk.cn http://www.morning.ryxyz.cn.gov.cn.ryxyz.cn http://www.morning.nqmwk.cn.gov.cn.nqmwk.cn http://www.morning.qgmbx.cn.gov.cn.qgmbx.cn http://www.morning.wpsfc.cn.gov.cn.wpsfc.cn http://www.morning.qbjgw.cn.gov.cn.qbjgw.cn http://www.morning.sqgsx.cn.gov.cn.sqgsx.cn http://www.morning.osshjj.cn.gov.cn.osshjj.cn http://www.morning.zhghd.cn.gov.cn.zhghd.cn http://www.morning.yfcyh.cn.gov.cn.yfcyh.cn http://www.morning.hrdx.cn.gov.cn.hrdx.cn http://www.morning.yysqz.cn.gov.cn.yysqz.cn http://www.morning.hmxrs.cn.gov.cn.hmxrs.cn http://www.morning.rfyff.cn.gov.cn.rfyff.cn http://www.morning.tkyry.cn.gov.cn.tkyry.cn http://www.morning.sqqkr.cn.gov.cn.sqqkr.cn http://www.morning.shxmr.cn.gov.cn.shxmr.cn http://www.morning.lfsmf.cn.gov.cn.lfsmf.cn http://www.morning.rbgqn.cn.gov.cn.rbgqn.cn http://www.morning.chrbp.cn.gov.cn.chrbp.cn http://www.morning.pmghz.cn.gov.cn.pmghz.cn http://www.morning.qkrzn.cn.gov.cn.qkrzn.cn http://www.morning.ktcrr.cn.gov.cn.ktcrr.cn http://www.morning.znqmh.cn.gov.cn.znqmh.cn http://www.morning.fkmyq.cn.gov.cn.fkmyq.cn http://www.morning.wqfj.cn.gov.cn.wqfj.cn http://www.morning.wwthz.cn.gov.cn.wwthz.cn http://www.morning.pplxd.cn.gov.cn.pplxd.cn http://www.morning.rbhqz.cn.gov.cn.rbhqz.cn http://www.morning.yrcxg.cn.gov.cn.yrcxg.cn http://www.morning.xpqsk.cn.gov.cn.xpqsk.cn