XTDrone配置(个人记录,备忘)

(一)环境:

虚拟机VM16pro,ubuntu20.04(8G  /  >=30G).

基本命令与XTDrone使用文档大致相同,部分操作因版本问题需要更改。

(二)参考教程:仿真平台基础配置(对应PX4 1.13版) · 语雀

        如果觉得XTDrone对你有帮助,就请给它在gitee和github上各点一个star吧。

(三)安装过程:

a,依赖安装。

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
pip3 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml 

这里我用的是pip3而不是原来的pip2.

pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse kconfiglib jsonschema future

我这里没出现教程里的错误,如果你发生问题,请参考教程。

b,ROS安装。

这里我用的鱼香ros的一键安装命令,1000%推荐,特别好用。

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

第一步选择第一个选项:【1】一键安装:ros(……)其余部分有提示,根据提示走就行。

最后用roscore验证是否安装成功。(最后的^[^A请忽略)。

新建工作空间:

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

 我记得catkin init后会报error,但是貌似不用管,后面build就行。

catkin build 

c,Gazebo安装。

我没有修改gazebo的版本,用的是gazebo11,安装ros时一起装了。

XTDrone使用文档该部分还有很多模型,请前往文档下载。

然后是gazebo的依赖项(原文:我们对Gazebo的ROS插件做了修改,因此需要源码编译。
首先装依赖)

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

原文是: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

因为我用的是Ubuntu20.04,所以要把所有melodic改为noetic。

然后克隆并编译Gazebo的插件gazebo_ros_pkgs,放在~/catkin_ws/src下。

cd ~/catkin_ws/src
git clone -b melodic-devel https://github.com/ros-simulation/gazebo_ros_pkgs.git
cd ~/catkin_ws
catkin build

对,这里就是用的melodic。我觉得也应该改为noetic,不过用melodic没bug。经过测试,noetic也可以,但哪个更优无法确定(理论还是用noetic更好,毕竟版本是对应的)。

编译成功后执行如下两条指令,判断gazebo_ros是否安装成功。

roscore 

新建一个终端,Ctrl+Alt+T

source ~/catkin_ws/devel/setup.bash
rosrun gazebo_ros gazebo

d,MAVROS安装。

sudo apt install ros-noetic-mavros ros-noetic-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 

e,PX4配置。

git clone https://github.com/PX4/PX4-Autopilot.git
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

编译完成后,会弹出Gazebo界面,将其关闭即可。

这里不用科学上网,但也需要十几分钟左右(几百M大小,下载速度几百k,┭┮﹏┭┮)。

修改 ~/.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 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

如果出现 RLException: [mavros_posix_sitl.launch] is neither a launch file in package [px4] nor is [px4] a launch file name
The traceback for the exception was written to the log file。

再运行一次

source ~/.bashrc

 f,XTDrone配置

git clone https://gitee.com/robin_shaun/XTDrone.git
cd XTDrone
git checkout 1_13_2
git submodule update --init --recursive
cp sitl_config/init.d-posix/* ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/
cp -r sitl_config/launch/* ~/PX4_Firmware/launch/
cp sitl_config/worlds/* ~/PX4_Firmware/Tools/sitl_gazebo/worlds/
cp sitl_config/gazebo_plugin/gimbal_controller/gazebo_gimbal_controller_plugin.cpp ~/PX4_Firmware/Tools/sitl_gazebo/src
cp sitl_config/gazebo_plugin/gimbal_controller/gazebo_gimbal_controller_plugin.hh ~/PX4_Firmware/Tools/sitl_gazebo/include
cp sitl_config/gazebo_plugin/wind_plugin/gazebo_ros_wind_plugin_xtdrone.cpp ~/PX4_Firmware/Tools/sitl_gazebo/src
cp sitl_config/gazebo_plugin/wind_plugin/gazebo_ros_wind_plugin_xtdrone.h ~/PX4_Firmware/Tools/sitl_gazebo/include
cp sitl_config/CMakeLists.txt ~/PX4_Firmware/Tools/sitl_gazebo
cp -r sitl_config/models/* ~/PX4_Firmware/Tools/sitl_gazebo/models/ 
cd ~/.gazebo/models/
rm -r stereo_camera/ 3d_lidar/ 3d_gpu_lidar/ hokuyo_lidar/

具体命令的含义请参考 XTDrone文档。

重新编译PX4固件。

cd ~/PX4_Firmware
make px4_sitl_default gazebo

(四)用键盘控制无人机飞行。

新建个终端。

第一个运行

cd ~/PX4_Firmware
roslaunch px4 indoor1.launch

第二个运行

cd ~/XTDrone/communication/
python multirotor_communication.py iris 0

第三个运行,操作在这个终端里进行。

cd ~/XTDrone/control/keyboard
python multirotor_keyboard_control.py iris 1 vel

  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值