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

发布者

订阅者

总结

相关推荐
lili-felicity1 小时前
CANN多设备协同推理:从单机到集群的扩展之道
大数据·人工智能
聆风吟º2 小时前
CANN ops-math 应用指南:从零搭建高效、可复用的自定义 AI 计算组件
人工智能·机器学习·cann
熊文豪2 小时前
从零开始:基于CANN ops-transformer的自定义算子开发指南
人工智能·深度学习·transformer·cann
云边有个稻草人2 小时前
基于CANN ops-nn的AIGC神经网络算子优化与落地实践
人工智能·神经网络·aigc
chian-ocean2 小时前
视觉新范式:基于 `ops-transformer` 的 Vision Transformer 高效部署
人工智能·深度学习·transformer
程序猿追2 小时前
探索 CANN Graph 引擎的计算图编译优化策略:深度技术解读
人工智能·目标跟踪
哈__2 小时前
CANN加速语音识别ASR推理:声学模型与语言模型融合优化
人工智能·语言模型·语音识别
慢半拍iii2 小时前
CANN算子开发实战:手把手教你基于ops-nn仓库编写Broadcast广播算子
人工智能·计算机网络·ai
User_芊芊君子2 小时前
CANN数学计算基石ops-math深度解析:高性能科学计算与AI模型加速的核心引擎
人工智能·深度学习·神经网络·ai