文章目录
- 卫星导航能给机器人提供什么信息?
- gazebo测试环境
卫星导航能给机器人提供什么信息?
正常工作时,实际上可以提供机器人所需的所有定位信息,包括:
位置
姿态
速度等物理量
但是仅依靠卫星导航还不足以让机器人在室外完成自主导航任务,主要原因有一下几点:
GNSS提供的定位精度不能满足要求,GNSS分多个细分种类,有些GNSS定位方法可以提供很高的精度,但要求物体必须静止一段时间(通常十分钟以上);也有的方法可以提供较好的动态物体定位,但需要事先架设一个或多个基站。
GNSS的定位频率不能满足要求,一般在5-10hz
GNSS定位可用性存在问题,不能够全天候、全场地使用,稳定性与场景、结构、物体的遮挡关系,甚至和天气有关。
GNSS定位原理:
GNSS通过测量自身与地球周围各卫星的距离来确定自身位置,与卫星的距离主要通过测量时间间隔来确定。一个卫星信号从卫星上发出时,带有一个发送时间,而GNSS接收机接收到它时,有一个接收时间,通过比较时间间隔,就能估算各卫星离我们的距离。GNSS本质上可以看成一种高精度的授时系统。
GNSS定位技术分为以下两种:
-
单点GNSS定位,即传统的米级精度卫星定位。这种定位方式价格低廉,应用广泛。大多数手机、车机等终端都具备单点卫星定位能力。在普通车辆的道路级导航中,单点定位的精度足以让驾驶员辨认出车辆位于哪条道路,但在多条道路并排时,它的精度不足以区分车辆在高速路上还是辅路上。
-
RTK定位。由于卫星信号在传输中可能产生误差,发展了差分定位技术,即通过地面上的一个已知精确位置的基站与车辆通信,校正车辆卫星接收机的信号。差分定位又进一步分为位置、伪距和载波相位差分定位。
gazebo测试环境
添加一个GPS模块
<xacro:default_gps namespace="${namespace}" parent_link="${namespace}/base_link" />
默认的GPS 用的 rotors_simulator的 gps 插件 ,可以设置水平、垂直位置精度,水平垂直速度精度
<xacro:macro name="default_gps" params="namespace parent_link"><!-- Default GPS. --><xacro:gps_plugin_macronamespace="${namespace}"gps_suffix=""parent_link="${parent_link}"gps_topic="gps"ground_speed_topic="ground_speed"mass_gps_sensor="0.015"horizontal_pos_std_dev="3.0"vertical_pos_std_dev="6.0"horizontal_vel_std_dev="0.1"vertical_vel_std_dev="0.1"><inertia ixx="0.00001" ixy="0.0" ixz="0.0" iyy="0.00001" iyz="0.0" izz="0.00001" /><origin xyz="0 0 0" rpy="0 0 0" /></xacro:gps_plugin_macro></xacro:macro>
设置好后,启动gazebo
打印gps发出的数据如下