zhy@zhy-Inspiron-7460:~/catkin_map$ rostopic list
/RosAria/battery_recharge_state
/RosAria/battery_state_of_charge
/RosAria/battery_voltage
/RosAria/bumper_state
/RosAria/cmd_vel
/RosAria/motors_state
/RosAria/parameter_descriptions
/RosAria/parameter_updates
/RosAria/pose
/RosAria/sonar
/RosAria/sonar_pointcloud2
/clicked_point
/initialpose
/lichao_goal_marker
/lichao_goal_marker_array
/map
/map_metadata
/map_updates
/move_base_simple/goal
/rosout
/rosout_agg
/scan
/slam_gmapping/entropy
/tf
/tf_static
zhy@zhy-Inspiron-7460:~/catkin_map$ rostopic info /RosAria/pose
Type: nav_msgs/Odometry
Publishers:
* /RosAria (http://zhy-Inspiron-7460:35755/)
Subscribers: None
zhy@zhy-Inspiron-7460:~/catkin_map$ rosmsg show nav_msgs/Odometry
std_msgs/Header header
uint32 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
测试代码c++
#include <ros/ros.h>
#include <tf/transform_broadcaster.h>
#include <nav_msgs/Odometry.h>
#include "std_msgs/String.h"
#include <string>
#include <sstream>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
double point_x,point_y,point_z;
//数据类型前面要加const,否则会报错;
void poseCallback(const nav_msgs::Odometry::ConstPtr& msg)
{
geometry_msgs::Point p;
p.x=msg->pose.pose.position.x;
p.y=msg->pose.pose.position.y;
p.z=msg->pose.pose.position.z;
point_x=p.x;
point_y=p.y;
point_z=p.z;
cout<<"X :"<<point_x<<'\t'<<"Y : "<<point_y<<'\t'<<"Z : "<<point_z<< endl;
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "pose");
ros::NodeHandle n;
ros::Subscriber sub=n.subscribe("/RosAria/pose",50,poseCallback);
ros::spin();
return 0;
}
打印出来的坐标不是 0,0,0;
如果是odom坐标,一开始的坐标因该是0,0,0,初步推断gmapping里面的poes是修正过后的世界坐标系的坐标点.