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

发布者

订阅者

总结

相关推荐
风之九子3 分钟前
在上游一天两版的项目上做二次开发:9 天 65 次提交的 fork 手记 (dsh-our-free-model)
人工智能·ai·github
米小虾5 分钟前
工作流还是自主 Agent:怎么选、怎么混
人工智能·agent
FII工业富联科技服务13 分钟前
AI+制造还是制造+AI?从2026工博会看工业AI落地的典型问题与解法
人工智能·制造
wangfpp16 分钟前
本地大模型微调与 GGUF 部署全指南
人工智能·agent
Smoothcloud润云17 分钟前
GPU算力平台跑知识库问答,模型回答总跑偏?先排查检索链路
人工智能·python·深度学习·gpu算力·gpu
mklpo14719 分钟前
python3:如何按照实际执行需求导入模块,而不是启动时统一导入?(Python3.15)。2026-10-20
开发语言·人工智能·python
甲维斯21 分钟前
国产Flash大乱斗!结果很意外
人工智能
Elaine101223 分钟前
AI智能化项目管理(三):AI如何辅助项目文档检查?从交付物质量到流程附件审核
人工智能·ai·项目管理·项目管理工具
CServer_0125 分钟前
源码交付!AI+重型装备制造企业数智化平台
人工智能·物联网·制造