从零开始的XTdrone配置(亲测100%可行)

系统:Ubuntu18.04

进入xtdrone的yuque文档,参考第一个仿真平台基础配置(不是第二个对应px4的那个)

一:依赖安装

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

此处不会报错,要是定位不到请添加其他地方的源

pip2 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml 

此处会有一处报错

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-1_Rz8c/cerberus/

显而易见,使用pip2安装cerberus失败,我们使用pip3安装

所有pip/pip2不行的,都换成pip3安装即可

pip3 install cerberus

安装刚刚剩下的

pip2 install pyulog==0.7.0 numpy toml pyquaternion empy pyyaml 

进一步配置依赖

pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse

二:ROS-melodic安装

小鱼一键安装

wget http://fishros.com/install -O fishros && . fishros

1 选择melodic 3:rosdep 4:ros环境都是需要安装的

检验ros是否安装完成

roscore

三:工作环境配置

安装cakin-tools

sudo apt install python3-catkin-tools

建立工作环境

mkdir -p ~/catkin_ws/src
mkdir -p ~/catkin_ws/scripts
cd catkin_ws && catkin init #
catkin build 

倘若后续有cakin make指令,一律换成cakin build,因为我们只需要编译单个功能包

倘若你在此处报错(一般不会),请把catkin_ws中的build文件夹下所有文件全部删去,再次回到catkin_ws下重新build,不行多尝试几次,应该没问题

四:gazebo安装

我们不使用gazebo9,只用gazebo9,因为px4 部分固件在gazebo上不适用

具体安装按照提供的pdf文件:

为了节省时间,代码如下,请一步一步执行,不要全部复制一块执行,所有的都是这样

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
cat /etc/apt/sources.list.d/gazebo-stable.list
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install gazebo9
sudo apt-get install libgazebo9-dev
sudo apt upgrade

验证是否安装成功

gazebo

之后需要补充依赖:

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的配置

可以先下载gazebo的世界模型,防止后续加载世界花费大量时间,下载请在XTdrone的仿真平台基础配置的gazebo配置中有下载,点击即可下载,该附件解压缩后放在~/.gazebo

五:XTDrone配置

先安装git

sudo apt install git

接着

cd ~
git clone https://gitee.com/robin_shaun/XTDrone.git
cd XTDrone
git submodule update --init --recursive

Xtdrone的后续配置还需要px4,所以我们暂且只需要他的文件,不对其进行编译

ok,此时我们需要完成gazebo剩下的编译

cd ~/catkin_ws
cp -r ~/XTDrone/sitl_config/gazebo_ros_pkgs src/
sudo pip uninstall em
sudo pip uninstall empy
sudo pip install empy==3.3.2
catkin build

若没有3,4,5步骤,build会报错,原因是empy或者em的版本过高导致的

此时XTdrone还未配置完成,请完成七:PX4配置 后,再回来编译

无论是catkin build还是make ,若是其失败,请把其对应的主文件夹下的build文件夹中的东西删去,这可能是你build/make失败的原因,别忘了清空回收站,不然会在后续的配置中埋下伏笔

六:MAVROS安装

同样是一步一步执行

sudo apt install ros-melodic-mavros ros-melodic-mavros-extras 		
wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh
sudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh 

这个同样需要一段时间,请耐心等待

七:PX4配置

git clone仓库可能会失去连接,可以将github.com换成githubfast.com(如下)

cd ~
git clone https://githubfast.com/PX4/PX4-Autopilot.git
mv PX4-Autopilot PX4_Firmware
cd PX4_Firmware
git checkout -b xtdrone/dev v1.11.0-beta1

接下来的这一步非常重要,配置的80%都卡在了这里

进入主目录下,按住ctrl+h,显示隐藏文件,右上角进行搜索所有 .gitmodules,应该会有两个,请选择PX4目录下的那个.gitmodules文件,打开,点击右上角三条横线的东西选择find and replace,将所有的github.com代替为githubfast.com,更改完毕后,save(保存)

接着

git submodule sync
git submodule update --init --recursive

此处需要花费很长时间,根据每个人的网络而定,热点应该最快,这样应该就不会报错了,倘若报错 ,大概率远程连接失败,尝试多执行几次指令3,应该没问题

直到再次输入指令3后,终端无返回值为止,才算成功

开始编译:

先装几个工具

pip3 install kconfiglib
pip3 install --user jsonschema
pip3 install future
pip3 install ninja
pip3 uninstall empy
pip3 install empy==3.3.2

make px4_sitl_default gazebo

这一步我也出了各种各样的错

包括,不限于

ninja: build stopped: subcommand failed. Makefile:225: recipe for target

Cannot find source file: heatshrink/heatshrink_decoder.c - Search‘

...

这一步是最重要的一步,也是报错最难解决的一步,虽然我目前也不清楚原理,但是这样的操作似乎可行

make px4_sitl_default
make px4_sitl_default gazebo

通过将这两句分开执行,应该就能成功,如果再次执行指令2仍不报错,说明已经make完成了

至此,px4已经成功编译完成

修改环境变量

cd ~
gedit .bashrc

在最后加入

source ~/catkin_ws/devel/setup.bash
source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo

保存,退出,更新环境变量

source ~/.bashrc

此处PX4尚未完成配置,有很多launch文件都没有,进行xtdrone的配置:

八:Xtdrone的配置

cd ~
cd XTDrone
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/

手动把XTDrone下的stereo_camera/ 3d_lidar/ 3d_gpu_lidar/ hokuyo_lidar/这几个文件夹下的东西删掉

接着

cd ~/PX4_Firmware
make px4_sitl_default gazebo

只要按照我的步骤,一步一步进行,我相信你的XTDrone配置100%成功!

__________________________________________________________________

倘若你遇到了这个问题ERROR [px4] Startup script returned with return value: 256,我的建议是将gazebo,px4,xtdrone全部删除重新安装

『gazebo的卸载

sudo apt-get remove gazebo* 
sudo apt-get remove libgazebo*
sudo apt-get remove ros-melodic-gazebo*

在按照我上面提到的安装gazebo即可

启动gazebo

gazebo

如过没有反映

请运行以下指令,看是否有gz开头的进程,如果有,记住他的名称

sudo killall 名称

再次运行gazebo,应该可以正常启动了

px4的卸载与安装

直接将PX4_Firmfare这个文件夹删去即可

安装同前面的步骤,但是在修改.gitmodules文件这一步,一点要等待所有的.gitmodules等文件显示出来,再进行修改,最好在整个计算机内搜索.gitmodules文件(在某个文件夹下搜索会局限于该文件夹下)

当然,如果无论怎样都无法同步子模块,你可以手动将所需的文件git下来放到所要的文件夹下

我的方法是不断尝试,如果长时间clone不下来,终止进程,再次重复指令,重复了5次左右,我就ok了

验证是否成功便是再次输入该指令git submodule update --init --recursive

命令行无返回值

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值