Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

algorithm_scheduler

调度器部署在orangepi上,作为结构物巡检项目,算法间的调度器,用来自动拉取上位机算法,结算成运动指令,通过mavros发给下位机,来实现自动巡检的功能

管道下水测试

当前 main 分支使用:

/home/orangepi/pipe_algorithm/camera_algorithm.py

算法直接打开相机,将左右目分别旋转 180 度后保持原左右顺序,再使用左目 运行两阶段中心线算法。相机请求以 MJPG 模式采集 2560x960 @ 30 FPS; 算法观测不包含视频帧号或视频时间。

图像 topic:

  • /inspection/pipeline_debug/compressed:带 YOLO 掩膜、中心线、拟合直线 和交点的算法处理 JPEG 压缩流,JPEG 质量为 65。它与原始流并行存在, SSH 上位机配置 ROS 网络后可在 rqt_image_view 中查看;实际发布帧率 受算法推理速度限制。
  • /inspection/camera/image_raw/compressed:旋转校正后的高清完整相机 JPEG 原始流,分辨率保持 2560x960,JPEG 质量为 90,供本地录像节点 使用,也可按需在上位机查看。

使用 scheduler_demo.launchpipeline_inspection_demo.launch 启动调度器后, 管道视频算法和录像节点会自动启动,但默认不开始写 AVI。默认录像目录为 ~/pipe_recordings/water_test,必须通过 ROS 服务手动开始录像:

roslaunch scheduler scheduler_demo.launch
# 开始录像
rosservice call /pipeline_video_recorder/set_recording "data: true"

# 停止并封装当前 AVI
rosservice call /pipeline_video_recorder/set_recording "data: false"

# 查询状态
rosservice call /pipeline_video_recorder/get_status

录像保存在 ~/pipe_recordings/water_test。每次开始服务调用创建一段 不限时长的 MJPEG AVI,直到停止服务或录像进程退出才结束。相机仍请求 30 FPS 采集;根据当前 2560x960 原始 JPEG 话题约 13.9 FPS 的实测 发布速率,AVI 默认以 14 FPS 封装,使播放时长接近真实录制时长。 正在写入时使用 .part.avi,正常结束后原子改名为 .avi;异常断电时 当前 .part.avi 仍可能损坏。录像器通过 FFmpeg 将 ROS 消息中的 JPEG 直接封装进 AVI,不再进行 JPEG 解码和二次 MJPEG 编码;停止时会先排空 已经接收的帧队列。状态服务会返回当前及上一段的 writtendropped 帧数。

可在启动时覆盖 AVI 封装帧率,例如:

roslaunch scheduler scheduler_demo.launch pipeline_video_record_fps:=14.0

pipeline_logging.launch 默认同时记录 rosbag 和 JSONL。bag 包含完整 管道观测、控制 trace、RC override、RCOut、飞控状态、IMU 和本地位姿, 但不记录图像流,避免 bag 体积失控。控制 trace 不包含视频时间戳。

About

调度器部署在orangepi上,作为结构物巡检项目,算法间的调度器,用来自动拉取上位机算法,结算成运动指令,通过mavros发给下位机,来实现自动巡检的功能

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages