一、相关常识1.NMEANMEA是National Marine Electronics Association 的缩写,是美国国家陆地电子协会的简称,现在是GPS导航装备同一的标准协议。 2.UTM坐标系Universal Transverse Mercator Grid System,通用横墨卡托网格系统是一种平面直角坐标,这类坐标格网系统及其所根据的投影已经普遍用于地形图,作为卫星影象和自然资本数据库的参考格网以及要求切确定位的其他利用。 例:12U 358657mE 5885532mN
二、代码实现本文代码首要依靠于ROS相关库实现,源代码见:https://github.com/Abin1258/gps_to_odom.git 1.输入:GPS数据几种常见的数据格式: 1)接收机串口输出:GPFPD等 2)ROS消息格式:nmea_msgs::Sentence :带消息头的gps裸数据 std_msgs/Header headeruint32 seq time stamp string frame_id string sentence 3)ROS消息格式:sensor_msgs::NavSatFix : 剖析出来的gps范例传感器数据格式 uint8 COVARIANCE_TYPE_UNKNOWN=0uint8 COVARIANCE_TYPE_APPROXIMATED=1 uint8 COVARIANCE_TYPE_DIAGONAL_KNOWN=2 uint8 COVARIANCE_TYPE_KNOWN=3 std_msgs/Header header uint32 seq time stamp string frame_id sensor_msgs/NavSatStatus status int8 STATUS_NO_FIX=-1 int8 STATUS_FIX=0 int8 STATUS_SBAS_FIX=1 int8 STATUS_GBAS_FIX=2 uint16 SERVICE_GPS=1 uint16 SERVICE_GLONASS=2 uint16 SERVICE_COMPASS=4 uint16 SERVICE_GALILEO=8 int8 status uint16 service float64 latitude float64 longitude float64 altitude float64[9] position_covariance uint8 position_covariance_type 4)ROS消息格式:geographic_msgs::GeoPointStamped : 带消息头的三维点的数据格式 std_msgs/Header headeruint32 seq time stamp string frame_id geographic_msgs/GeoPoint position float64 latitude float64 longitude float64 altitude 本文彩用的是经过GPS驱动剖析后的数据,已经将原始数据封装为rostopic /gps/fix,GPS驱动可以见本链接:https://github.com/Abin1258/gps_gpfpd_drive.git 所以接管GPS数据的具体代码采用的sensor_msgs::NavSatFix数据格式,代码以下: void GpsOdom::NavsatCallback(const sensor_msgs::NavSatFixConstPtr& navsat_msg) {geographic_msgs::GeoPointStampedPtr gps_msg(new geographic_msgs::GeoPointStamped()); gps_msg->header = navsat_msg->header; gps_msg->position.latitude = navsat_msg->latitude; gps_msg->position.longitude = navsat_msg->longitude; gps_msg->position.altitude = navsat_msg->altitude; GpsCallback(gps_msg); } 2.输出:里程计Odomerty在ROS消息中的格式为: std_msgs/Header headeruint32 seq time stamp string frame_id string child_frame_id geometry_msgs/PoseWithCovariance pose geometry_msgs/Pose pose geometry_msgs/Point position float64 x float64 y float64 z geometry_msgs/Quaternion orientation float64 x float64 y float64 z float64 w float64[36] covariance geometry_msgs/TwistWithCovariance twist geometry_msgs/Twist twist geometry_msgs/Vector3 linear float64 x float64 y float64 z geometry_msgs/Vector3 angular float64 x float64 y float64 z float64[36] covariance 3.处置进程由于GPS间接输出的就是经纬度和高度,对应与位置中的XYZ,所以间接将GPS数据转化为UTM坐标系下并已第一帧数据作为起点即可,代码以下: gps_msg->header.stamp += ros::Duration(0.0);geographic_msgs::GeoPoint gpspoint; gpspoint.altitude = gps_msg->position.altitude; gpspoint.latitude = gps_msg->position.latitude; gpspoint.longitude = gps_msg->position.longitude; geodesy::UTMPoint utm; geodesy::fromMsg(gpspoint, utm); Eigen::Vector3d xyz(utm.easting, utm.northing, utm.altitude); if(!zero_utm) { zero_utm = xyz; } xyz -= (*zero_utm); odom.header.seq = gps_msg->header.seq; odom.header.stamp = gps_msg->header.stamp; odom.pose.pose.position.x = xyz(0); odom.pose.pose.position.y = xyz(1); odom.pose.pose.position.z = xyz(2); odompub.publish(odom); 4.实现结果在操场收集了一圈五百米左右的数据,几近无漂移,坦荡地带RTK根基就充足定位了,可是缺少姿势角和速度信息。 |
11月29日,华为系列手机把鸿蒙系统更新到最新版本后,取消了“辅助定位设置”的选项,
编辑导语:有些“定位方法论”充分利用了读者的“简化冲动”,可能我们在市面上接受到
定位二字,不断出现在各类圈层的朋友口中。可这个词到底是什么意思,或许没有太多人会
首先,看到这个标题,很多人可能没由的一楞,Ip地址?地位?Ip地址怎么定位?是的,没
工具/原料:1、Fake Location APPFake Location APP功能介绍:1.以ROOT环境运行,不易
某东有时候会联合发些地域性的消费券,像什么“云南消费券”、“东莞消费券”,app定
今天我们所处的移动互联网时代,手机成了每个人的生活标配。这些手机里,安装了形形色
果然是亲女儿,每次复刻的武器池都香到让人流口水。有点小失望,绫华皮肤竟然是四
定位凉凉了?定位为什么会定死?作者/李兴随着当今营销生态的变化,品牌呈现出全新的
IT之家 9 月 30 日消息,近日,百度地图发布了北斗卫星导航系统应用的最新进展,北斗
常有不少杠精说位置定位类APP打着亲情的招牌,实际上在侵犯个人隐私。但是,工具本身
你相信吗?将手机关机拔卡之后依旧可以定位,它就是一个隐形的GPS定位工具,放在以前
楚天都市报11月14日讯(记者 周丹)近日,“有人利用软件通过手机非法定位他人位置”
生活中,有很多时候都会用到手机定位找人这种找人的方法,那么,手机号怎么定位对方在
近日,有媒体报道称,华为在会员服务中心中新增了一项全新的功能——“高精度定位”,
在日常生活中,相信有不少的朋友时时刻刻想要知道自己的另一半去了哪里?可是,自己又
产品定位,归根到底是用户定位、场景定位、价值定位、价格定位4大块。想要一款产品最
为了更好地经营品牌,以及更好地瞄准目标群体、向用户传递品牌价值,品牌需要做好自身
在日常生活中,由于手机的功能越来越强大,所以大部分人手上都会有智能手机。那么你用
编辑导语:前几天,华与华董事长华杉围绕《定位》这本书,提出了对定位理论的5个质疑
声明:本站内容由网友分享或转载自互联网公开发布的内容,如有侵权请反馈到邮箱 1415941@qq.com,我们会在3个工作日内删除,加急删除请添加站长微信:15314649589
Copyright @ 2022-2044 杭州共生网络 www.gongshengyun.cn Powered by Discuz!