ros-day3

一 激光雷达

1 查看数据


2 python获取雷达数据

创建包进行编译

创建函数

python 复制代码
import rospy
from sensor_msgs.msg import LaserScan
rospy:ROS 的 Python 客户端库
LaserScan:激光雷达数据的标准消息类型

rospy.loginfo:以 INFO 级别打印日志,显示前方距离

lidar_sub = rospy.Subscriber("/scan", LaserScan, LidarCallback, queue_s)
订阅主题:/scan(激光雷达标准数据主题)
消息类型:LaserScan
回调函数:LidarCallback
队列大小:queue_s(图中被遮挡,可能是 queue_size=10等)

添加运行权限

3 python激光雷达避障

python 复制代码
vel_cmd = Twist()
Twist:ROS标准速度消息类型,用于控制机器人的线速度和角速度
结构:
linear:线速度 (x, y, z)
angular:角速度 (x, y, z)
初始化:创建时所有速度分量默认为0

vel_pub.publish(vel_cmd)
发布者调用:vel_pub是在主程序中创建的对象
发布主题:/cmd_vel(ROS中标准速度控制主题)
消息类型:Twist
频率:每次收到激光雷达数据时发布(通常10-40Hz)

编写发布者同时更改运动

主题名 标准消息类型 用途
/scan LaserScan 2D激光雷达
/camera/depth PointCloud2 深度相机
/imu/data Imu 惯性测量单元
/odom Odometry 里程计
/tf TFMessage 坐标系变换
**/cmd_vel**​ Twist 速度控制

控制回转的时间

  • 订阅眼睛看到的路况(激光雷达数据)

  • 分析判断

  • 发布指令给手脚(前进/转弯)

4 ros中的IMU惯性测量单元消息包

orientation:机器人的转向对于xyz面的旋转变化量

结果是四个值

话题的标准

5 python进行测量IMU数据

创建包和进行编译

创建函数

python 复制代码
def imu_callback(msg):
    这里的 msg 是来自 /imu/data 话题的 Imu 类型消息
    包含了 IMU 传感器的所有测量数据

角度 = 弧度 × (180 / π)
弧度 = 角度 × (π / 180)

添加权限

6 python进行IMU航向锁定

二 消息包

1 标准消息包std_msgs

2 几何消息包和传感消息包

3 ros中生成自定义消息包

生成包

编写代码

进行补全运行

确保有这个

确保其他包可以用

补全

编译和结果

4 python自定义消息类型

发布者

订阅者

总结

相关推荐
qq_452396231 分钟前
【Python × AI】LangChain 深度剖析:从组件解耦到 LCEL 的逻辑美学
人工智能·python·ai·langchain
ChineHe1 分钟前
基础篇003_Python基础语法
开发语言·人工智能·python
GISer_Jing2 分钟前
两种AI交互方式深度解析——浏览器书签&插件
前端·人工智能·ai·prompt
razelan2 分钟前
本地大模型系列:2.通过API让本地大模型为你服务
人工智能·api·ollama·本地大模型
Tina姐11 分钟前
在 3D Slicer 中使用 Crop Volume 高效裁剪与重采样,提升分割、配准与深度学习处理效率
人工智能·深度学习
SuniaWang11 分钟前
《Spring AI + 大模型全栈实战》学习手册系列· 专题二:《Milvus 向量数据库:从零开始搭建 RAG 系统的核心组件》
java·人工智能·分布式·后端·spring·架构·typescript
QQsuccess12 分钟前
AI全体系保姆级详讲——第一部分:了解AI基本定义
人工智能·算法
科技新芯15 分钟前
当AI龙虾接管购物车,Bidnex用CPS重构数字广告的信任基石
人工智能·重构
跨境卫士—小依19 分钟前
标题与卖点不聚焦如何重构核心卖点逻辑
大数据·人工智能·跨境电商·亚马逊·营销策略
xin_yao_xin23 分钟前
PaddleOCR系列——《文本检测、文本识别》模型训练
人工智能·python·paddlepaddle·ppocr