一 激光雷达
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自定义消息类型
发布者




订阅者




总结

