PX4开发指南-13.11.室内 / 虚拟 GPS
FAKE GPS
此页面显示如何使用mocap数据来虚拟gps。
- 设置如下:需要一台安装了所需的软件+ ROS + vicon_bridge的A计算机,并通过网络将此数据发送到B计算机上。 在B计算机上,同时安装ROS + MAVROS。 在MAVROS中有一个脚本,用于模拟mocap数据中的gps数据。 然后在B计算机中将数据通过3DR radiometry发送到pixhawk。 注意:A计算机和B计算机可以是同一台计算机。
Prerequisites
MOCAP system (in this example, VICON is used)
Computer with ROS, MAVROS and Vicon_bridge
3DR radiometry set
步骤
Step 1
确保A计算机与B计算机位于同一个网络中(可能需要无线网卡)。 在A计算机上创建两个文件:“
launch_fake_gps.sh
”和“launch_fake_gps_distorted.sh
”将以下两行添加到“
launch_fake_gps.sh
”文件中,并用B计算机的IP地址替换xxx.xxx.x.xxx(您可以通过在终端中键入“ifconfig
”获取IP地址)。
export ROS_MASTER_URI=http://xxx.xxx.x.xxx:11311
roslaunch vicon_bridge vicon.launch $@
- 接下来,将以下两行添加到“
launch_fake_gps_distorted.sh
”文件中,并将B计算机的IP地址替换xxx.xxx.x.xxx。
export ROS_MASTER_URI=http://xxx.xxx.x.xxx:11311
rosrun vicon_bridge tf_distort $@
- Put markers on your drone and create a model in the MOCAP system (later referred to as yourModelName).
Step 2
- 在B计算机运行
$ roscore
Step 3
- 在A计算机打开两个新的终端,
分别运行
以下代码
$ sh launch_fake_gps.sh
$ sh launch_fake_gps_distorted.sh
Step 4
- 在B计算机运行
$ rosrun rqt_reconfigure rqt_reconfigure
此时应该打开一个新窗口,您可以在其中选择“tf_distort”。 使用此工具,您可以编辑参数以修改MOCAP数据。
模拟我们需要使用的GPS:
publish rate = 5.0Hz
tf_frame_in = vicon/yourModelName/yourModelName (e.g. vicon/DJI_450/DJI_450)
delay = 200ms
sigma_xy = 0.05m
sigma_z = 0.05m
Step 5
将您的pixhawk连接到QGroundControl中。 打开
PARAMETERS
->System
和 将SYS_COMPANION
设置为257600
(启用 magic 模式)。接下来,打开
PARAMETERS
->MAVLink
并将MAV_USEHILGPS
设置为1
(启用HIL GPS)。打开
PARAMETERS
->Attitude Q estimator
和将ATT_EXT_HDG_M
设置为2
(use heading from motion capture)。最后, 打开
PARAMETERS
->Position Estimator INAV
和 将INAV_DISAB_MOCAP
设置为1
(disable mocap estimation)。
注意:如果找不到上述参数,请查看
PARAMETERS
->default Group
。
Step 6
在目录打开文件 "
mocap_fake_gps.cpp
"。其路径为:yourCatkinWS/src/mavros/mavros_extras/src/plugins/mocap_fake_gps.cpp
。Replace DJI_450/DJI_450 in
mocap_tf_sub = mp_nh.subscribe("/vicon/DJI_450/DJI_450_drop", 1, &MocapFakeGPSPlugin::mocap_tf_cb, this);
- with your model name (e.g. /vicon/yourModelName/yourModelname_drop). The "_drop" will be explained in the next step.
Step 7
在step 5中, 启用了heading from motion capture 。因此,pixhawk不使用原来的方向设置,而是采用运动捕捉系统的方式。 因为3DR辐射测量设备不够快,我们必须限制我们的MOCAP数据的速率。 故执行以下操作
$ rosrun topic_tools drop /vicon/yourModelName/yourModelName 9 10
- 这意味着,从
/vicon/yourModelName/yourModelName
的话题中,百分之九十的信息将被删除并发布在/vicon/yourModelName/yourModelName_drop
话题下。
Step 8
- Connect the 3DR radiometry with the pixhawk TELEM2 and the counter part with your computer (USB).
Step 9
- 打开catkin_ws工作空间,执行以下命令
$ catkin build
- 接着执行
$ roslaunch mavros px4.launch fcu_url:=/dev/ttyUSB0:57600
- 如果你的pixhawk的绿色灯闪烁,说明已获取到GPS数据。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号