ROS_第一个程序_Hello_world

ROS的第一个项目:输出Hello World

我们将学习如何创建一个简单的ROS(Robot Operating System)项目,该项目将在终端中输出"Hello World"。我们将使用Python语言进行编程。
在这里插入图片描述

环境准备

首先,确保你的计算机已经安装了ROS。如果还没有安装,可以参考ROS官方文档进行安装。

创建ROS包

打开终端(请确保已经创建了ros工作空间,不会请点击看以前的文章),导航到你的catkin工作区的src目录下,然后使用以下命令创建一个名为hello_world的ROS包:

cd ~/catkin_ws/src
# 这个路径是你自己ros项目文件,注意替换自己的路径    catkin_ws是我的ros项目名字
catkin_create_pkg hello_world std_msgs rospy roscpp

这将在src目录下创建一个名为hello_world的新目录,其中包含一些文件和目录。

创建Python脚本

hello_world包中,我们需要创建一个Python脚本来发布消息。首先,我们需要在hello_world目录中创建一个名为scripts的新目录:

cd ~/catkin_ws/src/hello_world
mkdir scripts
# 这个路径是你自己ros项目文件,注意替换自己的路径    catkin_ws是我的ros项目名字

然后,在scripts目录中创建一个名为hello_world.py的新文件,并添加以下内容:

#!/usr/bin/env python
import rospy
from std_msgs.msg import Stringdef talker():pub = rospy.Publisher('chatter', String, queue_size=10)rospy.init_node('talker', anonymous=True)rate = rospy.Rate(10) # 10hzwhile not rospy.is_shutdown():hello_str = "hello world %s" % rospy.get_time()rospy.loginfo(hello_str)pub.publish(hello_str)rate.sleep()if __name__ == '__main__':try:talker()except rospy.ROSInterruptException:pass

记得给hello_world.py添加可执行权限:

chmod +x hello_world.py

编译包

在终端输入

cd ~/Desktop/ros_1/ #切换到自己的ros项目根目录
# 这个路径是你自己ros项目路径,注意替换自己的路径
catkin_make
source ~/Desktop/ros_1/devel/setup.bash
# 这个路径是你自己ros项目下的devel目录下setup.bash文件,注意替换自己的路径

运行节点

现在,我们可以运行hello_world节点了。首先,需要启动ROS核心:

roscore

然后,在新的终端窗口中,运行我们的hello_world节点:

rosrun hello_world hello_world.py

你应该能在终端中看到"Hello World"的消息。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/650976.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QWidget | Qt::WindowType 枚举的取值及意义QFlags 模板类详解

01 与 QWidget 类有关的部分类的继承图 3、QObject 是所有 Qt 对象的基类,QPaintDevie 是所有可绘制对象的基类。 4、QWidget 类是所有用户界面对象的基类,QWidget 及其子类是开发桌面应用的核心,这些类都位于 QtWidgets 模块内,注意:QtWidgets 是模块,QWidget 是类(少一…

【汇编语言】直接定址表

【汇编语言】直接定址表 文章目录 【汇编语言】直接定址表前言一、移位指令移位指令过程逻辑移位指令shl 和 shr 二、操作显存数据显示的原理显示缓冲区的结构显示信息的一种“直接”方式 三、描述内存单元的标号关于标号去了冒号的数据标号数据标号同时描述内存地址和单元长度…

NX系统软件使用说明

注意:只有下列目录重启后不会还原,其它目录重启后自动还原,尽量不要往其它目录写入数据。 a) /home/novasky/app b) /home/novasky/app-backup c) /home/novasky/data d) /home/novasky/config 1.系统启动: 系统启动脚本调用…

算法模版自用(杂)

文章目录 算法库函数next_permutation(start,end) prev_permutation(start,end) (全排列函数)nth_element (求第k小值)next(it,num),prev(it,num)min_element(begin(),end()),max_element(begiin(),end()) (取最小值最大值) _int128的输入输出STLlist 数…

LCD液晶显示屏强光老化测试设备太阳光模拟器仪器

1. LCD液晶显示屏老化测试的意义 LCD液晶显示屏老化测试是评估显示屏寿命和性能的重要手段。随着科技的发展,LCD液晶显示屏已经成为我们日常生活中不可或缺的一部分。长期使用后,LCD液晶显示屏可能会出现亮度下降、颜色失真、响应速度变慢等问题。通过进…

DRF 查询(排序、过滤、分页)

查询(排序、过滤、分页) 【0】准备 (1)Q查询 详细内容可见:Django模型层-CSDN博客Django 的 Q 对象提供了一种在数据库查询中构造复杂查询的方法。当你想在单个查询中组合多个过滤条件,并且这些条件之间不仅仅是简单的 AND 关系…

博睿数据亮相GOPS全球运维大会,Bonree ONE 2024春季正式版发布!

2024年4月25日,博睿数据 Bonree ONE 2024 春季正式版焕新发布。同时,博睿数据AIOps首席专家兼产品总监贺安辉携核心产品新一代一体化智能可观测平台 Bonree ONE 亮相第二十二届 GOPS 全球运维大会深圳站。 Bonree ONE 2024 春季版产品重点升级数据采集、…

Linux实现Nginx的安装与部署并实现html静态资源访问

文章目录 一、安装过程二、常用命令三、查看状态并启动nginx四、放置静态资源五、访问 一、安装过程 1、安装依赖包 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel 2、下载Nginx安装包wget https://nginx.org/download/nginx-1.16.1.tar.gz 3、解压 tar -z…

【学习笔记】Python 使用 matplotlib 画图

文章目录 安装中文显示折线图、点线图柱状图、堆积柱状图坐标轴断点参考资料 本文将介绍如何使用 Python 的 matplotlib 库画图,记录一些常用的画图 demo 代码 安装 # 建议先切换到虚拟环境中 pip install matplotlib中文显示 新版的 matplotlib 已经支持字体回退…

el-date-picker 禁用时分秒选择(包括禁用下拉框展示)

2024.04.26今天我学习了对el-date-picker进行禁用时分秒, 在使用el-date-picker组件的时候,我们有可能遇到需要把时分秒的时间固定,然后并且不能让他修改: 1714120999296 比如右上角的这个时间,我们要给它固定是‘08:…

“AI 程序员入职系列”第二弹:如何利用通义灵码光速改写项目编程语言?

通义灵码入职阿里云云原生团队后,已经展示过 Ta 生成单元测试和自动生成代码的强大实力。今天,阿里云后端工程师云徊将从项目开发的实际需求出发,演示通义灵码在开发工作中可提供的帮助。 通义灵码在 Git 开发项目中起到了哪些作用&#xff…

前端JS必用工具【js-tool-big-box】,防抖和节流的方法调用学习

这一小节,我们针对前端工具包(npm)js-tool-big-box的使用做一些讲解,主要是防抖和节流方面的。 目录 前言 1 安装和引入 2 防抖的调用学习 3 节流的调用学习 4 使用方法总结 前言 在前端项目中,经常涉及到防抖…