重要提示
鱼香小铺正式开业,最低499可入手一台能建图会导航的移动机器人,淘宝搜店:鱼香ROS 或点击链接查看。
社区建设靠大家,欢迎参与社区建设赞助计划
提问前必看的发帖注意事项—— 提问的智慧
社区使用指南—如何添加标签修改密码
社区建设靠大家,欢迎参与社区建设赞助计划
提问前必看的发帖注意事项—— 提问的智慧
社区使用指南—如何添加标签修改密码
已解决 rviz显示marker不能实时更新
-
各位大佬,我想在保存的pcd地图里面用marker显示机器人的位置,我订阅了机器人的坐标形象,但是机器人移动位置变化后,marker位置不变,一直在初始位置;marker不能随机器人移动而更新,希望有了解的大佬帮忙解答一下。
#include <ros/ros.h> #include <visualization_msgs/Marker.h> #include <nav_msgs/Odometry.h> #include <geometry_msgs/Point.h> double temp_x,temp_y,temp_z; double temp_or_x,temp_or_y,temp_or_z,temp_or_w; void record_point(const nav_msgs::Odometry::ConstPtr& odom) { temp_x = odom->pose.pose.position.x; temp_y = odom->pose.pose.position.y; temp_z = odom->pose.pose.position.z; temp_or_w = odom->pose.pose.orientation.w; temp_or_x = odom->pose.pose.orientation.x; temp_or_y = odom->pose.pose.orientation.y; temp_or_z = odom->pose.pose.orientation.z; } int main( int argc, char** argv ) { ros::init(argc, argv, "points_marker"); ros::NodeHandle n; ros::Publisher marker_pub = n.advertise<visualization_msgs::Marker>("/robot_marker", 10); ros::Subscriber odom_pose = n.subscribe<nav_msgs::Odometry>("/aft_mapped_to_init",100,record_point); visualization_msgs::Marker points_marker; ros::Rate r(30); while (ros::ok()) { points_marker.header.frame_id ="/camera_init"; points_marker.header.stamp =ros::Time::now(); points_marker.ns ="points_marker"; points_marker.action =visualization_msgs::Marker::ADD; points_marker.id = 0; points_marker.type = visualization_msgs::Marker::POINTS; geometry_msgs::Point obj; obj.x = temp_x; obj.y = temp_y; obj.z = temp_z; points_marker.pose.orientation.w = 1; // points_marker markers use x and y scale for width/height respectively points_marker.scale.x = 1; points_marker.scale.y = 1; points_marker.scale.z = 1; // points_marker are green points_marker.color.r = 0.0f; points_marker.color.g = 1.0f; points_marker.color.b = 0.0f; points_marker.color.a = 1.0f; points_marker.points.push_back(obj); points_marker.lifetime = ros::Duration(0.1); // 生命周期 marker_pub.publish(points_marker); r.sleep(); } } 
-
@小丑汪 图片没有传上去
-
@小丑汪 先用rostopic echo 对应话题,看看有没有数据先,毕竟rviz也只是将数据显示出来,这样就可以诊断出是哪边的问题了。
-
@小鱼 您好,我看了订阅的/aft_mapped_to_init和marker的话题/robot_marker,/aft_mapped_to_init数据是在更新的,/robot_marker数据一直没变。
-
@小丑汪 在 rviz显示marker不能实时更新 中说:
void record_point(const nav_msgs::Odometry::ConstPtr& odom)
{问题大概就是发布的问题了,确认下这个回调函数是否进入了,可以加一些打印进去
-
@小鱼 您好,我在回调函数和下面的ros::ok里面都打印输出了,回调函数没有调用,没有打印输出。我看了订阅和回调写的好像没什么问题
-
@小丑汪 没被回调肯定是哪里有问题,比如话题有没有搞错,仔细检查下,问题快找出来了
-
@小鱼 抱歉,我的。我没写ros::spinOnce()
-
@小丑汪 好的