PX4的软件仿真(SITL)环境配置过程

官方地址:https://dev.px4.io/en/simulation/gazebo.html

框架图,各个UDP端口一目了然,仅有连接到模拟器的udp端口是随机的,从下图的启动界面可以看出,模拟器在等待14560端口的初始化数据,onboard运行在14540端口,和GSC通讯端口是14550

下面是编译不同飞机模型的一些命令:

cd ~/src/Firmware

#Quadrotor
make posix_sitl_default gazebo  

#Quadrotor with Optical Flow
make posix gazebo_iris_opt_flow

#3DR Solo
make posix gazebo_solo

#Standard Plane
make posix gazebo_plane

#Standard VTOL
make posix_sitl_default gazebo_standard_vtol

#Tailsitter VTOL
make posix_sitl_default gazebo_tailsitter

#Ackerman vehicle (UGV/Rover)
make posix gazebo_rover

#HippoCampus TUHH (UUV: Unmanned Underwater Vehicle)
make posix_sitl_default gazebo_hippocampus

#起飞

pxh> commander takeoff


#  The default takeoff location in SITL Gazebo can be overridden using environment variables.
#  The variables to set are: PX4_HOME_LAT, PX4_HOME_LON, and PX4_HOME_ALT.

export PX4_HOME_LAT=28.452386
export PX4_HOME_LON=-13.867138
export PX4_HOME_ALT=28.5
make posix gazebo

#gazebo可以模拟GPS噪声
It is enabled by default in many vehicle SDF files: solo.sdf, iris.sdf, standard_vtol.sdf, delta_wing.sdf, plane.sdf, typhoon_h480, tailsitter.sdf.
To enable/disable GPS noise:

Tools/sitl_gazebo/models/iris/iris.sdf

Build any gazebo target in order to generate SDF files (for all vehicles). For example:  make posix_sitl_default gazebo_iris

<plugin name='gps_plugin' filename='libgazebo_gps_plugin.so'>
  <robotNamespace/>
  <gpsNoise>true</gpsNoise>
</plugin>

软件仿真的思路:控制器从仿真模拟器获取传感器数据,控制器运算过后,把电机的转速、pwm反馈给模拟器。
UDP PORT: 
14550  API/offboard

14540  GCS

启动mavros节点

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

gazebo可以直接把传感器(雷达......)的信息发送到ROS的topic,所以gazobo在启动的时候需要启动一些ros包

echo $ROS_PACKAGE_PATH    //查看ROS包的路径信息


运行仿真前需要吧仿真包的路径信息导入:

source ~/catkin_ws/devel/setup.bash    // (optional)这是自己创建的工作目录的ROS包

gazebo的插件、模型路径信息也需要添加到系统环境变量:

source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/posix_sitl_default
$(pwd) $(pwd)/build/posix_sitl_default  分别是给到脚本文件的2个参数(目录信息)

然后更新一下ROS包的路径

pwd=~/src/Firmware,在源码根目录执行以下命令
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/sitl_gazebo

启动PX4软件仿真

roslaunch px4 posix_sitl.launch


 

猜你喜欢

转载自blog.csdn.net/sinat_38245860/article/details/83375224