【XTDrone Ubuntu18.04】XTDrone + Ubuntu18.04 + PX4 安装过程
重新配置所有的软件
卸载之前安装的ROS GAZEBO
记得把/home下的.ros和.gazebo也删除,删就删干净
参考链接:ROS的卸载与安装 血泪总结!亲测有效
卸载ROS方法
正式安装
安装依赖
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 gawk -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip2 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml -i https://pypi.tuna.tsinghua.edu.cn/simple/pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse -i https://pypi.tuna.tsinghua.edu.cn/simple/
国内源地址
https://pypi.tuna.tsinghua.edu.cn/simple/http://mirrors.aliyun.com/pypi/simple/http://pypi.mirrors.ustc.edu.cn/simple/https://repo.huaweicloud.com/repository/pypi/simple/
ROS安装
参考链接:ubuntu 18.04 三五分钟即可一键安装ROS系统(亲测有效)
再次安装出现依赖混乱的问题:
apt-get purge package-name
sudo apt-get purge ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-pip python3-pip gawk
下列软件包是自动安装的并且现在不需要了:default-libmysqlclient-dev dh-python freeglut3 freeglut3-dev gdal-datagir1.2-harfbuzz-0.0 google-mock googletest hdf5-helpers ibverbs-providersicu-devtools libaec-dev libaec0 libapr1 libapr1-dev libaprutil1libaprutil1-dev libarmadillo-dev libarmadillo8 libarpack2 libarpack2-devlibassuan-dev libavcodec-dev libavdevice-dev libavdevice57 libavfilter-devlibavformat-dev libavresample-dev libavutil-dev libblas-dev libblas3libboost-all-dev libboost-atomic-dev libboost-atomic1.65-devlibboost-atomic1.65.1 libboost-chrono-dev libboost-chrono1.65-devlibboost-chrono1.65.1 libboost-container-dev libboost-container1.65-devlibboost-container1.65.1 libboost-context-dev libboost-context1.65-devlibboost-context1.65.1 libboost-coroutine-dev libboost-coroutine1.65-devlibboost-coroutine1.65.1 libboost-date-time-dev libboost-date-time1.65-devlibboost-dev libboost-exception-dev libboost-exception1.65-devlibboost-fiber-dev libboost-fiber1.65-dev libboost-fiber1.65.1libboost-filesystem-dev libboost-filesystem1.65-dev libboost-graph-devlibboost-graph-parallel-dev libboost-graph-parallel1.65-devlibboost-graph-parallel1.65.1 libboost-graph1.65-dev libboost-graph1.65.1libboost-iostreams-dev libboost-iostreams1.65-dev libboost-locale-devlibboost-locale1.65-dev libboost-log-dev libboost-log1.65-devlibboost-log1.65.1 libboost-math-dev libboost-math1.65-devlibboost-math1.65.1 libboost-mpi-dev libboost-mpi-python-devlibboost-mpi-python1.65-dev libboost-mpi-python1.65.1 libboost-mpi1.65-devlibboost-mpi1.65.1 libboost-numpy-dev libboost-numpy1.65-devlibboost-numpy1.65.1 libboost-program-options-devlibboost-program-options1.65-dev libboost-program-options1.65.1libboost-python-dev libboost-python1.65-dev libboost-python1.65.1libboost-random-dev libboost-random1.65-dev libboost-random1.65.1libboost-regex-dev libboost-regex1.65-dev libboost-regex1.65.1libboost-serialization-dev libboost-serialization1.65-devlibboost-serialization1.65.1 libboost-signals-dev libboost-signals1.65-devlibboost-signals1.65.1 libboost-stacktrace-dev libboost-stacktrace1.65-devlibboost-stacktrace1.65.1 libboost-system-dev libboost-system1.65-devlibboost-test-dev libboost-test1.65-dev libboost-test1.65.1libboost-thread-dev libboost-thread1.65-dev libboost-timer-devlibboost-timer1.65-dev libboost-timer1.65.1 libboost-tools-devlibboost-type-erasure-dev libboost-type-erasure1.65-devlibboost-type-erasure1.65.1 libboost-wave-dev libboost-wave1.65-devlibboost-wave1.65.1 libboost1.65-dev libboost1.65-tools-dev libbullet-devlibbullet2.87 libbz2-dev libconsole-bridge-dev libconsole-bridge0.4libcurl4-openssl-dev libdap-dev libdap25 libdapclient6v5 libdapserver7v5libdrm-dev libegl1-mesa-dev libepsilon-dev libepsilon1 libexpat1-devlibfabric1 libfreeimage-dev libfreeimage3 libfreexl-dev libfreexl1libfyba-dev libfyba0 libgdal-dev libgdal20 libgeos-3.6.2 libgeos-c1v5libgeos-dev libgeotiff-dev libgeotiff2 libgfortran4 libgif-dev libgif7libgl1-mesa-dev libgles1 libgles2-mesa-dev libglib2.0-dev libglib2.0-dev-binlibglu1-mesa-dev libglvnd-core-dev libglvnd-dev libgpg-error-devlibgpgme-dev libgraphite2-dev libgtest-dev libgts-dev libharfbuzz-devlibharfbuzz-gobject0 libhdf4-0-alt libhdf4-alt-dev libhdf5-100libhdf5-cpp-100 libhdf5-dev libhwloc-dev libhwloc-plugins libhwloc5libibverbs-dev libibverbs1 libice-dev libicu-dev libicu-le-hb-devlibicu-le-hb0 libiculx60 libignition-common libignition-fuel-tools1-1libignition-math4 libignition-msgs libignition-transport4 libjbig-devlibjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libjson-c-dev libjsoncpp-devlibjxr0 libkml-dev libkmlbase1 libkmlconvenience1 libkmldom1 libkmlengine1libkmlregionator1 libkmlxsd1 liblapack-dev liblapack3 libldap2-devliblog4cxx-dev liblog4cxx10v5 libltdl7:i386 liblz4-dev liblzma-devlibminizip-dev libminizip1 libmysqlclient-dev libmysqlclient20 libnetcdf-devlibnetcdf13 libnl-route-3-200 libnuma-dev libodbc1 libogdi3.2 libogdi3.2-devlibogre-1.9-dev libogre-1.9.0v5 libopenblas-base libopengl0 libopenjp2-7-devlibopenmpi-dev libopenmpi2 liborc-0.4-dev liborc-0.4-dev-bin libpcre16-3libpcre3-dev libpcre32-3 libpcrecpp0v5 libpng-dev libpng-tools libpoco-devlibpococrypto50 libpocodata50 libpocodatamysql50 libpocodataodbc50libpocodatasqlite50 libpocofoundation50 libpocojson50 libpocomongodb50libpoconet50 libpoconetssl50 libpocoredis50 libpocoutil50 libpocoxml50libpocozip50 libpoppler-dev libpoppler-private-dev libpostproc-dev libpq-devlibpq5 libproj-dev libproj12 libprotobuf-dev libprotobuf-lite10libprotoc-dev libprotoc10 libpsm-infinipath1 libpthread-stubs0-devlibpython-all-dev libpython-dev libpython2.7-dev libpython3-devlibpython3.6-dev libqhull-dev libqhull-r7 libqhull7 libqt5concurrent5libqt5designer5 libqt5opengl5 libqt5opengl5-dev libqt5sql5 libqt5sql5-sqlitelibqt5test5 libqwt-headers libqwt-qt5-6 libqwt-qt5-dev librdmacm1libsctp-dev libsctp1 libsdformat6 libsdl2-2.0-0 libsimbody-devlibsimbody3.5v5 libsm-dev libspatialite-dev libspatialite7 libspnav0libsqlite3-dev libssl-dev libsuperlu-dev libsuperlu5 libswresample-devlibswscale-dev libsz2 libtar-dev libtar0 libtbb-dev libtbb2 libtiff-devlibtiff5-dev libtiffxx5 libtinyxml-dev libtinyxml2-6 libtinyxml2-devlibtinyxml2.6.2v5 liburdfdom-dev liburdfdom-headers-dev liburdfdom-modelliburdfdom-model-state liburdfdom-sensor liburdfdom-world liburiparser-devliburiparser1 libusb-1.0-0-dev libusb-1.0-doc libwayland-bin libwayland-devlibwebp-dev libwxbase3.0-0v5 libwxgtk3.0-gtk3-0v5 libx11-dev libx11-doclibx11-xcb-dev libxau-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-devlibxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-shape0-devlibxcb-sync-dev libxcb-xfixes0-dev libxcb1-dev libxdamage-dev libxdmcp-devlibxerces-c-dev libxerces-c3.2 libxext-dev libxfixes-dev libxi-devlibxml2-dev libxmu-dev libxmu-headers libxshmfence-dev libxt-devlibxxf86vm-dev libyaml-cpp-dev libyaml-cpp0.5v5 libyaml-dev libzip-devlibzip4 libzmq3-dev linux-headers-5.4.0-146-genericlinux-hwe-5.4-headers-5.4.0-146 linux-image-5.4.0-146-genericlinux-modules-5.4.0-146-generic linux-modules-extra-5.4.0-146-genericmesa-common-dev mpi-default-bin mpi-default-dev mysql-common odbcinst:i386odbcinst1debian2 odbcinst1debian2:i386 openmpi-bin openmpi-common pkg-configproj-data python-all python-all-dev python-asn1crypto python-cffi-backendpython-crypto python-cryptography python-dbus python-defusedxml python-devpython-empy python-enum34 python-gi python-gnupg python-idnapython-ipaddress python-keyring python-keyrings.alt python-netifacespython-nose python-numpy python-paramiko python-pip-whl python-pyasn1python-pycryptodome python-rospkg python-secretstorage python-wheelpython-wxgtk3.0 python-wxtools python-wxversion python-xdg python2.7-devpython3-catkin-pkg-modules python3-dev python3-pyparsing python3-wheelpython3.6-dev qt5-qmake qt5-qmake-bin qtbase5-dev qtbase5-dev-toolsqtchooser sdformat-sdf ttf-dejavu-core unixodbc-dev uuid-devx11proto-core-dev x11proto-damage-dev x11proto-dev x11proto-fixes-devx11proto-input-dev x11proto-xext-dev x11proto-xf86vidmode-devxorg-sgml-doctools xtrans-dev zlib1g-dev
使用'sudo apt autoremove'来卸载它(它们)。
使用该命令删除之前安装的包,(如果依赖关系冲突,不能被解决,我的情况是给不出依赖问题解决方案,如果不手动解决,无法安装,所以我直接卸载删除之前安装的所有)
sudo apt autoremove
然后使用命令
wget http://fishros.com/install -O fishros && . fishros
使用roscore命令检查是否安装成功。
... logging to /home/sunx/.ros/log/56dfc0a6-ecbd-11ed-98fb-28cdc497963d/roslaunch-sunx-NBLK-WAX9X-15496.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.started roslaunch server http://sunx-NBLK-WAX9X:37869/
ros_comm version 1.14.13SUMMARY
========PARAMETERS* /rosdistro: melodic* /rosversion: 1.14.13NODESauto-starting new master
process[master]: started with pid [15516]
ROS_MASTER_URI=http://sunx-NBLK-WAX9X:11311/setting /run_id to 56dfc0a6-ecbd-11ed-98fb-28cdc497963d
process[rosout-1]: started with pid [15534]
started core service [/rosout]
安装完后还需要初始化下rosdep
wget http://fishros.com/install -O fishros && . fishros
由于前面已经删除了catkin_ws,所以这里需要重新建一个。
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
如果前面没用过catkin build需要先装catkin-tools(sudo apt install python3-catkin-tools)。
然后再
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
Warning, builtin verb aliases at '/home/sunx/.config/catkin/verb_aliases/00-default-aliases.yaml' differ from builtin, overwriting
---------------------------------------------------------
Profile: default
Extending: [env] /opt/ros/melodic
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: [missing] /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.NOTE: Forcing CMake to run for each package.
---------------------------------------------------------
[build] No packages were found in the source space '/home/sunx/catkin_ws/src'
[build] No packages to be built.
[build] Package table is up to date.
Starting >>> catkin_tools_prebuild
Finished <<< catkin_tools_prebuild [ 2.6 seconds ]
[build] Summary: All 1 packages succeeded!
[build] Ignored: None.
[build] Warnings: None.
[build] Abandoned: None.
[build] Failed: None.
[build] Runtime: 2.6 seconds total.
Gazebo
参考链接:Ubuntu18安装Gazebo9
卸载
sudo apt-get remove gazebo*
sudo apt-get remove libgazebo*
sudo apt-get remove ros-melodic-gazebo* #kinetic noetic对应修改
先Git一个XTDrone代码。
git clone https://gitee.com/robin_shaun/XTDrone.git
cd XTDrone
git submodule update --init --recursive
step-by-step安装方式
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
You can check to see if the file was written correctly.
cat /etc/apt/sources.list.d/gazebo-stable.list
setup keys
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
update the debian database
sudo apt-get update
Next install gazebo-9 by:
sudo apt-get install gazebo9
# For developers that work on top of Gazebo, one extra package
sudo apt-get install libgazebo9-dev
检查安装情况:
gazebo
出现错误:
sunx@sunx-NBLK-WAX9X:~$ gazebo
gazebo: symbol lookup error: /usr/lib/x86_64-linux-gnu/libgazebo_common.so.9: undefined symbol: _ZN8ignition10fuel_tools12ClientConfig12SetUserAgentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
这个是有相应的库没有升级
sudo apt upgrade libignition-math2
我们对Gazebo的ROS插件做了修改,因此需要源码编译。安装依赖:
sudo apt-get install ros-melodic-moveit-msgs ros-melodic-object-recognition-msgs ros-melodic-octomap-msgs ros-melodic-camera-info-manager ros-melodic-control-toolbox ros-melodic-polled-camera ros-melodic-controller-manager ros-melodic-transmission-interface ros-melodic-joint-limits-interface
然后编译(如果编译时还缺其他的依赖,同上方法安装),由于需要用到XTDrone的文件,需要先完成XTDrone源码下载。
cd ~/catkin_ws
cp -r ~/XTDrone/sitl_config/gazebo_ros_pkgs src/
catkin build #开发者测试使用catkin_make会出问题,因此建议使用catkin build
错误2
编译的时候的错误:
执行catkin build时报错:
---------------------------------------------------------
Profile: default
Extending: [env] /opt/ros/melodic
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 [ 2.7 seconds ]
Finished <<< gazebo_msgs [ 9.6 seconds ]
Starting >>> gazebo_ros
Finished <<< gazebo_ros [ 21.5 seconds ]
Starting >>> gazebo_plugins
Starting >>> gazebo_ros_control
Finished <<< gazebo_ros_control [ 27.2 seconds ]
_______________________________________________________________________________
Errors << gazebo_plugins:make /home/sunx/catkin_ws/logs/gazebo_plugins/build.make.000.log
c++: internal compiler error: 已杀死 (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
make[2]: *** [CMakeFiles/gazebo_ros_openni_kinect.dir/src/gazebo_ros_openni_kinect.cpp.o] Error 4
make[1]: *** [CMakeFiles/gazebo_ros_openni_kinect.dir/all] Error 2
make[1]: *** 正在等待未完成的任务....
make: *** [all] Error 2
cd /home/sunx/catkin_ws/build/gazebo_plugins; catkin build --get-env gazebo_plugins | catkin env -si /usr/bin/make --jobserver-fds=3,4 -j; cd -...............................................................................
Failed << gazebo_plugins:make [ Exited with code 2 ]
Failed <<< gazebo_plugins [ 2 minutes and 26.4 seconds ]
Abandoned <<< gazebo_ros_pkgs [ Unrelated job failed ]
[build] Summary: 4 of 6 packages succeeded.
[build] Ignored: None.
[build] Warnings: None.
[build] Abandoned: 1 packages were abandoned.
[build] Failed: 1 packages failed.
[build] Runtime: 2 minutes and 57.6 seconds total.
[build] Note: Workspace packages have changed, please re-source setup files to use them.
这个错误是因为系统的交换空间不够,需要临时增加交换空间大小
参考链接make px4_sitl_default gazebo
我执行了命令,释放空间
sudo dd if=/dev/zero of=/swapfile bs=64M count=32 #使用swap创建临时分区
#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=1024MB(这里空间大小也可以根据自己的需要设置)
sudo mkswap /swapfile
sudo chmod 0600 /swapfile
sudo swapon /swapfile
swapoff -a
再次执行catkin build通过编译
---------------------------------------------------------
Profile: default
Extending: [cached] /opt/ros/melodic
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] Package table is up to date.
Starting >>> gazebo_dev
Starting >>> gazebo_msgs
Finished <<< gazebo_dev [ 0.2 seconds ]
Finished <<< gazebo_msgs [ 0.8 seconds ]
Starting >>> gazebo_ros
Finished <<< gazebo_ros [ 0.6 seconds ]
Starting >>> gazebo_plugins
Starting >>> gazebo_ros_control
Finished <<< gazebo_ros_control [ 0.3 seconds ]
Finished <<< gazebo_plugins [ 16.4 seconds ]
Starting >>> gazebo_ros_pkgs
Finished <<< gazebo_ros_pkgs [ 2.7 seconds ]
[build] Summary: All 6 packages succeeded!
[build] Ignored: None.
[build] Warnings: None.
[build] Abandoned: None.
[build] Failed: None.
[build] Runtime: 20.6 seconds total.
[build] Note: Workspace packages have changed, please re-source setup files to use them.
编译成功后执行:
source ~/catkin_ws/devel/setup.bash
rosrun gazebo_ros gazebo
第一次执行会稍微慢一点,其中可以
gedit ~/.bashrc
# 把setup.bash写入到其中
source ~/catkin_ws/devel/setup.bash
# 并保存
这样以后使用就比较方便了.
下载模型,并解压
unzip models.zip
cp -r models ~/.gazebo/models/
MAVROS安装
sudo apt install ros-kinetic-mavros ros-kinetic-mavros-extras # for ros-kinetic
sudo apt install ros-melodic-mavros ros-melodic-mavros-extras # for ros-melodic
wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.shsudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh #这步需要装一段时间
sunx@sunx-NBLK-WAX9X:~$ wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh
--2023-05-07 21:09:40-- https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh
正在解析主机 gitee.com (gitee.com)... 212.64.63.215, 212.64.63.190
正在连接 gitee.com (gitee.com)|212.64.63.215|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 1244 (1.2K) [text/plain]
正在保存至: “install_geographiclib_datasets.sh.1”install_geographicl 100%[===================>] 1.21K --.-KB/s 用时 0s 2023-05-07 21:09:41 (164 MB/s) - 已保存 “install_geographiclib_datasets.sh.1” [1244/1244])sunx@sunx-NBLK-WAX9X:~$ sudo chmod a+x ./install_geographiclib_datasets.sh
sunx@sunx-NBLK-WAX9X:~$ sudo ./install_geographiclib_datasets.sh #这步需要装一段时间
GeographicLib geoids dataset egm96-5 already exists, skipping
GeographicLib gravity dataset egm96 already exists, skipping
GeographicLib magnetic dataset emm2015 already exists, skippings
PX4配置
git clone https://github.com/PX4/PX4-Autopilot.git
mv PX4-Autopilot PX4_Firmware
cd PX4_Firmware
git checkout -b xtdrone/dev v1.11.0-beta1
git submodule update --init --recursive
make px4_sitl_default gazebo
PX4安装可以参考该链接:
完整安装PX4/PX4-Autopilot,无需科学上网
报错:c++: internal compiler error: 已杀死 (program cc1plus)
c++: internal compiler error: 已杀死 (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
[47/100] Building CXX object CMakeFile...dir/src/gazebo_gst_camera_plugin.cpp.o
ninja: build stopped: subcommand failed.
[736/740] Linking CXX executable bin/px4
FAILED: external/Stamp/sitl_gazebo/sitl_gazebo-build
cd /home/sunx/PX4_Firmware/build/px4_sitl_default/build_gazebo && /usr/bin/cmake --build .
ninja: build stopped: subcommand failed.
Makefile:198: recipe for target 'px4_sitl_default' failed
make: *** [px4_sitl_default] Error 1
空间不够大,编译不了
执行命令:
cd PX4_Firmware
make px4_sitl_default gazebo
运行报错:
Traceback (most recent call last):File "/home/sunx/catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/scripts/spawn_model", line 34, in <module>from tf.transformations import quaternion_from_eulerFile "/opt/ros/melodic/lib/python2.7/dist-packages/tf/__init__.py", line 30, in <module>from tf2_ros import TransformException as Exception, ConnectivityException, LookupException, ExtrapolationExceptionFile "/opt/ros/melodic/lib/python2.7/dist-packages/tf2_ros/__init__.py", line 39, in <module>from .buffer_interface import *File "/opt/ros/melodic/lib/python2.7/dist-packages/tf2_ros/buffer_interface.py", line 32, in <module>import roslib; roslib.load_manifest('tf2_ros')File "/opt/ros/melodic/lib/python2.7/dist-packages/roslib/launcher.py", line 64, in load_manifestsys.path = _generate_python_path(package_name, _rospack) + sys.pathFile "/opt/ros/melodic/lib/python2.7/dist-packages/roslib/launcher.py", line 97, in _generate_python_pathm = rospack.get_manifest(pkg)File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 171, in get_manifestreturn self._load_manifest(name)File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 215, in _load_manifestretval = self._manifests[name] = parse_manifest_file(self.get_path(name), self._manifest_name, rospack=self)File "/usr/lib/python2.7/dist-packages/rospkg/manifest.py", line 414, in parse_manifest_file_static_rosdep_view = init_rospack_interface()File "/usr/lib/python2.7/dist-packages/rosdep2/rospack.py", line 60, in init_rospack_interfacelookup = _get_default_RosdepLookup(Options())File "/usr/lib/python2.7/dist-packages/rosdep2/main.py", line 136, in _get_default_RosdepLookupverbose=options.verbose)File "/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py", line 603, in create_defaultsources = load_cached_sources_list(sources_cache_dir=sources_cache_dir, verbose=verbose)File "/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py", line 560, in load_cached_sources_listraise CachePermissionError('Failed to write cache file: ' + str(e))
rosdep2.core.CachePermissionError: Failed to write cache file: [Errno 13] Permission denied: '/home/sunx/.ros/rosdep/sources.cache/index'
[vehicle_spawn_sunx_NBLK_WAX9X_3023_4520051423393195513-5] process has died [pid 3101, exit code 1, cmd /home/sunx/catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/scripts/spawn_model -sdf -file /home/sunx/PX4_Firmware/Tools/sitl_gazebo/models/iris/iris.sdf -model iris -x 0 -y 0 -z 0 -R 0 -P 0 -Y 0 __name:=vehicle_spawn_sunx_NBLK_WAX9X_3023_4520051423393195513 __log:=/home/sunx/.ros/log/b4e3907c-ece2-11ed-b9a4-28cdc497963d/vehicle_spawn_sunx_NBLK_WAX9X_3023_4520051423393195513-5.log].
log file: /home/sunx/.ros/log/b4e3907c-ece2-11ed-b9a4-28cdc497963d/vehicle_spawn_sunx_NBLK_WAX9X_3023_4520051423393195513-5*.log
解决方法:
sudo rosdep fix-permissions
运行命令
rostopic echo /mavros/state
结果:
XTDrone
对XTDrone进行配置,因为之前已经下载了源码
cd XTDrone
git submodule update --init --recursive
cp sensing/gimbal/gazebo_gimbal_controller_plugin.cpp ~/PX4_Firmware/Tools/sitl_gazebo/src/
cp sitl_config/init.d-posix/rcS ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/
cp sitl_config/worlds/* ~/PX4_Firmware/Tools/sitl_gazebo/worlds/
cp -r sitl_config/models/* ~/PX4_Firmware/Tools/sitl_gazebo/models/
cp -r sitl_config/launch/* ~/PX4_Firmware/launch/
cd ~/.gazebo/models/
rm -r stereo_camera/ 3d_lidar/ 3d_gpu_lidar/ hokuyo_lidar/
参考链接:ROS 遇到问题及解决——汇总
XTDorne平台搭建无人机仿真环境时遇到的问题及解决
ubuntu卸载已安装的包
相关文章:
【XTDrone Ubuntu18.04】XTDrone + Ubuntu18.04 + PX4 安装过程
重新配置所有的软件 卸载之前安装的ROS GAZEBO 记得把/home下的.ros和.gazebo也删除,删就删干净 参考链接:ROS的卸载与安装 血泪总结!亲测有效 卸载ROS方法 正式安装 安装依赖 sudo apt install ninja-build exiftool ninja-build protobuf…...
网站使用什么协议比较好
网站协议大多数使用HTTP和HTTPS HTTP协议,超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议。 HTTP是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用的协议&…...
18. 机器学习——集成学习
机器学习面试题汇总与解析——集成学习 本章讲解知识点 什么是集成学习AdaBoost梯度提升树(Gradient Boosting Decision Tree, GBDT)随机森林(Random Forest,简称RF)XGBoostLightGBM本专栏适合于Python已经入门的学生或人士,有一定的编程基础。 本专栏适合于算法工程师、机器…...
SimaPro生命周期评估建模与碳足迹分析流程
SimaPro以系统和透明的方式轻松建模和分析复杂的生命周期,通过确定供应链中每个环节的热点,从原材料的提取到制造,分销,使用和处置,衡量所有生命周期阶段的产品和服务对环境的影响。SimaPro是过去25年评估生命周期的最…...
我的项目分享(不喜勿喷)
我要分享的项目是大喇叭C2C电商平台系统,一个面向移动端的电子商务平台,为个体消费者和商家提供直接交易和沟通的便利,丰富了人们的生活。 主要功能模块: 该项目的主要功能包括: 1. 用户注册功能:使用正则…...
PyTorch:张量与矩阵
PyTorch 是一个基于 Python 的科学计算包,专门针对深度学习研究,提供了丰富的工具和库。在 PyTorch 中,张量(tensor)是深度学习的核心数据结构,它可以看作是可以进行自动微分的多维数组。张量不仅可以代表标…...
传统广电媒体为何选择上云?有何优势?
随着现在互联网和科技的发展,现在更多的行业都搭上了科技这辆快车快速的完成了转型,那么在传统的广电媒资行业他们目前有哪些痛点呢?传统广电媒体转型发展现状是什么?企业如何数字化转型?企业上云的优势有哪些…...
系列十、堆参数调优
一、堆内存调优参数 -Xms堆空间的最小值,默认为物理内存的1/64-Xmx堆空间的最大值,默认为物理内存的1/4-XX:PrintGCDetails输出详细的GC处理日志 二、获取堆内存的默认物理内存 /*** Author : 一叶浮萍归大海* Date: 2023/11/16 14:50* Description: 获…...
sqlite3简单使用
为什么要使用sqlite3? sqlite3轻量简介,无需单独的数据库服务,只需访问磁盘上的.db的文件。在某些情况下很有用。 下面是一些简单的使用代码: import sqlite3 from uuid import uuid1# 连接数据库文件,如果不存在会创建 with…...
实测文心一言4.0,真的比GPT-4毫不逊色吗?
10月17日,李彦宏在百度世界2023上表示。当天,李彦宏以《手把手教你做AI原生应用》为主题发表演讲,发布文心大模型4.0版本。 今天,咱们就开门见山啊。这一回要测一测,昨天才发布的文心一言大模型 4.0。 之所以要测它&…...
损失函数——KL散度(Kullback-Leibler Divergence,KL Divergence)
KL散度(Kullback-Leibler Divergence,简称KL散度)是一种度量两个概率分布之间差异的指标,也被称为相对熵(Relative Entropy)。KL散度被广泛应用于信息论、统计学、机器学习和数据科学等领域。 KL散度衡量的…...
基于springboot的医护人员排班系统 全套代码 全套文档
基于springboot的医护人员排班系统,springboot vue mysql (毕业论文10411字以上,共27页,程序代码,MySQL数据库) 代码下载链接:https://pan.baidu.com/s/177HdCGtTvqiHP4O7qWAgxA?pwd0jlf 提取码:0jlf 【运行环境】 IDEA, JDK1.8, Mysql, Node, Vue …...
【YOLOX简述】
YOLOX的简述 一、 原因1. 背景2. 概念 二、 算法介绍2.1 YOLOX算法结构图:2.2 算法独特点2.3 Focus网络结构2.4 FPN,PAN2.5 BaseConv2.6 SPP2.7 CSPDarknet2.8 YOlO Head 三、预测曲线3.1 曲线 一、 原因 1. 背景 工业的缺陷检测是计算机视觉中不可缺少…...
一文带你深入浅出Web的自动化测试工具Selenium【建议收藏】
文章目录 前言第01节 Selenium概述第02节 安装浏览器驱动(以Google为例)第03节 定位页面元素1. 打开指定页面2. id 定位3. name 定位4. class 定位5. tag 定位6. xpath 定位7. css 选择器8. link 定位9. 示例 有道翻译 第04节 浏览器控制1. 修改浏览器窗…...
Django模版层
解析: forloop内置对象:运行结果解析 counter0: 从0开始计数 counter : 从1开始计数 first: True,判断循环的开始 last : Tues,判断循环的结束模版变量的书写 我们可以在html中编写python代码。 演示: {{ 填写变量 }}{% 填写类的 %}{{ d.0 }} {{ d.1 }…...
同一个IP地址可有不同的写法?
每个人在上网的时候,都会被分配一个IP地址,这是互联网世界中的“身份证号码”。IP地址是以数字形式呈现的,例如192.168.1.1。然而,你是否知道,尽管一个IP地址的数字串唯一标识一个设备,但它可以有不同的写法…...
《Effective C++》条款13
以对象管理资源 有这样一段代码: class A { public:A* create(){...}}; class B :public A { public:A* ptr create();...delete ptr; }; 我们定义了ptr去接收create()函数的返回值,并且在最后进行了回收资源。看似是没问题的。但是实际上有很多隐患&am…...
【入门Flink】- 09Flink水位线Watermark
在窗口的处理过程中,基于数据的时间戳,自定义一个“逻辑时钟”。这个时钟的时间不会自动流逝;它的时间进展,就是靠着新到数据的时间戳来推动的。 什么是水位线 用来衡量事件时间进展的标记,就被称作“水位线”&#x…...
华为交换机的基本配置,看完秒懂
一、 交换机的基本配置 交换机连接方式 本地:计算机COM口/USB口 --> Console线 --> 交换机Console口 远程:Putty、SecureCRT、Xshell远程管理工具 华为VRP网络操作系统 1)华为的视图模式 <Huawei> //用户视图&#x…...
spark与scala的对应版本查看
仓库地址 https://mvnrepository.com/artifact/org.apache.spark/spark-core 总结 spark3.0 以后,不再支持 scala2.11spark3.0 以后,只能用 scala2.12以上...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
