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

三、编译运行

相关推荐
破茧蝴蝶1 小时前
Python分布式爬虫完整教程
开发语言·python
benchmark_cc2 小时前
量化系统架构设计:为什么应该将数据获取与策略逻辑解耦?
python·数据分析·pandas·量化交易·股票数据·quantdash
凤山老林2 小时前
Spring Boot 启动冲刺:耗时剖析、懒加载策略与事件驱动初始化优化
spring boot·后端·python
小白快快跑哦2 小时前
python-字符串全解(六):正则表达式-逻辑运算或
python·正则表达式·字符串·逻辑运算
Thinker QAQ2 小时前
并发编程(九):BlockingQueue 与 Channel——语言层的原子性、可见性与有序性
java·python·go·并发编程·channel·blockingqueue·message passing
道满科技3 小时前
Function Calling 参数总出错?只修参数就行
linux·windows·python
一拳一个呆瓜3 小时前
【STL】文件系统导航
c++·stl
All for pursuit.3 小时前
【动态规划-21】312.戳气球
数据结构·c++·算法·leetcode·动态规划
栈帧之外3 小时前
【C++】STL之set
开发语言·c++
霸道流氓气质4 小时前
RAG 可观测性与生产监控实战:四层遥测模型、五大仪表盘与 OpenTelemetry 全链路追踪的 Java 生产级实现
java·人工智能·python