机器人工匠阿杰ROS快速入门笔记记录


笔记C++版


Python版

  • python不需要编码完成再编译

1、ROS发布者-订阅者(Python版)

发布者

  1. 建立包
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
  1. 执行节点
  • roscore
  • rosrun ssr_pkg chao_node.py
  • rostopic list # 查看节点列表
  • rostopic echo xxx节点

订阅者

  1. 创建包
cd catkin_wa/src/
#创建包
catkin_create_pkg atr_pkg rospy stdmsgs
#回退上级目录
cd ..
#编译(与c++不同),为了让新建pkg能进入Ros软件包列表
catkin_make

2.新建scripts文件
在这里插入图片描述

  1. 创建节点(订阅者)
    在这里插入图片描述
  • 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("kuai_shang_che_kai_hei_qun", String, chao_callback, queue_size=10)
	sub2 =  rospy.Subscriber("giegiedaiwo", String, yao_callback, queue_size=10)
	rospy.spin()
  • 本处新建的ma_node.py无执行权限,可以进去给加。chmod +x name.py
  1. 执行节点
  • roscore
  • rosrun ssr_pkg chao_node.py # 执行发布者
  • rosrun atr_pkg ma_node.py # 执行订阅者
  • 可以用launch启动多个文件
<launch>
	<node pkg="ssr_pkg" type="chao_node.py" name="chao_node" />
	<node pkg="ssr_pkg" type="yao_node.py" name="chao_node" />
	#launch-prefix单独运行窗口
	<node pkg="atr_pkg" type="ma_node.py" name="chao_node" launch-prefix="gnome-terminal -e" />
</launch>
  • 执行语句:roslaunch atr_pkg kai_hei.launch
  • rqt_graph :查看结构

2、ROS机器人运动控制(Python版)

1. 配置代码及实现思路

https://github.com/6-robot/wpr_simulation
  • 进入src工作空间
  • git clone 上述配置代码
  • 进入wpr的scripts工作目录,执行 ./install_for_noetic.sh
  • 回退到工作空间主主目录(catkin_ws)执行catkin_make
  • 执行模拟程序:roslaunch wpr_simulation wpb_simple.launch
  • 打开控制程序:rosrun wpr_simulation demo_vel_ctrl
    在这里插入图片描述

2. c++代码实现

3. python实现:

配置如同上,在执行模拟程序好打开控制程序部分不同:

  • cd catkin_ws/src
  • catkin_create_pkg vel_pkg roscpp rospy geometry_msgs
  • 在目录文件创建scripts文件夹,并创建vel_node.py文件
  • 给vel_node.py文件添加执行权限:chmod +x vel_node.py
  • 执行模拟程序:rosrun wpr_simulation wpb_simple.launch
  • 运行编写的节点:rosrun vel_pkg vel_node.py

vel_n

  • 11
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值