ROS_第一个程序_Hello_world

devtools/2024/9/24 0:29:38/

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.ppmy.cn/devtools/20258.html

相关文章

G1垃圾收集器详解

G1收集器 G1(Garbage-Frist)是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器,以及高概率满足GC停顿时间要求的同时,还具备高吞吐量性能的特性. G1将Java堆划分为多个大小相等的独立区域(Region),JVM目标似乎不超过2048个Region(JVM源码里TARGET_REGIO…

github copilot学生认证(手把手一小时成功)

先放结果,本人两次申请就过啦!!!而且是一天时间!!! 我已经非常愉快的用上了copilot 今天我就来教大家如何申请copilot学生认证(亲身经验!!!)以及给…

北京车展“第一枪”:长安汽车发布全球首款量产可变新汽车

4月25日,万众瞩目的2024北京国际汽车展览会在中国国际展览中心如期而至。作为中国乃至全球汽车行业的盛宴,本次车展也吸引了无数业内人士的高度关注。 此次北京车展以“新时代 新汽车”为主题,汇聚了1500余家主流车企及零部件制造商&#xff…

screen服务使用解析

一、为什么要使用screen服务 当我们在进行一些常见的远程操作时,通常首先会先进行远程ssh登录 或者telnet连接到远程服务器上,然后执行相关操作,或程序启动等。 1、程序所需的执行时间过长,可能需要挂载几天的那种,可…

【学习】软件测试自动化,是未来的趋势还是当前的必需

在当今快速迭代的软件开发周期中,速度和质量成为了企业生存的关键。随着DevOps实践的普及和持续集成/持续部署(CI/CD)流程的标准化,软件测试自动化已经从未来的趋势转变为当前的必要性。本文将探讨自动化测试的现状、必要性以及其…

npm i时一直卡在sill idealTree buildDeps

解决办法 方法一、换镜像 1.npm设置淘宝镜像npm config set registry https://registry.npm.taobao.orgnpm config set disturl https://npm.taobao.org/dist2.npm删除淘宝镜像 npm config delete registrynpm config delete disturl方法二、更改.npmrc 文件夹中的.npmrc (最…

Linux - tar (tape archive)

tar 的全称是 Tape Archive。它最初是在 Unix 系统中用于将数据写入磁带的工具,但现在它通常用于创建、维护、修改和提取文件的归档文件。尽管 tar 可以用于压缩和解压缩文件,但它本身并不进行压缩,而是通常与 gzip 或 bzip2 等压缩工具一起使…

教育装备展火热开幕,锐捷网络用科技力量点亮教育未来之光

了解教育装备行业发展新趋势、感受教育装备领域创新脉动。4月19日,一场汇聚智慧与创新的教育行业盛会——第 83 届中国教育装备展示会在山城重庆隆重启幕。位于N4013号的锐捷网络展位不仅汇聚了极简以太全光3.X、三擎云桌面2.X、极简教育城域网等前沿科技方案,更通过样机展示、…