week45 无人机px4 Firmware仿真环境搭建

我们来看下Ubuntu各版本对应的gazebo关系,安装时要注意
各版本的对应关系如下:请注意ubuntu18对应melodic,ubuntu16对应kinetic
Ubuntu 14.04 Trusty Tahr - ROS Indigo Igloo - Gazebo 2.X 2014-2019
Ubuntu 16.04 Xenial Xerus - ROS Kinetic Kame - Gazebo 7.X 2016-2021
Ubuntu 18.04 Bionic Beaver - ROS Melodic Morenia - Gazebo 9.X 2018-2023
我采用的是Ubuntu18.04 安装ROS melodic
要先换源,包括source.list和source.list.d文件夹下面的ros-latest.list(没有就创建)
实测发现,Ubuntu的源用清华的,ROS源用中科大的,综合效果最好
换完源以后安装ROS,直接装的是desktop-full,这样自动装了gazebo9

sudo apt-get install ros-melodic-desktop-full

ROS安装完毕,安装mavros,直接用二进制安装,最方便

sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo chmod a+x ./install_geographiclib_datasets.sh
./install_geographiclib_datasets.sh ##此时执行速度很慢,耐心等待完成

mavros负责master和px4之间的通信,接下来安装编译px4,这是最慢也是最容易出错的一步,一定要确保网络良好,第一步一般要花一个多小时、后面稍微快一点

git clone https://github.com/PX4/Firmware.git
cd Firmware
git submodule update --init --recursive

这时px4就安装好了,这个文件夹叫Firmware,但实际上编译以后会生成一个可执行文件叫px4,所以都是roslaunch px4 什么什么
接下来,修改环境变量

export FIRMWARE_DIR={path_to_Firmware} #path_to_Firmware是你的firmware路径,如/home/zhanqx/PX4/Firmware
source $FIRMWARE_DIR/Tools/setup_gazebo.bash $FIRMWARE_DIR $FIRMWARE_DIR/build/posix_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$FIRMWARE_DIR
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$FIRMWARE_DIR/Tools/sitl_gazebo

环境变量修改好了,source ~/.bashrc以后通过gazebo看看可不可以启动

cd Firmware
make posix_sitl_default gazebo

第一行会弹出此时选择的px4的版本,建议用1.8.0,在前一个虚拟机上试过1.9.0但是跑不起来
如果成功出现gazebo,里面看上去是荒芜的一望无垠的世界停着一架小飞机,那么px4的仿真环境就安装完成了,可以关掉,然后roslaunch启动

#本机
roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:14557"
roslaunch px4 posix_sitl.launch

在rostopic list里看到有个/mavros/state 用echo查看 connect为true 则mavros和px4通信成功


sudo apt-get install ros-kinetic-geographic-msgs
sudo apt install libv4l-dev
sudo apt-get install ros-kinetic-rosserial-python
sudo chmod 777 -R /src

若添加权限以后仍报错,则考虑修改Cmakelist添加include包含库
打开CMakeList文件看看include_directories列表
include_directories(
include
../riki_msgs
${catkin_INCLUDE_DIRS}
)




将riki_base.h中的分号位置做如下修改


sudo apt-get install libusb-dev
sudo apt-get install libspnav-dev
sudo apt-get install libbluetooth-dev
sudo apt-get install libcwiid-dev

这个是别人的报错,他的git网络配置出现问题,显示git拒绝连接
使用git config --global设置用户名和邮件

git config --global user.name "bryan sun"
git config --global user.email "[email protected]"
注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

使用-l查看配置 --edit编辑配置

git config -l
git config --global --edit
示例配置

你可能感兴趣的:(week45 无人机px4 Firmware仿真环境搭建)