ROS(sub,pub)测试 Plotjuggler

参考于ROS Wiki🐺


在 src 文件夹里面新建功能包

roscatkin_creat_package roscpp rospy std_msgs geometry_msgs

编写测试 Demo 测试发布者和订阅者的消息连接【hpp,cpp】

  • msg 消息类型(新建文件夹 msg 内新建文件 turtle.msg)控制 turtle 的,其中 RoboMode 只是为声明名称,可以自己定义
string name
int32 RoboMode
string tail
头文件
  • 类头文件
#include <ros/ros.h>
#include <geometry_msgs/Twist.h>
#include "study_one/serial_rp.h"
#include <std_srvs/Trigger.h>
#include "std_msgs/String.h"

class TurtleCt
{
private:
 /* data */
public:
 explicit TurtleCt();

 ~TurtleCt();


public:
 // 必须含有节点的 msg 对象指针
 void InfoCallBack(const study_one::serial_rp::ConstPtr& serial_msg);  // 订阅者的回调函数
 void InforPub();  // 发布函数

 
private:
 ros::NodeHandle nd_turtle_pub;  // 发布者者 nodehandle
 ros::NodeHandle nd_turtle_sub;  // 订阅者 nodehandle

 ros::Subscriber turtle_vel_sub; // 订阅者对象订阅
 ros::Publisher turtle_vel_pub;  // 发布者对象订阅

 geometry_msgs::Twist vel_msg;  // turtle message test


private:
 int move_store{0};  // 订阅者消息存储变量

};



  • 发布者函数编写
void TurtleCt::InforPub()
{
  ros::Rate rate(1);
  study_one::serial_rp robo_rp;  // 定义 msg 消息对象
  robo_rp.RoboMode = 0x02;  // 变量赋值
  while (ros::ok())
  {
    turtle_vel_pub.publish(robo_rp);
    ROS_INFO("RoboMode:%d",robo_rp.RoboMode);
    ros::spinOnce();
    rate.sleep();
  }
}
源文件
  • 回调函数
void TurtleCt::InfoCallBack(const study_one::serial_rp::ConstPtr& serial_msg)
{
 move_store += serial_msg->RoboMode;
 ROS_INFO("the sub RoboMode:{%d}\n",move_store);
}
  • 初始化构造函数
TurtleCt::TurtleCt(){
  ROS_INFO("TurtleCt\n");
  turtle_vel_pub = nd_turtle_pub.advertise<study_one::serial_rp>("serial_info",10);
  turtle_vel_sub = nd_turtle_pub.subscribe<study_one::serial_rp>("serial_info",10,&TurtleCt::InfoCallBack,this);
}
  • rosrun 运行 node 节点就可以看到发布消息和订阅消息
  • 运行 Plojuggler 查看 turtle 的位置姿态的曲线图
    在这里插入图片描述Plotjuggler 运行之后可以点击开始接受 master 上的节点名称,并且将获取到的消息例如 turtle1 节点 msg 内容使用坐标图显示出来

🌸🌸🌸完结撒花🌸🌸🌸


🌈🌈@FAE🌈🌈


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值