步骤一:创建一个ROS工作空间
打开终端并输入以下命令以创建一个新的ROS工作空间(如果已有工作空间可以跳过此步骤):
mkdir -p ~/ros_workspace/src
cd ~/ros_workspace/
catkin_make
source devel/setup.bash
步骤二:创建发布者节点
- 在src目录下创建一个ROS包,假设包名为fibonacci_publisher:
cd src catkin_create_pkg fibonacci_publisher rospy
- 在fibonacci_publisher包内创建一个Python脚本作为发布者节点,比如fibonacci_publisher_node.py:
代码如下:
#!/usr/bin/env python
import rospy
from std_msgs.msg import Int32
def fibonacci_publisher():
pub = rospy.Publisher('/fibonacci', Int32, queue_size=10)
rospy.init_node('fibonacci_publisher', anonymous=True)
rate = rospy.Rate(10) # 10Hz
a, b = 0, 1
while not rospy.is_shutdown():
pub.publish(a)
a, b = b, a + b
rate.sleep()
if __name__ == '__main__':
try:
fibonacci_publisher()
except rospy.ROSInterruptException:
pass
3 .记得赋予fibonacci_publisher_node.py执行权限:
cd src
catkin_create_pkg fibonacci_subscriber rospy
步骤三:创建订阅者节点
1.在src目录下创建另一个ROS包,假设包名为fibonacci_subscriber:
cd src
catkin_create_pkg fibonacci_subscriber rospy
2. 在fibonacci_subscriber包内创建一个Python脚本作为订阅者节点,比如fibonacci_subscriber_node.py:
#!/usr/bin/env python
import rospy
from std_msgs.msg import Int32
def callback(data):
rospy.loginfo("Received: %d", data.data)
def fibonacci_subscriber():
rospy.init_node('fibonacci_subscriber', anonymous=True)
rospy.Subscriber('/fibonacci', Int32, callback)
rospy.spin()
if __name__ == '__main__':
fibonacci_subscriber()
3. 同样要给fibonacci_subscriber_node.py赋予执行权限:
chmod +x fibonacci_subscriber_node.py
步骤四:编译并运行节点
1.回到ROS工作空间根目录,编译所有的包:
catkin_make
2.在一个终端中输入以下命令来启动ROS主节点:roscore
3.设置每个节点的环境变量:source devel/setup.bash
4.运行发布者节点:
rosrun fibonacci_publisher fibonacci_publisher_node.py
5.在另一个终端中运行订阅者节点:
rosrun fibonacci_subscriber fibonacci_subscriber_node.py
结果如下:
需要用到的一些小知识:
要使用文本编辑器(比如vim、nano等)创建一个Python脚本文件,可以按照以下步骤进行操作: 使用vim创建Python脚本文件: 打开终端,并进入到你想要创建Python脚本文件的目录。 输入以下命令以使用vim创建一个Python脚本文件(比如my_script.py): vim my_script.py 按下 i 键进入编辑模式,然后粘贴或手动输入Python代码。 按下 Esc 键退出编辑模式,然后输入 :wq 并按下 Enter 保存并退出vim。 使用nano创建Python脚本文件: 打开终端,并进入到你想要创建Python脚本文件的目录。 输入以下命令以使用nano创建一个Python脚本文件(比如my_script.py): nano my_script.py 在nano编辑器中粘贴或手动输入Python代码。 按下 Ctrl + O 来保存文件,然后按下 Enter 确认保存。最后按下 Ctrl + X 退出nano。 |
1.如果你确定要强制保存并退出只读文件,在vim中输入以下命令: :w! :q 这将强制保存文件并退出vim编辑器。 2.如果你想在保存只读文件时避免出现这个错误,可以在打开文件时添加 ! 参数来打开文件,并且确保你有修改权限。在终端中使用以下命令: vim -R filename 或者 sudo vim filename 这样你就能以读写模式打开文件,从而避免只读错误。 |
此外,运行python代码时,需要安装有关python的依赖包:sudo pip install(用这个指令来安装即可) |