ROS小练习——话题发布

目录

一、话题与消息获取

1、话题

2、消息

二、代码编写

1、C++

2、python

三、编译运行


一、话题与消息获取

打开小乌龟案例

1、话题

rqt_graph

rostopic list

2、消息

获取消息类型:

rostopic type /turtle1/cmd_vel

获取消息格式:

rosmsg info geometry_msgs/Twist

二、代码编写

1、C++

cpp 复制代码
//包含头文件
#include "ros/ros.h"
#include "geometry_msgs/Twist.h"

int main(int argc, char *argv[])
{
    //初始化 ROS 节点
    ros::init(argc,argv,"control");
    ros::NodeHandle nh;
    //创建发布者对象
    ros::Publisher pub = nh.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel",1000);
    
    geometry_msgs::Twist msg;
    msg.linear.x = 1.0;
    msg.linear.y = 0.0;
    msg.linear.z = 0.0;
    msg.angular.x = 0.0;
    msg.angular.y = 0.0;
    msg.angular.z = 2.0;

    ros::Rate r(10);

    while(ros::ok())
    {
        //循环发布运动控制消息
        pub.publish(msg);
        ros::spinOnce();
    }

    return 0;
}

2、python

python 复制代码
#! /usr/bin/env python
# -*- coding:UTF-8 -*-

#导包
import rospy
from geometry_msgs.msg import Twist

if __name__ == "__main__":
    #初始化 ROS 节点
    rospy.init_node("control_circle_p")
    #创建发布者对象
    pub = rospy.Publisher("/turtle1/cmd_vel",Twist,queue_size=1000)
    
    rate = rospy.Rate(10)
    msg = Twist()
    msg.linear.x = 1.0
    msg.linear.y = 0.0
    msg.linear.z = 0.0
    msg.angular.x = 0.0
    msg.angular.y = 0.0
    msg.angular.z = 0.5
    
    while not rospy.is_shutdown():
        pub.publish(msg)
        rate.sleep()

三、编译运行

相关推荐
40岁的系统架构师14 分钟前
1 JVM JDK JRE之间的区别以及使用字节码的好处
java·jvm·python
染指111031 分钟前
50.第二阶段x86游戏实战2-lua获取本地寻路,跨地图寻路和获取当前地图id
c++·windows·lua·游戏安全·反游戏外挂·游戏逆向·luastudio
Code out the future1 小时前
【C++——临时对象,const T&】
开发语言·c++
觅远1 小时前
python实现word转html
python·html·word
sam-zy1 小时前
MFC用List Control 和Picture控件实现界面切换效果
c++·mfc
悠然的笔记本1 小时前
python2和python3的区别
python
aaasssdddd961 小时前
C++的封装(十四):《设计模式》这本书
数据结构·c++·设计模式
发呆小天才O.oᯅ2 小时前
YOLOv8目标检测——详细记录使用OpenCV的DNN模块进行推理部署C++实现
c++·图像处理·人工智能·opencv·yolo·目标检测·dnn
西猫雷婶2 小时前
python学opencv|读取图像(十六)修改HSV图像HSV值
开发语言·python·opencv
lovelin+v175030409662 小时前
智能电商:API接口如何驱动自动化与智能化转型
大数据·人工智能·爬虫·python