MID360+单目实现差速小车重定位、导航避障与自动充电
实现的功能建图、重定位、导航、避障、自动充电MID360单目实现差速小车重定位、导航避障与自动充电 视频演示github链接Github仓库地址 ArduRover-Mid360: 移动机器人系统本项目是一个基于APM飞控、NVIDIA Jetson Orin NX算力平台与Livox Mid-360激光雷达构建的全栈式自主移动机器人底盘系统。项目涵盖了从底层飞控通信MAVLink、多传感器融合 SLAM、自主导航规划、高层行为树Behavior Tree决策到跨平台跨端 GUI 监控的完整软硬件闭环。 核心功能与特色 (Key Features)高精度定位与建图部署了FAST-LIO2激光惯导里程计算法并结合FastLioLocalization实现了高鲁棒性的全局重定位。自主导航与避障基于MoveBase框架结合TEB Local Planner实现了考虑车辆运动学约束的平滑路径规划与动态避障。智能决策树 (Behavior Tree)弃用传统状态机采用基于py_trees_ros的 Python 决策树脚本。实现了极其灵活的任务编排、优先级抢占。串口通信开发跨平台串口通信桥Serial Bridge采用 JSON 协议。内置了断线检测与“热插拔自动重连”机制提高底盘与 Windows 上位机之间的通信稳定性。自定义飞控消息解析实现对 ArduPilot (Rover) 飞控 MAVLink 协议的深度解析解析并转发自定义mavlink消息包中的电池数据。视觉对接与自动回充集成 USB 摄像头与 AprilTag 识别算法实现自动对桩充电。跨平台 GUI 监控站使用 Pythontkinter库开发了 Windows 端的上位机用户控制与实时监测界面实现对底层设备人工调度。️ 硬件架构 (Hardware Stack)核心计算平台: NVIDIA Jetson Orin NX主传感器: Livox Mid-360 (3D 固态激光雷达)视觉传感器: 高清 USB 免驱摄像头 (针对自动对接优化)底层控制器: ArduPilot Rover 飞控RvizGUI界面 核心项目结构 (Repository Structure)src └──ArduRoverMid360/ | ├── sentry_nav/ # 导航层MoveBase 配置及 TEB 局部路径规划器调参 | ├── sentry_slam/ # 建图层FAST-LIO2 及 FastLioLocalization 部署与启动配置 | └── sentry_tools/ # 工具层包含3d点云pcd文件转化二位栅格地图和用于平滑输出控制命令的ros包 | └──behavior_tree/ | ├── bhtree_final/ # 行为树核心决策层基于 py_trees_ros 的行为树逻辑与自定义节点 | ├── charging_state/ # 充电状态监控层读取NX的GPIO端口用于判断是否在充电 | ├── mavlinkmsg240/ # 自定义mavlink消息包解析自定义 MAVLink 报文解包器 (获取电池数据) | └── serial_bridge_node_new # 通信层Windows 上位机与 ROS 系统的 JSON 串口双向网关 | └──autodock/ # 自动对齐充电桩ROS包 | └──livox_ros_driver2/ # Mid360激光雷达官方驱动 | └──Start/ # tmux一键启动脚本与上位机GUI界面 ├── winGUI/ # 用户界面 └── start_robot.sh/ # 一键启动工具启动步骤(Launch Steps) 可以参考 Start/ start_robot.sh 编写的tmux会话脚本方式一通过bash脚本一次全部拉起git clone https://github.com/Ya97779/ArduRoverMid360.gitcd ~/catkin_wscatkin_makesource devel/setup.bashbash ~/catkin_ws/src/Start/start_robot.sh(需要在终端中安装tmux并根据需要修改.sh文件的具体路径)方式二逐个启动1.启动mavros连接飞控roslaunch mavros apm.launch2.设置飞控EKF原点和Home可通过GUI点击或自己写发布脚本3.启动雷达驱动roslaunch livox_ros_driver2 msg_MID360.launch4.启动FastLio2重定位roslaunch fast_lio_localization sentry_localize.launch5.下发初始位姿可通过rviz或自己写发布到初始位姿话题的脚本6.启动导航避障栈roslaunch sentry_nav sentry_movebase.launch7.启动GPIO充电监控python3 ~/catkin_ws/src/behavior_tree/charging_state.py8.启动AutoDockroslaunch autodock_sim rover_sim.launch9.启动串口通信网关python3 ~/catkin_ws/src/behavior_tree/serial_bridge_node_new.py10.启动电池数据监控节点python3 ~/catkin_ws/src/behavior_tree/mavlinkmsg240.py11.启动行为树python3 ~/catkin_ws/src/behavior_tree/bhtree_final.py12.启动用户GUI界面python3 ~/catkin_ws/src/Start/winGUI.py感谢(Thanks to)定位与导航部分二次开发于开源仓库https://github.com/66Lau/NEXTE_Sentry_Nav.git对齐充电桩部分二次开发于开源仓库https://github.com/osrf/autodock
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2478381.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!