# 2020任务总结 **Repository Path**: harryzhangabc/project_summary_2020 ## Basic Information - **Project Name**: 2020任务总结 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-01-26 - **Last Updated**: 2021-01-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 2020 任务总结 #### 2020.02:在x86虚拟机上安装openeuler和ROS 链接:https://gitee.com/harryzhangabc/OpenEuler-ROS 任务状态:完成ROS_COMM编译 #### 2020.03:配合邸老师进行cartographer调参和测试,自制小工具调参 链接:https://gitee.com/harryzhangabc/openeuler_cartographer/tree/scripts 任务状态:完成 #### 2020.04-2020.07:在toybrick-rk3399prod上编译linux-kernel,并植入USB-NET功能,通过TYPEC与ROS通信 链接1:https://gitee.com/harryzhangabc/ros_bridge-and-catographer-setup 链接2:https://gitee.com/harryzhangabc/rk3399-kernel 任务状态:完成 #### 2020.04~2020.12(其间):为了测试调参结果、usb-net功能和cartographer移植,制作的低成本的四驱测试平台 链接1:https://gitee.com/harryzhangabc/cartographer-stm32 链接2: https://gitee.com/harryzhangabc/cartographer-stm32h7 任务状态:测试平台搭建完成,经测试支持各类建图导航调参、测试任务 #### 2020.07~2020.12:在脱离ROS的情况下,独立编译运行完整版的cartographer实现建图和导航 ##### 任务目标:在脱离ROS的情况下,在openeuler上独立编译运行完整版的cartographer实现建图和导航。 *实现方法:cartographer_ros是cartographer和ros的一个桥梁,cartographer_ros通过ros获得传感器数据,打包起来按照顺序输入cartographer并从cartographer获取相对坐标的变换数据通过cartographer_ros输出到TF变换。如果,此时保持cartographer_ros原封不动,对ros进行改造,使原来的ros变成一个"fake ros",首先把ros"多余"的部分清空,变成空循环,优化程序执行效率,然后再把ros的数据接口、定时器、rosbag等所有重要原始.c文件都打包起来把他们放在一起编译,最后把数据像原来ros的方式"喂"给cartographer_ros并加入ros_bridge,这样既不会丢失输入、输出原始ros的格式,也可以实现所有cartographer_ros的功能。* ***源码链接:https://gitee.com/harryzhangabc/cartographer_standalone*** ##### 为了达成方法,需要解决的问题 - [x] 1.编译cartographer和ceres solver - [x] 2.编译激光雷达驱动 - [x] 3.移植ROS定时器基础服务 - [x] 4.移植ROS多线程通讯管理器、任务调度器、缓存池机制 - [ ] 5.移植ROS话题管理器 - [ ] 6.使用CPP-ROS_BRIDGE对接ROS内部回环实现与外部通讯 - [ ] 7.通过激光雷达向cartographer_ros传输数据 - [ ] 8.接收cartographer_ros数据并处理 ##### 现在遇到的问题: 1.ROS话题管理器依赖XMLRPC,现在不需要XMLRPC,需要将这部分源码剥离再编译。 ##### 预期之后可能会出现的问题 1.cartographer对时间同步依赖较高,可能会出现数据更新延迟、算法跟踪失败的问题(后期优化问题)。 2.cpp-ros_bridge兼容性未知,这个问题可能在内部回环对接ros_bridge后出现。