ROS简单节点demo(Python)
好的,下面是将 talker_listener_demo
从C++版本转换为Python版本的详细步骤和代码示例:
步骤 1:创建ROS包
在终端中执行以下命令:
1 | catkin_create_pkg talker_listener_demo rospy std_msgs |
这将在你的Catkin工作空间中创建一个名为 talker_listener_demo
的ROS包,并将 rospy
和 std_msgs
添加为依赖项。
步骤 2:创建Python脚本
在 src
文件夹下创建两个Python脚本:talker.py
和 listener.py
。
1 | cd ~/catkin_ws/src/talker_listener_demo/src |
步骤 3:编写Python节点代码
编辑 talker.py
和 listener.py
文件,编写发布者节点和订阅者节点的Python代码。
talker.py:
1 | #!/usr/bin/env python |
listener.py:
1 | #!/usr/bin/env python |
步骤 4:添加依赖项到package.xml(正常应该不需要修改)
在 talker_listener_demo
包的 package.xml
文件中添加以下内容:
1 | <depend>rospy</depend> |
步骤 5:更新CMakeLists.txt
在 talker_listener_demo
包的 CMakeLists.txt
文件中确保 rospy
和 std_msgs
被正确声明为依赖项。
1 | find_package(catkin REQUIRED COMPONENTS |
编译和运行
在Catkin工作空间中执行以下命令来编译ROS包:
1 | cd ~/catkin_ws |
也可以编译指定的
1 | catkin_make --only-pkg-with-deps talker_listener_demo |
然后,在两个不同的终端中分别运行发布者节点和订阅者节点:
执行前需要source一下
1 | source ~/catkin_ws/devel/setup.bash |
同时给python脚本添加执行权限
1 | chmod +x talker.py |
可以用下面命令查看包是否存在
1 | rospack list|grep talker_listener_demo |
有时python命令不行,需要将python命令指向python3做符号链接
1 | sudo ln -s /usr/bin/python3 /usr/bin/python |
1 | # 首先需要启动Master |
现在,你应该能够在终端中看到发布者节点发布的消息被订阅者节点成功接收并打印出来了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Clang's Blog!
评论