1. 项目概述从“六足”到“智能移动平台”的跨越Hexapod中文常译为“六足机器人”这名字听起来就带着一股浓浓的科幻感和硬核技术味儿。我第一次接触这个概念还是在大学实验室里看着一个由舵机、亚克力板和单片机组成的“大蜘蛛”在地上笨拙地挪动当时觉得这玩意儿除了炫酷好像没啥实际用处。但十几年过去了随着开源硬件、嵌入式系统以及控制算法的飞速发展Hexapod早已从一个极客玩具演变成了一个集机械设计、电子控制、软件编程和人工智能于一体的综合性研究与应用平台。简单来说Hexapod就是一个拥有六条腿的机器人。这个结构模仿了自然界中昆虫如蜘蛛、蚂蚁的行走方式其核心魅力在于极高的地形适应性和运动冗余度。与轮式或履带式机器人不同六足机器人可以通过协调每条腿的抬起、摆动和落地实现在崎岖不平、有障碍物甚至松软的地面上稳定行走。它不依赖连续平整的路面理论上只要腿能踩到支点它就能前进。这使得它在野外勘探、灾难救援、复杂环境巡检等领域有着独特的应用潜力。这个项目适合谁呢如果你是机器人爱好者、自动化或机电专业的学生、创客或者是对运动控制、逆向运动学、多传感器融合感兴趣的开发者那么亲手打造一个Hexapod将是一次无与伦比的学习和实践之旅。它不像做一个简单的轮式小车那样“直来直去”你需要真正思考“步态”是什么如何让18个甚至更多关节协同工作如何让机器人感知自身姿态和环境。整个过程会逼着你把书本上的理论——比如坐标系变换、PID控制、滤波算法——变成一行行实实在在的代码和一次次精密的调试。接下来我将以一个资深“踩坑者”的身份带你深度拆解Hexapod从设计到动起来的全流程。我们会避开那些华而不实的理论堆砌直接聚焦于工程实现中的核心难题、实用工具和那些只有亲手做过才会知道的“坑”。2. 核心设计思路与架构选型在动手画第一张图纸或写第一行代码之前我们必须把顶层设计想清楚。Hexapod的设计不是简单的零件堆砌而是一个系统工程。你的设计选择将直接决定后续开发的难度、机器人的性能以及你的钱包厚度。2.1 自由度配置3DOF还是4DOF这是第一个关键决策点决定了每条腿的灵活性和复杂度。3自由度3DOF这是最经典和流行的配置。每条腿有三个旋转关节通常称为“髋关节”控制腿的前后摆动、“大腿关节”控制腿的上下抬起和“胫骨关节”控制小腿的伸展。3DOF的腿足以让机器人的脚掌在三维空间内到达一个较大的工作空间能够实现所有基本的步态三角步态、波动步态等。它的优点是结构相对简单所需舵机数量少18个控制算法成熟是新手入门和大多数应用的首选。4自由度4DOF在3DOF的基础上在“髋关节”处增加一个旋转自由度使得整条腿可以绕垂直轴旋转。这赋予了机器人脚掌在落地后仍能微调方向的能力可以实现更复杂的动作比如横向平移、原地旋转时更小的转弯半径甚至模拟一些更复杂的生物运动。但代价是舵机数量增加到24个机械结构更复杂控制算法难度呈指数级上升成本和重量也大幅增加。我的选择与建议对于绝大多数首次建造Hexapod的朋友强烈建议从3DOF开始。18个舵机已经是一个不小的挑战协调控制、供电、布线。3DOF足以让你透彻理解Hexapod运动控制的所有核心原理。等你完全掌握了3DOF觉得它限制了你的想象力时再考虑升级到4DOF也不迟。我见过太多项目因为一开始追求“高大全”而烂尾在复杂的机械装配和无法调试的控制代码上。2.2 驱动方案舵机 vs 步进电机 vs 无刷电机驱动关节的动力源是机器人的肌肉。舵机Servo绝对的主流和首选。它是一个集成了电机、减速齿轮组、控制电路和位置反馈的闭环系统。你只需要发送一个目标角度信号通常是PWM脉冲它就会自己转动到那个位置并保持。优点是控制极其简单、集成度高、种类丰富从几块钱的塑料齿轮到上百公斤·厘米扭矩的金属齿轮舵机。缺点是存在死区、回差高端舵机价格昂贵。步进电机Stepper开环控制通过脉冲数控制旋转角度。优点是扭矩大、位置精度高在不失步的前提下、成本可能低于同等扭矩的高端舵机。但致命缺点是控制复杂需要额外的驱动板如A4988、TMC2208并且没有位置反馈一旦失步负载突然变大导致电机没跟上脉冲机器人姿态就完全错误了且无法自知。这在对可靠性要求高的动态行走中是灾难性的。无刷电机BLDC编码器这是高性能机器人如波士顿动力的方案。扭矩大、转速高、效率高。但需要复杂的FOC驱动板、高精度编码器以及更高级的控制算法力矩控制。成本极高开发难度巨大不适合个人或初级团队。实操心得舵机选购避坑指南扭矩是王道不要只看商家标称的“公斤·厘米”。计算一下你的机器人单腿最坏情况下的负载整机重量/3再考虑动态冲击然后乘以力臂长度从关节到脚掌的距离留出至少2倍以上的安全余量。一个总重2公斤的Hexapod髋关节舵机扭矩最好在15kg·cm以上。金属齿轮是必须的塑料齿轮舵机在反复受力、尤其是受到冲击时极易扫齿。一次摔机可能就报销一堆舵机。金属齿轮不一定全部但核心受力齿轮必须是金属的可靠性高得多。关注供电电压和电流很多舵机标称电压范围是4.8V-6.8V。在7.4V2S锂电池下工作其速度和扭矩会有显著提升但发热也会增加务必做好散热。18个舵机同时工作峰值电流可能高达10A以上你的电源和线材必须能承受。总线舵机 vs 独立PWM舵机总线舵机如Dynamixel、STS3215通过一条总线TTL/RS485串联控制只需2根信号线布线极其简洁且自带角度、温度、负载反馈。但单价昂贵。独立PWM舵机需要主控提供18路独立的PWM信号布线像“蜘蛛网”但成本低。新手可从PWM舵机入手理解原理后再考虑总线舵机升级。2.3 主控大脑性能与易用性的权衡主控制器负责运行步态算法、处理传感器数据、生成舵机控制信号。Arduino Mega 2560经典入门选择。拥有54个数字IO口和15个PWM口刚好能满足18个PWM舵机的控制需额外PWM扩展板或复用。优点是生态丰富、易于编程。缺点是性能有限16MHz 8位浮点运算慢难以运行复杂的逆向运动学实时计算和滤波算法。适合实现预设的固定步态。STM32系列如F4/F7强烈推荐。ARM Cortex-M内核主频上百MHz带有硬件FPU浮点运算单元性能碾压Arduino。使用HAL库或CubeMX配置开发也不算太难。PWM通道丰富还能轻松处理IMU惯性测量单元数据。是平衡性能与开发难度的最佳选择。树莓派Raspberry Pi运行完整的Linux系统性能强大可以轻松跑Python、OpenCV甚至ROS。但它是一个“非实时”系统任务调度可能导致控制信号发送的周期不稳定jitter这对于要求精确时序的舵机控制是致命的。通常采用“树莓派上层决策 单片机底层实时控制”的架构树莓派计算步态和路径通过串口将目标角度发送给单片机由单片机生成精准的PWM信号。ESP32双核处理器主频高达240MHz集成Wi-Fi和蓝牙性能不错。但其Arduino核心下的实时性依然不如纯单片机。适合需要无线遥控或数据传输的轻量级应用。我的架构选择我目前的Hexapod采用STM32F407作为核心主控负责所有实时任务以500Hz的频率运行逆向运动学计算、PID姿态控制、读取IMU数据进行传感器融合。同时我通过串口连接一个树莓派 Zero 2W它运行ROS节点处理摄像头图像用于视觉跟随或SLAM并通过ROS话题将高级指令如“向前走0.5米”、“左转30度”发送给STM32。这样既保证了控制的实时性和可靠性又拥有了强大的智能扩展能力。3. 机械结构设计与实现要点机械结构是机器人的骨骼它决定了机器人的强度、重量、运动范围和可靠性。自己设计加工还是购买套件这是第二个关键决策。3.1 自制 vs 套件购买商业套件优点是省心所有零件激光切割的亚克力/碳纤维板、螺丝、铜柱、舵盘都配套齐全通常还有组装教程。能让你快速得到一个能动的平台专注于软件和控制算法的学习。缺点是成本较高且结构固定难以个性化修改。完全自主设计使用CAD软件如Fusion 360, SolidWorks自己设计每一个零件然后通过3D打印、激光切割或CNC加工出来。优点是你可以完全优化设计比如为走线预留空间、设计轻量化结构、调整腿的长度和比例以获得最佳运动性能。缺点是耗时极长对机械设计知识要求高并且需要 access to 加工设备。折中方案我推荐一种混合模式。你可以从开源社区如GitHub上的很多Hexapod项目下载成熟的设计文件通常是STL或DXF格式。先用这些文件3D打印或激光切割出你的第一版机器人。在调试和使用的过程中你会发现原设计的不足比如某个连接件太容易断裂、布线空间不足。这时你再利用CAD软件对这些特定零件进行重新设计和强化。这样既能快速启动又能深入参与机械优化。3.2 设计核心原则刚度、重量与工作空间刚度优先Hexapod在行走时腿部是主要的受力部件。任何关节或连杆的形变都会导致脚掌位置误差轻则步态不稳重则摔倒。设计时对于承重关节如髋关节、大腿关节要采用更厚的材料如4mm以上亚克力或碳纤维板并使用多个轴承或轴套来减少摆动。3D打印件建议使用PETG或ABS材料填充率不低于40%。极致轻量化机器人的总重量直接决定了所需舵机的扭矩和整机功耗。在保证刚度的前提下尽可能“偷轻”。例如使用镂空设计、将非承重结构换成轻质材料如尼龙、选择重量更轻的螺丝和铜柱。一个有效的技巧是将电池这个最重的部件尽量靠近机器人的几何中心即机身中部下方这有助于降低转动惯量让机器人转身更灵活。工作空间仿真在CAD软件中你必须模拟每条腿的运动范围。将舵机的有效角度范围通常是0-180度但安全范围建议控制在30-150度代入你的连杆模型看看脚掌末端的可达空间是否是一个饱满的球体或椭球体。理想的工作空间应该能让脚掌在机身下方有足够的前后、左右和上下移动范围以支撑各种步态。如果工作空间太扁或太小你的机器人可能迈不开步子。3.3 装配与布线实战技巧装配过程是对设计的第一次检验这里坑最多。顺序很重要不要一上来就把所有螺丝拧死。先组装单条腿的所有关节手动转动一下检查是否有干涉、运动是否顺滑。然后将六条腿分别安装到机身上同样检查。最后再统一紧固所有螺丝。建议在螺丝螺纹上涂一点点螺丝胶蓝色中等强度防止长期振动后松动。舵机中位校准这是至关重要且极易出错的一步。在将舵盘安装到舵机输出轴上之前必须让舵机转动到它的机械中位通常是90度。方法是用控制器发送一个中位PWM信号例如对于标准舵机1.5ms脉宽。然后将舵盘以“尽可能对称”的角度插到输出轴上。如果中位没对准你的腿在初始位置就是歪的逆向运动学计算会全部错误。我的方法是编写一个简单的校准程序让所有舵机转到90度然后再安装舵盘和连杆。布线艺术18根舵机线是噩梦。我的方案是分组捆扎将每条腿的3根舵机线在腿内部就用细扎带捆好。使用集线板购买或制作一个多路舵机供电与信号集线板。将所有舵机的VCC和GND分别并联到集线板的大电流焊盘上信号线则连接到对应的插针。这样电源管理更清晰。电源走线要粗从电池到集线板的主电源线必须使用足够粗的硅胶线例如16AWG以减少压降和发热。留有余量线缆长度要留出足够的余量确保腿在运动到极限位置时不会被拉紧或扯到。4. 运动控制算法从理论到步态这是Hexapod的灵魂也是最烧脑的部分。核心是解决一个问题如何将“机身想要的运动”转化为“18个舵机各自应该转动的角度”4.1 逆向运动学把坐标变成角度这是最核心的数学工具。对于一条3DOF的腿我们建立一个三维坐标系。我们关心的是“脚掌末端点”相对于“髋关节原点”的位置(x, y, z)。逆向运动学就是根据这个目标(x, y, z)反推出三个关节角(θ1, θ2, θ3)。以一个最常见的结构为例髋关节控制左右摆动绕Z轴大腿关节控制前后摆动绕Y轴胫骨关节控制小腿伸展绕Y轴。我们可以通过几何关系推导出公式。这里不展开复杂的推导但给出一个可直接使用的Python计算函数示例它清晰地展示了从坐标到角度的计算过程import math def inverse_kinematics(x, y, z, L1, L2): 计算3DOF腿的关节角度简化模型。 假设髋关节角θ1控制左右atan2(y, x)大腿和胫骨关节在同一平面运动。 参数 x, y, z: 脚掌末端相对于髋关节的坐标。 L1: 大腿长度。 L2: 小腿长度。 返回 theta1, theta2, theta3: 髋关节、大腿关节、胫骨关节角度弧度。 # 1. 计算髋关节角度 (绕Z轴旋转) theta1 math.atan2(y, x) # 投影到腿的摆动平面由髋关节角度决定 # 计算在摆动平面内的投影距离 r math.sqrt(x**2 y**2) # 在摆动平面内目标点相对于大腿关节的坐标为 (r, z) # 注意这里假设大腿关节原点在髋关节正下方且初始位置水平向前。 # 2. 计算大腿-小腿平面内的角度几何法 # 计算末端到髋关节在平面内的直线距离 D math.sqrt(r**2 z**2) # 检查是否可达 if D (L1 L2) or D abs(L1 - L2): raise ValueError(目标点超出机械臂工作空间) # 使用余弦定理计算大腿关节与水平面的夹角 # 首先计算大腿关节与连接线髋到脚掌的夹角 cos_alpha (L1**2 D**2 - L2**2) / (2 * L1 * D) alpha math.acos(max(min(cos_alpha, 1), -1)) # 防止浮点误差 # 连接线与水平面的夹角 phi math.atan2(z, r) # 大腿关节角度相对于水平面 theta2 phi alpha # 3. 计算胫骨关节相对于大腿的角度 cos_beta (L1**2 L2**2 - D**2) / (2 * L1 * L2) beta math.acos(max(min(cos_beta, 1), -1)) theta3 beta - math.pi # 因为小腿通常向内弯曲所以是补角 return theta1, theta2, theta3注意事项上述代码是一个高度简化的模型它假设了大腿和小腿的初始位置在同一平面内。在实际的Hexapod设计中关节的安装方向舵机0度时的朝向千差万别。因此最关键的一步是根据你实际的机械结构建立正确的Denavit-Hartenberg (D-H) 参数表并推导出属于你自己的逆向运动学公式。你可以使用符号计算库如SymPy来辅助推导避免手动计算错误。4.2 步态生成让六条腿有序舞蹈步态是腿抬起和放下的时序模式。最常见的两种是三角步态将六条腿分为两组1-3-5和2-4-6同组的三条腿同时抬起、摆动、放下另一组的三条腿支撑身体。这种步态最稳定因为任何时候都有三条腿构成一个稳定的三角形支撑面。速度较慢适合重载或崎岖地形。波动步态六条腿按顺序依次抬起和放下像波浪一样从前传到后或从后传到前。这种步态更平滑速度更快但任何时刻都只有一条或两条腿在摆动支撑点少稳定性要求高。如何编程实现一个三角步态定义步态周期和相位设定一个周期时间T例如2秒。将T分为摆动相和支撑相。对于三角步态摆动相和支撑相各占50%。为两组腿分配相反的相位一组在摆动时另一组在支撑。规划脚掌轨迹这是步态自然与否的关键。摆动相的轨迹不能是一条直线从A点到B点那样会使得脚掌在抬起和放下时刮擦地面。一个典型的轨迹是抬起阶段脚掌快速垂直向上抬起一定高度。摆动阶段脚掌在空中沿一条平滑的曲线如正弦曲线或贝塞尔曲线向前移动。放下阶段脚掌缓慢垂直下降至地面。 这个轨迹可以用参数方程来描述其高度z坐标是前进距离x坐标的函数。计算逆解并发送在每一个控制周期例如5ms根据当前时间在步态周期中的位置计算出每组腿处于哪个阶段进而计算出每条摆动腿的脚掌目标坐标(x, y, z)。将这个坐标代入逆向运动学公式得到18个舵机的目标角度。最后将这些角度值转换为PWM脉宽通过定时器发送给舵机。4.3 姿态稳定与传感器融合一个只会按固定程序走直线的Hexapod是“盲人”。要想在凹凸不平的地面行走甚至被推一下还能保持平衡就需要传感器反馈。IMU惯性测量单元核心传感器通常包含三轴加速度计和三轴陀螺仪。加速度计测量重力方向可以估算俯仰和横滚角但有高频噪声陀螺仪测量角速度积分得到角度但存在漂移积分误差会随时间累积。传感器融合算法我们需要结合两者的优点。最经典且有效的是互补滤波更高级的用卡尔曼滤波。以互补滤波为例其思想非常简单却极其有效估算角度 α * (上一时刻估算角度 陀螺仪角速度 * Δt) (1 - α) * 加速度计估算角度其中α是一个介于0和1之间的滤波系数如0.98。这个公式用陀螺仪做短期角度预测响应快用加速度计做长期角度校正消除陀螺仪漂移。在STM32上只需几行代码就能实现。闭环姿态控制有了实时的机身俯仰/横滚角后我们就可以进行控制。例如我们希望机身始终保持水平。当IMU检测到机身向前倾斜时我们可以动态地微调所有脚掌的Z坐标——将身体前下方的脚掌稍微放低一点将身体后上方的脚掌稍微抬高一点产生一个扶正机身的力矩。这本质上是一个PID控制环以期望角度0度与实际角度之差作为误差计算出一个调整量叠加到步态生成的脚掌坐标上。5. 软件框架与代码实战一个好的软件架构能让调试事半功倍。我推荐采用“分层状态机”的架构。5.1 分层架构设计硬件抽象层封装所有对硬件的操作如PWM输出、串口读写、IMU数据读取I2C/SPI。提供统一的API如set_servo_angle(leg_id, joint_id, angle)get_imu_data()。这样更换主控或传感器时只需修改这一层。核心算法层包含逆向运动学函数库、步态生成器、姿态控制器PID、滤波器。这些是纯数学运算与硬件无关。应用逻辑层这是机器人的“大脑”。它实现一个状态机根据遥控器指令、传感器状态如是否跌倒来决定当前应该执行什么行为站立、行走、转弯、恢复姿势。它调用算法层提供的函数计算出目标角度再通过硬件抽象层驱动舵机。通信层处理与上位机如树莓派、电脑的通信接收指令速度、方向发送状态数据电池电压、关节角度、IMU数据。协议可以自定义简单的串口协议或使用ROS的Topic/Service。5.2 一个简单的状态机示例typedef enum { STATE_INIT, // 初始化转到初始姿势 STATE_STAND, // 站立保持 STATE_WALK, // 三角步态行走 STATE_TURN, // 原地转弯 STATE_FALLEN_RECOVERY // 跌倒恢复 } robot_state_t; robot_state_t current_state STATE_INIT; void main_control_loop(void) { read_sensors(); // 读取IMU、遥控器信号等 check_battery(); switch(current_state) { case STATE_INIT: move_to_initial_pose(); if (all_servos_reached_target()) { current_state STATE_STAND; } break; case STATE_STAND: // 站立时运行姿态控制PID微调脚掌高度以保持平衡 attitude_control(); if (rx_command CMD_WALK) { current_state STATE_WALK; gait_generator_reset(); // 重置步态发生器相位 } break; case STATE_WALK: if (imu_pitch 30.0f) { // 如果前倾过大判断为跌倒 current_state STATE_FALLEN_RECOVERY; break; } // 生成步态并计算逆解 gait_generator_update(); inverse_kinematics_for_all_legs(); send_servo_commands(); if (rx_command CMD_STOP) { current_state STATE_STAND; } break; case STATE_FALLEN_RECOVERY: execute_recovery_sequence(); // 执行一套预设的恢复动作 if (is_robot_upright()) { current_state STATE_STAND; } break; } }5.3 调试技巧与可视化工具调试18个关节的机器人是痛苦的没有好的工具寸步难行。串口打印大法虽然原始但永远有效。将关键变量如计算出的角度、IMU原始数据、PID输出通过串口打印到电脑用串口绘图工具如Serial Plotter in Arduino IDE, PlotJuggler可视化出来可以直观看到波形是否正确。上位机调试软件自己用PythonPyQt/PySide写一个简单的上位机或者使用ROS的RVIZ。通过无线串口如HC-05蓝牙模块或ESP32的Wi-Fi将机器人的所有关节角度、机身姿态实时发送到电脑在3D模型中同步显示出来。这能让你一眼看出逆向运动学计算是否正确步态是否协调。我强烈建议在项目早期就搭建这样一个可视化环境它能节省你90%的调试时间。单腿调试法不要一开始就调试六条腿。先将一条腿拆下来单独写程序控制它的三个关节让它能在三维空间里画圆、画方。确认这条腿的逆向运动学和硬件控制完全正确后再扩展到六条腿。6. 常见问题与故障排查实录这里记录了我踩过的最典型的坑希望你能绕过去。6.1 电源问题舵机乱抖、复位现象机器人行走时舵机突然不规则抖动或者主控制器不断重启。原因瞬间压降。当多个舵机同时启动或遇到阻力时电流需求骤增导致电源电压被拉低。如果电压低于舵机或主控的最低工作电压就会出现异常。排查与解决万用表监测在电池输出端接上万用表观察在机器人做剧烈动作时电压最低会掉到多少。如果低于舵机标称最低电压例如4.8V舵机掉到4.5V就必须处理。加大电容在电源输入端并联一个大容量的低ESR电解电容如1000μF 16V和几个陶瓷电容100nF。电容就像一个小水库在电流需求突增时提供瞬时补偿。优化电源布线确保从电池到舵机集线板的导线足够粗且接触良好。避免使用杜邦线传输大电流。分时启动在程序初始化时不要让所有舵机同时从中位开始转动。可以给每条腿的舵机加上几十毫秒的延迟错开启动峰值电流。6.2 运动不协调步态歪斜、打滑现象机器人走不直总是偏向一边或者脚掌在地面上打滑发出“吱吱”声。原因1舵机中位不一致。这是最常见的原因。即使你安装了校准程序不同舵机之间仍然存在微小的零点偏差。解决编写一个“舵机校准表”。让机器人处于一个已知的姿势例如所有腿垂直向下然后通过上位机发送微调指令逐个修正每个舵机的偏移量并将这些偏移量保存在主控的EEPROM或Flash中。每次上电初始化时加载这个校准表。原因2地面摩擦力不足。解决在脚掌末端粘贴硅胶垫、海绵或特制的橡胶脚垫增加摩擦力。也可以根据地面情况如地毯、木地板更换不同的脚掌材质。6.3 机械异响与抖动现象运动时发出“嘎吱”声或者到达目标位置后高频小幅度抖动。原因1机械干涉或过紧。连杆之间、螺丝与孔壁之间发生摩擦或挤压。解决仔细检查所有运动部位确保有足够的间隙。在轴和轴承之间可以加一点润滑脂。原因2PID参数不合适。如果你为舵机位置环编写了PID控制一些高级项目会这么做过高的P增益会导致系统震荡表现为抖动。解决降低比例增益P或者增加微分增益D来抑制震荡。更简单的方法是使用舵机内部的闭环它通常已经调校好了。6.4 通信延迟与控制周期不稳定现象用无线遥控或上位机控制时机器人反应迟钝或者动作卡顿。原因控制循环周期不稳定或者通信处理阻塞了主循环。解决使用定时器中断将核心控制循环读传感器、算逆解、发指令放在一个高优先级的定时器中断服务函数中。例如设置一个2ms的定时器中断确保控制周期绝对固定为2ms500Hz。非阻塞式通信在串口接收中断中只将数据存入缓冲区在主循环中解析。避免在中断或主循环中进行长时间的数据处理如字符串格式化。优化计算将浮点运算转换为定点运算使用查表法代替复杂的三角函数如sin,cos这些都能显著提高STM32等单片机的计算速度。建造一个Hexapod的旅程就像在微观世界里扮演一次造物主。从静态的零件到协调的生命每一个问题的解决都伴随着巨大的成就感。它教会你的远不止机器人技术本身更是系统思维、问题分解和坚韧调试的工程能力。当你看到它第一次稳稳地迈出第一步按照你的指令在桌面上巡弋时你会觉得所有那些对着电路图发呆、熬夜调试代码的夜晚都是值得的。这个项目没有绝对的终点加上摄像头它可以视觉跟随加上激光雷达它可以建图导航改进算法它可以跑跳跨越。这是一个真正能伴随你技术成长的开源平台。