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()

三、编译运行

相关推荐
Irissgwe4 分钟前
二叉树进阶
数据结构·c++·算法·c·二叉搜索树
hairenwangmiao7 分钟前
c++排序(第一章----桶排序与sort排序)
数据结构·c++·排序
郝学胜-神的一滴7 分钟前
[简化版 GAMES 101] 计算机图形学 13:从光栅化到着色——赋予三维像素光影灵魂
c++·计算机视觉·unity·godot·图形渲染·opengl·unreal
copyer_xyf14 分钟前
Agent MCP
后端·python·agent
闵孚龙15 分钟前
Autograd 自动求导:PyTorch 训练模型的发动机
人工智能·pytorch·python
Shadow(⊙o⊙)19 分钟前
信号2.0,深入信号三张表block pending handlers,core文件的使用,信号执行逻辑:CPU虚拟内存物理内存,时钟源,软中断。
linux·运维·服务器·开发语言·c++
FL162386312920 分钟前
基于CNN深度学习算实现手写字母识别系统python源码+训练好的模型+说明文档
python·深度学习·cnn
极创信息21 分钟前
信创产品适配测试认证,域名和SSL是必须的吗?
java·开发语言·网络·python·网络协议·ruby·ssl
喵叔哟23 分钟前
第3周学习笔记
python·langchain
不吃土豆的马铃薯25 分钟前
高并发服务器数据库连接池设计详解
服务器·网络·数据库·c++·mysql