鱼香社区

    • 登录
    • 搜索
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组

    重要提示

    鱼香小铺正式开业,最低499可入手一台能建图会导航的移动机器人,淘宝搜店:鱼香ROS 或点击链接查看。
    社区建设靠大家,欢迎参与社区建设赞助计划

    提问前必看的发帖注意事项—— 提问的智慧
    社区使用指南—如何添加标签修改密码

    已解决 rviz显示marker不能实时更新

    综合问题
    rviz marker
    2
    9
    119
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 小丑汪
      WOW995 最后由 编辑

      各位大佬,我想在保存的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();
      
        }
      }
      ![20220718.jpg](/forum/assets/uploads/files/1658153571513-20220718-resized.jpg)
      小丑汪 小鱼 3 条回复 最后回复 回复 引用 0
      • 小丑汪
        WOW995 @小丑汪 最后由 编辑

        @小丑汪 图片没有传上去
        20220718.jpg

        1 条回复 最后回复 回复 引用 0
        • 小鱼
          小鱼 技术大佬 @小丑汪 最后由 编辑

          @小丑汪 先用rostopic echo 对应话题,看看有没有数据先,毕竟rviz也只是将数据显示出来,这样就可以诊断出是哪边的问题了。

          社区建设靠大家,想要更及时详细回答,欢迎参与社区赞助建设计划:https://fishros.org.cn/forum/topic/741

          小丑汪 1 条回复 最后回复 回复 引用 0
          • 小丑汪
            WOW995 @小鱼 最后由 编辑

            @小鱼 您好,我看了订阅的/aft_mapped_to_init和marker的话题/robot_marker,/aft_mapped_to_init数据是在更新的,/robot_marker数据一直没变。
            topic.jpg
            sendpix1.jpg

            1 条回复 最后回复 回复 引用 0
            • 小鱼
              小鱼 技术大佬 @小丑汪 最后由 编辑

              @小丑汪 在 rviz显示marker不能实时更新 中说:

              void record_point(const nav_msgs::Odometry::ConstPtr& odom)
              {

              问题大概就是发布的问题了,确认下这个回调函数是否进入了,可以加一些打印进去

              社区建设靠大家,想要更及时详细回答,欢迎参与社区赞助建设计划:https://fishros.org.cn/forum/topic/741

              小丑汪 1 条回复 最后回复 回复 引用 0
              • 小丑汪
                WOW995 @小鱼 最后由 编辑

                @小鱼 您好,我在回调函数和下面的ros::ok里面都打印输出了,回调函数没有调用,没有打印输出。我看了订阅和回调写的好像没什么问题

                小鱼 1 条回复 最后回复 回复 引用 0
                • 小鱼
                  小鱼 技术大佬 @小丑汪 最后由 编辑

                  @小丑汪 没被回调肯定是哪里有问题,比如话题有没有搞错,仔细检查下,问题快找出来了

                  社区建设靠大家,想要更及时详细回答,欢迎参与社区赞助建设计划:https://fishros.org.cn/forum/topic/741

                  小丑汪 1 条回复 最后回复 回复 引用 0
                  • 小丑汪
                    WOW995 @小鱼 最后由 编辑

                    @小鱼 抱歉,我的。我没写ros::spinOnce()

                    小鱼 1 条回复 最后回复 回复 引用 1
                    • 小鱼
                      小鱼 技术大佬 @小丑汪 最后由 编辑

                      @小丑汪 好的👌🏻

                      社区建设靠大家,想要更及时详细回答,欢迎参与社区赞助建设计划:https://fishros.org.cn/forum/topic/741

                      1 条回复 最后回复 回复 引用 0
                      • First post
                        Last post
                      皖ICP备16016415号-7
                      Powered by NodeBB | 鱼香ROS