目录
笔记C++版
Python版
- python不需要编码完成再编译
1、ROS发布者-订阅者(Python版)
发布者
- 建立包
cd catkin_wa/src/
#创建包
catkin_create_pkg ssr_pkg rospy stdmsgs
#回退上级目录
cd ..
#编译(与c++不同),为了让新建pkg能进入Ros软件包列表
catkin_make
2.新建scripts文件
3. 创建节点(发布者)
- python中则把大管家换成:rospy
#指定python解释器
# !/usr/bin/env python3
#指定运行环境编码,避免乱码
# coding=utf-8
import rospy
from std_msg.msg import String
if __name__ == "__main__":
rospy.init_node("chao_node")
rospy.logwarn("我的枪去而复返")
# 参数:话题包名,包内容类型,队列长度
pub = rospy.Publisher("kuai_shang_che_kai_hei_qun", String, queue_size=10)
# 发送频率
rate = rospy.Rate(10)
while not rospy.is_shutdown():
rospy.loginfo("我要刷频率了")
msg = String()
msg.data = "国服马超,带飞"
pub.publish(msg)
rate.sleep()
- 本处新建的chao_node.py无执行权限,可以进去给加。chmod +x name.py
- 执行节点
- roscore
- rosrun ssr_pkg chao_node.py
- rostopic list # 查看节点列表
- rostopic echo xxx节点
订阅者
- 创建包
cd catkin_wa/src/
#创建包
catkin_create_pkg atr_pkg rospy stdmsgs
#回退上级目录
cd ..
#编译(与c++不同),为了让新建pkg能进入Ros软件包列表
catkin_make
2.新建scripts文件
- 创建节点(订阅者)
- python中则把大管家换成:rospy
#指定python解释器
# !/usr/bin/env python3
#指定运行环境编码,避免乱码
# coding=utf-8
import rospy
# 消息包引入消息类型函数
from std_msg.msg import String
# 回调函数
def chao_callback(msg):
rospy.loginfo(msg.data)
def yao_callback(msg):
rospy.logwarn(msg.data)
if __name__ == "__main__":
rospy.init_node("ma_node")
rospy.logwarn("我的枪去而复返")
# 参数:话题包名,包内容类型,回调函数(收到消息后执行),队列长度
sub = rospy.Subscriber(