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自定义消息类型

发布者

订阅者

总结

相关推荐
开发者如是说6 小时前
Vibe Code 了产品却无人下载?我写了个工具来帮你
人工智能·程序员·产品
AI科技星6 小时前
《01无穷全域信息场论:算子G与宇宙本体高维完备公理大典》
人工智能·python·算法·金融·乖乖数学·全域数学
战场小包6 小时前
AI 写代码越来越快,慢下来的那个人变成了我
人工智能·agent
sunywz7 小时前
【AI RAG知识库】05.【导入】【节点5】node_item_name_recognition
人工智能
彩云回7 小时前
长文档处理(Long Document Processing)策略
人工智能
AIGS0017 小时前
企业AI落地:从RAG到AgentRAG的技术跃迁
java·人工智能·人工智能ai大模型应用
程序员cxuan7 小时前
Claude Code 焚诀(一):Claude Code 六种心智模型
人工智能·后端
FlagOS智算系统软件栈7 小时前
FlagOS技术工作坊:当AI开始“自己部署自己”,大模型基础设施进入“无人驾驶”时代
人工智能
一楼的猫7 小时前
AI写作检测机制技术深度解析:200+维度检测、叙事指纹与网文AI辅助怎么过审
人工智能·学习·安全·chatgpt·ai写作
心中有国也有家7 小时前
鸿蒙 Flutter 本地存储实战:Hive CE 从入门到精讲
人工智能·hive·flutter·华为·harmonyos