autolabor-m1-doc/navigationKit/development/osIntro.md

257 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Autolabor M1 系统目录
## 简介
Autolabor M1 搭载的是 Autolabor 推出的Autolabor OS机器人操作系统基于 ubuntu20.04 与 ROS Noetic 开发而成,包含 ROS Noetic 、常用
ROS包Cartographer、Gmapping、Navigation ···机器人底盘与传感器驱动包机器人仿真应用以及激光SLAM导航、自动巡迹导航应用等。
解决了繁琐的 ROS 环境安装问题节省时间成本降低技术壁垒。使用该系统学习ROS、开发机器人、实现自己的算法做一些有趣的事情。
秉持小而实用的原则对原生的Ubuntu系统的功能模块进行了精简在原有的基础上增加了ROS开发中使用到的常见功能包。
既保证了简洁性,又增加了实用性。按需构建,有非常良好的可扩展性。
OS在M1上已经实现了机器人自主导航2D/3D SLAM 单目标/多目标、RTK自动循迹、远程遥控等功能。
## 系统目录
```
catkin_ws
├── script //执行脚本
├── src //源码
catkin_ws/src/driver/
├── car
│ ├── autolabor_canbus_driver //PM1底盘驱动
│ └── autolabor_pro1_driver //AP1/M1底盘驱动
├── depth_camera
│ ├── zed_wrapper //ZED 相机驱动
│ └── pico_zense_driver //Vzense DCAM710 相机驱动
├── imu
│ ├── ah100b //ah100b,ah200c 惯导驱动
│ ├── ch104m //ch104m IMU 驱动
│ ├── rviz_imu_plugin //rviz 惯导可视化插件,显示惯导图像
│ └── tl740d //tl740d 转角仪驱动
├── lidar
│ ├── ldlidar_stl_ros //乐动19 雷达驱动
│ ├── rslidar //速腾RS16、RS-Helios雷达驱动
│ └── wr_fslidar // 砝石FS-D10 雷达驱动
└── location
└── al_rtk_ros_driver // RTK570 接收机驱动
└── marvelmind // marvelmind 定位标签驱动
catkin_ws/src/launch/
├── autolabor_navigation_launch //导航launch
│ ├── launch
│ │ ├── real_environment //实车launch
│ │ │ ├── first_generation_base.launch //单雷达版本-传感器驱动
│ │ │ ├── first_generation_mapping.launch //单雷达版本-建图
│ │ │ ├── first_generation_navigation.launch //单雷达版本-导航
│ │ │ ├── rtk_tracking_basic_base.launch//RTK版本-传感器驱动
│ │ │ ├── rtk_tracking.launch //RTK版本-循迹
│ │ │ ├── second_generation_advanced_base.launch //双雷达版本-传感器驱动(含定位标签)
│ │ │ ├── second_generation_basic_base.launch //双雷达版本-传感器驱动
│ │ │ ├── second_generation_mapping.launch //双雷达版本-建图
│ │ │ ├── second_generation_multigoal_navigation.launch //双雷达版本-多点导航
│ │ │ ├── second_generation_navigation.launch //双雷达版本-导航
│ │ │ ├── second_generation_tracking.launch //双雷达版本-循迹
│ │ │ ├── third_generation_base.launch //多线雷达版本-传感器驱动
│ │ │ ├── third_generation_cartographer_3d.launch //多线雷达版本-建图
│ │ │ └── third_generation_navigation_3d.launch //多线雷达版本-导航
│ │ └── simulated_environment //模拟器launch
│ │ ├── common_stage_simulation.launch //模拟场景地图
│ │ ├── first_generation_base_simulation.launch
│ │ ├── first_generation_mapping_simulation.launch
│ │ ├── first_generation_navigation_simulation.launch
│ │ ├── second_generation_advanced_base_simulation.launch
│ │ ├── second_generation_basic_base_simulation.launch
│ │ ├── second_generation_driver_simulation.launch
│ │ ├── second_generation_mapping_simulation.launch
│ │ ├── second_generation_multicar_following_simulation.launch //多车跟随
│ │ ├── second_generation_multicar_navigation_simulation.launch //多车导航
│ │ ├── second_generation_multigoal_navigation_simulation.launch //多目标导航
│ │ ├── second_generation_navigation_simulation.launch
│ │ └── second_generation_tracking_simulation.launch
│ ├── map //建图保存的地图文件
│ │ ├── map_3d.pbstream //3d slam 地图文件,用于定位,不可修改(保存地图后生成)
│ │ ├── map_3d.pgm //3d slam 地图文件,用于导航,可修改(保存地图后生成)
│ │ ├── map_3d.yaml //map_3d.pgm 的解释文件(保存地图后生成)
│ │ ├── map.pbstream //2d slam 地图文件,用于定位导航,不可修改
│ │ ├── map_simulation.pbstream //模拟器地图文件
│ │ ├── simulation_stage.png //模拟器环境地图
│ │ └── simulation_stage.yaml //simulation_stage.png 的解释文件
│ ├── params //配置文件
│ │ ├── cartographer
│ │ │ ├── first_generation_location.lua //单雷达版本-定位
│ │ │ ├── first_generation_mapping.lua //单雷达版本-建图
│ │ │ ├── map_builder.lua //cartographer 配置文件
│ │ │ ├── map_builder_server.lua //cartographer 配置文件
│ │ │ ├── pose_graph.lua //cartographer 配置文件
│ │ │ ├── second_generation_location.lua //双雷达版本-定位
│ │ │ ├── second_generation_mapping.lua //双雷达版本-建图
│ │ │ ├── second_generation_multicar_location.lua //双雷达版本-多车定位(模拟器)
│ │ │ ├── third_generation_location.lua //多线雷达版本-定位
│ │ │ ├── third_generation_mapping.lua //多线雷达版本-建图
│ │ │ ├── trajectory_builder_2d.lua //cartographer 配置文件
│ │ │ ├── trajectory_builder_3d.lua //cartographer 配置文件
│ │ │ └── trajectory_builder.lua //cartographer 配置文件
│ │ ├── common
│ │ │ ├── back_lidar_config.yaml //后雷达过滤配置文件
│ │ │ └── front_lidar_config.yaml //前雷达过滤配置文件
│ │ └── navigation
│ │ ├── costmap //代价地图配置文件
│ │ │ ├── 3d_global_costmap_params.yaml //3d slam 全局代价地图
│ │ │ ├── 3d_local_costmap_params.yaml //3d slam 局部代价地图
│ │ │ ├── one_laser_global_costmap_params.yaml //单雷达版本-全局代价地图
│ │ │ ├── one_laser_local_costmap_params.yaml //单雷达版本-局部代价地图
│ │ │ ├── two_laser_global_costmap_params_for_tracking.yaml //双雷达版本-循迹-全局代价地图
│ │ │ ├── two_laser_global_costmap_params.yaml //双雷达版本-全局代价地图
│ │ │ └── two_laser_local_costmap_params.yaml //双雷达版本-局部代价地图
│ │ ├── global_planer //全局规划配置文件
│ │ │ ├── global_planner_params.yaml //用于导航
│ │ │ ├── navfn_params.yaml //用于多车(模拟器)
│ │ │ └── tracking_planner_params.yaml //用于循迹
│ │ ├── local_planer //局部规划配置文件
│ │ │ ├── navigation_teb_local_planner_params.yaml //用于导航
│ │ │ └── tracking_teb_local_planner_params.yaml //用于循迹
│ │ └── move_base //ROS Navigation 配置文件
│ │ ├── navigation_move_base.yaml //用于导航
│ │ └── tracking_move_base.yaml //用于循迹
│ └── rviz //rviz配置文件
│ ├── 3d_mapping.rviz //3d slam-建图
│ ├── 3d_navigation.rviz //3d slam-导航
│ ├── first_generation_create_map.rviz //单雷达版本-建图
│ ├── first_generation_navigation.rviz //单雷达版本-导航
│ ├── second_generation_create_map.rviz //双雷达版本-建图
│ ├── second_generation_multicar_navigation.rviz //双雷达版本-多车导航(模拟器)
│ ├── second_generation_multigoal_navigation.rviz //双雷达版本-多点导航
│ ├── second_generation_navigation.rviz //双雷达版本-导航
│ └── second_generation_tracking.rviz //双雷达版本-循迹
└── autolabor_test_launch //测试
├── launch
│ ├── car_test.launch //键盘遥控
│ ├── 2dlidar_test.launch //单线激光雷达测试
│ ├── 3dlidar_test.launch //多线激光雷达测试
│ ├── imu_test.launch //惯导测试
│ ├── kinect2_test.launch //深度相机测试
│ ├── robot_calibration.launch //AP1标定
│ └── rtk_test.launch //RTK测试
│ └── tag_test.launch //定位标签测试
└── rviz //rviz配置文件
├── 3dlidar.rviz //多线激光雷达测试
├── car.rviz //键盘遥控
├── fslidar.rviz //单线雷达测试
├── robot_calibration.rviz //AP1标定
└── rtk_test.rviz //RTK测试
└── tag.rviz //定位标签测试
catkin_ws/src/mapping/ //建图源码
├── cartographer //cartographer GPU 加速版本
├── cartographer_ros//cartographer算法源码-适配ROS
catkin_ws/src/navigation/ //ROS Navigation 源码
├── amcl //粒子滤波定位
├── base_local_planner //局部规划
├── carrot_planner //全局规划
├── clear_costmap_recovery //恢复行为
├── costmap_2d //障碍物地图
├── dwa_local_planner //dwa局部规划
├── fake_localization //OS中未使用
├── global_planner //全局规划
├── location_fusion //定位融合(定位标签/RTK+里程计)
├── loop_path_planner //循迹全局规划
├── map_server //地图服务
├── move_base //movebase
├── move_slow_and_clear //恢复行为
├── multi_car_goal //多车-前车向后车发目标(模拟器)
├── nav_core //导航核心接口
├── navfn //全局规划
├── navigation //ROS Navigation元
├── path_rviz_plugin //循迹rviz插件功能按钮组
├── path_server //用于循迹中录制路线
│ ├── path_data
│ │ ├── default_path.path //循迹中保存的路径数据
├── record_path_planner //循迹全局规划
├── rotate_recovery //恢复行为
├── teb_local_planner //局部规划
└── voxel_grid //用于障碍物地图
catkin_ws/src/simulation/ //模拟器
├── autolabor_description //机器人模型
│ ├── launch
│ │ ├── display_autolabor_mini.launch
│ │ └── display_autolabor_pro1.launch
│ ├── meshes
│ │ ├── autolabor_mini.stl
│ │ ├── pro1_body_color.dae //AP1模型文件-主体
│ │ └── pro1_wheel_color.dae //AP1模型文件-轮子
│ ├── rviz
│ │ └── urdf.rviz
│ └── urdf
│ ├── autolabor_mini.urdf
│ ├── second_generation_model.xacro //双雷达版本-机器人描述(类似urdf)
│ └── third_generation_model.xacro //多线雷达版本-机器人描述(类似urdf)
├── autolabor_simulation_base //机器人底盘模拟
├── autolabor_simulation_lidar //雷达模拟
├── autolabor_simulation_location //定位标签模拟
├── autolabor_simulation_object //运动物体模拟
└── autolabor_simulation_stage //场景模拟
catkin_ws/src/tool/
├── autolabor_keyboard_control //键盘控制(必须要插实体键盘)
├── cartographer_initialpose //cartographer初始化定位
├── laser_proc //雷达驱动
├── joy_to_twist //手柄转速度驱动包
├── navi_multi_goals_pub_rviz_plugin //rviz插件-多点导航
├── rviz_autolabor_calibration //rviz插件-AP1标定
├── rviz_keyboard_twist //rviz插件-键盘控制
└── rviz_navigation_tools //rviz插件-多车导航工具,切换机器人(模拟器)
script //执行脚本
├── 3d_suit //多线雷达版本
│ ├── create_map_start
│ ├── create_map_stop
│ ├── navigation_start
│ └── navigation_stop
├── box_suit //单雷达版本
│ ├── create_map_start
│ ├── create_map_stop
│ ├── navigation_start
│ └── navigation_stop
├── common
│ ├── add_keyboard_udev //用于键盘控制,加键盘权限
│ └── rebuild //工作空间编译脚本
├── simulation //模拟器
│ ├── create_map_start
│ ├── create_map_stop
│ ├── navigation_start
│ ├── navigation_stop
│ ├── tracking_start
│ └── tracking_stop
├── test //测试
│ ├── car_test
│ ├── fslidar_test
│ ├── imu_test
│ ├── kinect2_test
│ ├── pico_test
│ ├── robot_calibration
│ ├── rplidar_test
│ ├── rslidar_test
│ └── tag_test
└── track_suit //双雷达版本
├── create_map_start
├── create_map_stop
├── navigation_start
├── navigation_stop
├── tracking_start //开始循迹
└── tracking_stop //停止循迹
```