- 博客(26)
- 收藏
- 关注
原创 Python实现服务调用生成乌龟
rospy.loginfo("生成乌龟的名字:%s", response.name)request.name = "turtle3" # 设置生成乌龟的名称。request.theta = -3 # 设置生成乌龟的角度。request.x = 4.5 # 设置生成乌龟的x坐标。request.y = 2.0 # 设置生成乌龟的y坐标。rospy.logerr("请求处理异常")# 4-2. 判断服务器状态并发送请求。# 发送请求并获取响应。# 4. 组织数据并发送请求。# 4-1. 组织数据。
2025-03-29 13:03:49
376
原创 服务调用,生成乌龟
/ 发送请求并获取响应状态,响应结果会存储到spawn对象中。ROS_INFO("乌龟生成成功,新乌龟叫:%s", spawn.response.name.c_str());// 设置生成乌龟的名称。// 输出乌龟生成成功信息,使用c_str()将C++字符串转为C风格字符串。#include "turtlesim/Spawn.h" // 引入乌龟生成服务的头文件。// 设置生成乌龟的角度。// 设置生成乌龟的x坐标。// 设置生成乌龟的y坐标。// 创建服务请求对象。// 组织请求数据并发送。
2025-03-29 13:01:30
355
原创 Python实现话题输出乌龟姿态
rospy.loginfo("乌龟位姿信息: (坐标:%.2f,%.2f), 朝向:%.2f, 线速度:%.2f, 角速度:%.2f",# 订阅话题/turtle1/pose,消息类型为Pose,回调函数为doPose,队列大小100。from turtlesim.msg import Pose # 导入海龟仿真的位姿消息类型Pose。# 打印海龟的位姿信息,包括坐标、朝向、线速度和角速度。# 初始化ROS节点,节点名称为sub_pose_p。# 定义回调函数,处理订阅到的位姿数据。
2025-03-29 11:42:46
253
原创 话题订阅输出乌龟位姿
ROS_INFO("乌龟的位姿信息: (坐标:%.2f,%.2f), 朝向:%.2f, 线速度:%.2f, 角速度:%.2f",// 设置本地语言环境,支持中文输出。// 订阅话题 /turtle1/pose,队列长度100,回调函数 doPose。// 5. 处理订阅到的数据(通过回调函数自动处理)// 6. 循环等待回调函数(保持节点运行)// 输出海龟位姿信息到控制台。// 2. 初始化ROS节点。// 处理订阅到的数据(回调函数)// 3. 创建节点句柄。// 4. 创建订阅对象。
2025-03-29 11:25:18
204
原创 Python实现小乌龟运动
from geometry_msgs.msg import Twist # 导入速度消息类型 Twist。# 向话题 /turtle1/cmd_vel 发布 Twist 类型消息,队列大小为 10。rate.sleep() # 按设置的频率休眠,维持发布周期。# 初始化 ROS 节点,节点名称为 my_control_p。pub.publish(twist) # 发布速度消息。# 配置线速度:x 方向 0.5,y、z 方向 0。# 配置角速度:z 方向 0.5,x、y 方向 0。# 创建速度消息对象。
2025-03-29 10:45:27
335
原创 Python实现参数服务器的删除
尝试删除参数服务器中名为 "radius_p" 的参数。# 初始化ROS节点,节点名称为 "del_param_p"rospy.loginfo("被删除的参数不存在")# 捕获异常(参数不存在时触发),记录日志信息。
2025-03-23 21:08:13
224
原创 Python实现参数服务器的查找
rospy.loginfo("radius_p_xxx 不存在")rospy.loginfo("radius_p_xxx 存在")# 2. 使用 get_param_cached 获取参数(效率更高)rospy.loginfo("radius_p 不存在")rospy.loginfo("radius_p 存在")# 当键存在时,返回对应的值;# 1. 使用 get_param 获取参数。# 5. 查找参数的键并返回完整键名。# 3. 获取所有参数的键的集合。# 4. 判断参数是否存在。
2025-03-23 21:02:43
202
原创 Python实现参数服务器增与改
新增参数:设置机器人型号参数(键为"type_p",值为"xiaoHuangChe")# 新增参数:设置机器人半径参数(键为"radius_p",值为0.15)# 修改参数:更新已有的"radius_p"参数值为0.2。# (若参数不存在,此操作也会执行新增功能)需求: 在参数服务器中设置机器人属性,型号,半径。# 初始化 ROS 节点。演示参数的新增与修改。
2025-03-23 19:17:26
224
原创 c++实现参数服务器的删除
/ ---------------------- 使用 ros::NodeHandle 删除参数 ----------------------// ---------------------- 使用 ros::param 命名空间删除参数 ----------------------ROS_INFO("通过 ros::param 删除 radius_param 参数成功!ROS_INFO("通过 ros::param 删除 radius_param 参数失败!// 创建ROS节点句柄。
2025-03-23 17:23:07
330
原创 c++实现参数服务器的获取
/ ---------------------- ros::NodeHandle 相关方法 ----------------------ROS_INFO("遍历的参数名:%s", name.c_str());ROS_INFO("搜索结果:%s", search_key.c_str());ROS_INFO("缓存获取的半径是:%.2f", radius3);ROS_INFO("获取的半径是:%.2f", radius2);// 初始化ROS节点,节点名称为 "get_param_c"
2025-03-23 17:12:45
479
原创 c++实现参数服务器增与改
/ ---------------------- 参数新增(方案2:通过 ros::param 命名空间)----------------------// ---------------------- 参数修改(方案2:通过 ros::param 命名空间)----------------------// ---------------------- 参数修改(方案1:通过 NodeHandle)----------------------// 设置名为 "radius" 的参数,值为 0.15。
2025-03-23 16:19:52
218
原创 优化Python实现client端
rospy.loginfo("响应的数据: %d", response.sum)rospy.logerr("传入的参数个数不对,需传入两个整数参数")rospy.logerr("服务调用失败,错误信息: %s", e)# 判断参数长度,确保传入两个有效参数(不包含脚本名)# 创建客户端对象,指定服务名和服务类型。# 发送服务请求,传入两个整数。# 解析命令行传入的参数,转换为整数。# 处理响应,打印结果。# 初始化 ROS 节点。
2025-03-23 14:18:17
256
原创 Python实现client端
from plumbing_server_client.srv import * # 导入自定义服务消息(包含请求和响应结构)response = client.call(12, 34) # 发送请求,12和34为示例请求数据。rospy.loginfo("响应的数据: %d", response.sum)# 4. 组织请求数据,并发送请求(调用服务,传入两个整数作为请求参数)# 3. 创建客户端对象(指定服务名和服务类型)客户端:组织并提交请求,处理服务端响应。4. 组织请求数据,发送请求;
2025-03-23 13:44:58
272
原创 Python实现server端
rospy.loginfo("服务器解析的数据num1 = %d,num2 = %d,响应的结果: sum = %d", num1, num2, sum_result)# 4. 处理逻辑:通过回调函数处理请求(rospy.Service 已绑定回调,此处保持节点运行)# 服务名:"addInts",服务类型:AddInts,回调函数:doNum。# 打印调试信息(可选,用于查看解析的数据和响应结果)# 5. 保持节点运行,等待请求。服务端:解析客户端请求,产生响应。# 回调函数:处理请求并生成响应。
2025-03-23 13:32:51
269
原创 优化client端(附带解释说明)
include "plumbing_server_client/AddInts.h" // 包含自定义服务消息头文件,定义服务的请求(num1、num2)与响应(sum)格式。#include "ros/ros.h" // 包含 ROS 核心库头文件,提供 ROS 基本功能(如节点初始化、消息通信等)// 初始化 ROS 节点:节点名为 "daBao",同时将命令行参数传递给 ROS 系统。ROS_INFO("响应结果 = %d", ai.response.sum);
2025-03-23 11:22:42
401
原创 c++实现client端(附带分析)
这是一个 ROS 服务客户端程序,向名为 addInts 的服务端发送两个整数(100 和 200),请求求和计算,并处理服务端返回的结果。- 基于节点句柄 nh 创建服务客户端,指定服务类型为自定义的 plumbing_server_client::AddInts ,服务名称为 addInts ,用于连接同名的服务端。ROS_INFO("响应结果 = %d", ai.response.sum);ROS_INFO("响应结果 = %d", ai.response.sum);
2025-03-22 16:42:48
371
原创 c++实现server创建
ROS_INFO("收到的请求数据:num1 = %d, num2 = %d", num1, num2);//节点名称需要保证唯一。ROS_INFO("求和结果: sum = %d", sum);// 5.处理请求并产生响应;// 2.初始化ROS节点;// 4.创建一个服务对象;// 3.创建节点句柄;
2025-03-22 16:19:39
292
原创 msg自定义订阅方
ROS_INFO("订阅的人的信息:%s,%d,%.2f", person->name.c_str(), person->age, person->height);// 5. 处理订阅的数据(通过回调函数处理,此处只需保持节点运行)// 6. 调用spin()函数,循环等待回调函数。ROS_INFO("订阅方实现");// 2. 初始化ROS节点。// 4. 创建订阅者对象。// 3. 创建节点句柄。
2025-03-17 21:40:06
166
原创 自定义msg使用
person.name = "张三";// 5. 编写发布逻辑,发布数据。// 5-1. 创建被发布的数据。// 2. 初始化ROS节点。// 5-2. 设置发布频率。// 5-3. 循环发布数据。// 核心:数据发布。// 4. 创建发布者对象。// 3. 创建节点句柄。
2025-03-17 20:35:33
229
原创 ros订阅方通信
rospy.loginfo("我订阅的数据:%s", msg.data)# 2. 初始化ROS节点;# 4. 回调函数处理数据;# 3. 创建订阅者对象;
2025-03-16 21:31:25
226
原创 python实现ros通信
rospy.loginfo("发布的数据:%s", msg.data)rospy.init_node("sanDai") # 传入节点名称。# 4.编写发布逻辑并发布数据。# 2.初始化ROS节点;# 3.创建发布者对象;# 使用循环发布数据。
2025-03-16 14:17:14
215
原创 vscode配置
shell 代码是在 shell 里面运行一个命令,如果是 process 代表作为一个进程来。"type": "shell", //可以选择 shell 或者 process,如果是。"reveal": "always"//可选 always 或者 silence,代表。"label": "catkin_make:debug", //代表提示的描述性信息。"command": "catkin_make",//这个是我们需要运行的命令。"args": [],//如果需要在命令后面加一些后缀,可以写在这。
2025-03-07 22:04:12
196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅