当前位置: 首页 > article >正文

Ubuntu 24.04 环境实战:ROS 2 Kilted 实现 SLAM 建图与 Nav2 导航

一、构建地图1、安装依赖安装slam_toolbox算法库sudoaptinstallros-kilted-slam-toolbox安装TurtleBot3 全套支持包sudoaptinstallros-kilted-turtlebot3*2、使用清华源如果apt安装很慢请先配置清华源sudoaptinstallcurlgnupg2sudocurl-sSLhttps://raw.githubusercontent.com/ros/rosdistro/master/ros.key-o/usr/share/keyrings/ros-archive-keyring.gpgechodeb [arch$(dpkg --print-architecture)signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu noble main|sudotee/etc/apt/sources.list.d/ros2.list/dev/nullsudoaptupdate3、环境变量必须sudovim~/.bashrcexportTURTLEBOT3_MODELburgerexportGAZEBO_MODEL_PATH/opt/ros/kilted/share/turtlebot3_gazebo/models# 可选硬件加速exportLIBGL_ALWAYS_SOFTWARE0source~/.bashrc4、更新防火墙可选打开一个终端ros2 multicast receive打开另一个终端ros2 multicast send如果没有receive Hello World消息则需要更新防火墙sudoufw allowinproto udp to224.0.0.0/4sudoufw allowinproto udp from224.0.0.0/45、启动仿真查看可用的launch文件ls/opt/ros/kilted/share/turtlebot3_gazebo/launch/empty_world.launch.py spawn_turtlebot3.launch.py turtlebot3_dqn_stage2.launch.py turtlebot3_dqn_stage4.launch.py turtlebot3_world.launch.py robot_state_publisher.launch.py turtlebot3_dqn_stage1.launch.py turtlebot3_dqn_stage3.launch.py turtlebot3_house.launch.pysource/opt/ros/kilted/setup.bash# 空场景ros2 launch turtlebot3_gazebo empty_world.launch.py# world 场景ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py# house 场景ros2 launch turtlebot3_gazebo turtlebot3_house.launch.py注意需要配置小车模型环境变量才会有小车# burgerexportTURTLEBOT3_MODELburger# waffle_pi本文使用的小车exportTURTLEBOT3_MODELwaffle_pi仿真启动后创建了以下节点/robot_state_publisher /ros_gz_bridge仿真启动后创建了以下话题/clock /cmd_vel /imu /joint_states /odom /parameter_events /robot_description /rosout /scan /tf /tf_static6、运行建图ros2 launch slam_toolbox online_async_launch.py use_sim_time:True7、RViz可视化ros2 run rviz2 rviz2在RViz中进行设置Fixed Frame设置为map添加Map话题/map、LaserScan话题/scan、TF注意需要在仿真启动时添加小车才能扫描到地图8、控制机器人移动# 键盘控制ros2 run turtlebot3_teleop teleop_keyboard手动控制机器人走完一圈地图9、地图保存ros2 run nav2_map_server map_saver_cliimage: map_1774097735.pgm mode: trinary resolution: 0.050 origin: [-0.938, -2.073, 0] negate: 0 occupied_thresh: 0.65 free_thresh: 0.196二、自主导航使用Nav2导航sudoaptinstallros-kilted-navigation2sudoaptinstallros-kilted-nav2-bringup1、启动仿真ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py2、启动导航ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:True map:/home/sam/map_1774097735.yaml4、设定机器人位置在 RViz 工具栏选择2D Pose Estimate工具在地图上点击机器人所在位置拖动鼠标设定朝向。4、设定目标位置在 RViz 工具栏选择Nav2 Goal工具在地图上点击机器人所在位置拖动鼠标设定朝向。5、导航结果只需要设置好机器人位置与目标位置机器人就会自主导航到目标位置三、补充SALM 介绍SLAM建图是机器人学和计算机视觉中的核心问题。SLAM是同步定位与地图构建的缩写。简单来说SLAM要解决的是当一个移动机器人或设备进入一个完全未知的环境时它如何一边确定自己“在哪里”定位一边绘制出周围环境的“地图”建图。这两个问题相互依赖形成一个闭环要精确建图需要准确的定位而要准确定位又需要一个精确的地图。SLAM算法就是为了同时解开这个“先有鸡还是先有蛋”的难题。1、SLAM的核心流程一个典型的SLAM系统通常包含以下几个步骤传感器数据读取从相机、激光雷达、惯性测量单元等传感器获取原始数据。前端里程计通过对比相邻时刻的传感器数据如图像特征点、激光点云估算机器人的相对运动位姿变化。这一步也叫前端容易产生累积误差。后端优化接收前端估算的位姿和回环检测信息通过图优化或滤波等方法对全局的轨迹和地图进行修正消除累积误差。这一步也叫后端。回环检测判断机器人是否回到了之前到过的位置。一旦检测成功就能建立一个强约束大幅修正累积误差保证地图的全局一致性。建图根据优化后的位姿将传感器数据融合成不同用途的地图如栅格地图、点云地图、拓扑地图等。2、SLAM的主要分类根据使用的核心传感器不同SLAM主要分为两大类2.1、激光SLAM这是早期最成熟、应用最广泛的SLAM技术主要使用2D或3D激光雷达。原理利用激光雷达测距精度高、角度分辨率高的特点通过匹配不同时刻的激光点云数据如ICP算法来估计运动。优点精度高、速度快、稳定性好计算量相对较小地图栅格地图直观且便于导航规划。在室内服务机器人、扫地机器人、工业AGV等领域应用广泛。缺点缺乏语义信息在长直走廊或环境特征稀疏的场景下容易“走丢”退化场景。3D激光雷达成本较高。代表性算法Gmapping、Hector-SLAM、Karto-SLAM、Cartographer谷歌开源支持2D和3D。2.2、视觉SLAM视觉SLAM主要使用单目、双目或深度相机RGB-D作为传感器。原理模拟人类视觉从图像中提取特征点如ORB特征通过特征点的匹配和三角测量来估算运动。单目相机存在尺度不确定性双目和RGB-D可直接获取深度信息。优点传感器成本低、体积小能获取丰富的纹理、颜色和语义信息能识别出“这是一把椅子”而非一个障碍物便于物体识别和场景理解。缺点对环境光照敏感过暗或过亮会失效计算量大依赖纹理特征纯白墙壁容易失败深度信息精度通常不如激光雷达。代表性算法ORB-SLAM系列功能全面支持单目、双目、RGB-D、MonoSLAM早期经典、LSD-SLAM半稠密、SVO半直接法。2.3、多传感器融合SLAM近年来单一的传感器难以应对所有复杂场景多传感器融合成为主流趋势。常见组合激光雷达 惯性测量单元LIO-SAM、视觉 惯性测量单元VINS-Fusion视觉惯性系统、激光雷达 视觉 惯性测量单元。惯性测量单元能提供高频的运动先验在传感器数据短暂失效时起重要作用显著提升系统的鲁棒性。3、SLAM地图的类型SLAM构建的“地图”并非单一的图片根据用途不同有多种表现形式栅格地图将环境离散成网格每个网格标明是“空闲”、“占用”还是“未知”。最常用于导航如扫地机器人。点云地图由海量的三维点构成直观但体积大不能直接用于导航常用于展示、后期处理或路径规划。拓扑地图将环境抽象为“节点”如房间、路口和“边”连接路径强调连通性常用于高层次路径规划。语义地图在几何地图的基础上增加“标签”如门、桌子、行人让机器理解环境是迈向高级智能的关键。4、技术挑战与发展趋势尽管SLAM技术已经非常成熟但在实际应用中仍面临一些挑战动态环境场景中存在大量移动物体人、车传统算法假设环境静态动态物体会导致建图出现“鬼影”或定位漂移。长期运行随时间推移环境变化光照、季节、物体摆放如何实现长期稳定的重定位和地图更新是一个难题。大尺度场景在超大范围如整个城市运行时地图存储、计算效率和回环检测的实时性面临巨大挑战。与深度学习的结合利用深度学习提取更鲁棒的特征点、进行动态物体剔除、直接生成语义地图是当前研究和应用的热点方向。5、SALM 总结特性激光SLAM视觉SLAM传感器激光雷达单目/双目/RGB-D相机优点精度高、稳定、速度快、地图直观成本低、信息丰富、可识别语义缺点成本较高、缺乏语义、有退化场景易受光照影响、依赖纹理、计算量大地图形式栅格地图、点云稀疏/半稠密/稠密点云、网格典型应用扫地机器人、AGV、自动驾驶AR/VR、无人机、室内服务机器人总的来说SLAM是机器人实现自主移动的基石技术。在实际落地项目中多传感器融合已成为主流通过取长补短让机器人在各种复杂环境下都能稳定地“知道自己在哪并知道周围长什么样”。如果你有具体的应用场景如想做扫地机器人、自动驾驶、AR设备我可以为你推荐更合适的技术路线和开源方案。四、补充Turtlebot3TurtleBot3是韩国ROBOTIS公司开发的新一代开源移动机器人平台也是ROS机器人操作系统官方指定的教育科研平台。它继承了前代产品TurtleBot1和2的核心功能但在体积、成本和模块化方面做了重大改进是目前全球最受欢迎的ROS入门机器人之一。1、定位与特点TurtleBot3被设计为一款小巧、低价、完全可定制的ROS机器人平台主要用于机器人教育、学术研究和产品原型开发。它的核心特点包括特点说明体积超小Burger型号尺寸仅为138mm×178mm×192mm约是前代产品的1/4大小可轻松放入背包携带低成本相比前代产品大幅降低价格是市面上最经济的、配备360°激光雷达的SLAM移动机器人之一完全开源硬件电路图、PCB、3D CAD、固件和软件全部开源用户可自由下载、修改和分享模块化设计采用DYNAMIXEL智能舵机作为驱动轮易于组装、维护和更换结构可按需扩展ROS官方支持由Open Robotics管理品牌与ROS生态系统无缝集成软件资源丰富2、两个主要型号TurtleBot3目前提供两个核心型号分别面向不同应用需求规格项目Burger汉堡Waffle Pi华夫派定位入门级、紧凑型高性能、扩展型最大平移速度0.22 m/s0.26 m/s最大旋转速度2.84 rad/s (162.72 deg/s)1.82 rad/s (104.27 deg/s)最大负载15kg30kg尺寸长×宽×高138×178×192 mm281×306×141 mm重量约1kg约1.8kg续航时间约2小时30分约2小时主控单板机(SBC)Raspberry Pi 4兼容Jetson NanoRaspberry Pi 4兼容Jetson Nano微控制器(MCU)OpenCR1.032-bit ARM Cortex-M7OpenCR1.032-bit ARM Cortex-M7驱动舵机DYNAMIXEL XL430-W250-TDYNAMIXEL XM430-W210-T传感器360°激光雷达(LDS-02) 9轴IMU360°激光雷达(LDS-02) 9轴IMU 树莓派相机遥控器无RC-100B蓝牙遥控器选配简单来说Burger是性价比极高的入门选择适合学习SLAM、导航等基础ROS功能Waffle Pi增加了相机和更强的舵机适合开展视觉处理、物体识别、自动驾驶等更复杂的研究。3、核心硬件组成TurtleBot3的硬件体系结构清晰主要包含以下几个核心部分主控单板机SBC通常为Raspberry Pi 4也可换成Jetson Nano运行完整的ROS系统负责高层计算SLAM、导航、视觉处理等。微控制器MCU名为OpenCR1.0的开源控制板负责底层实时控制如读取传感器、驱动舵机、处理电机编码器等。板载9轴IMU惯性测量单元提供姿态信息。执行器两个DYNAMIXEL智能舵机直接驱动左右轮实现差速转向。这种舵机可反馈位置、速度、电流等信息控制精度高。核心传感器360°激光雷达LDS-02测距范围120mm~3500mm角度分辨率1°是SLAM建图和导航的核心传感器。9轴IMU包含三轴陀螺仪、三轴加速度计、三轴磁力计辅助定位和姿态估计。相机仅Waffle Pi800万像素树莓派Camera Module v2.1用于视觉感知任务。能源11.1V 1800mAh锂电池续航约2~2.5小时。4、软件与生态系统TurtleBot3的强大不仅在于硬件更在于其背后完整的软件生态ROS支持同时支持ROS1Melodic、Noetic和ROS2Foxy、Galactic、Humble、Jazzy等官方提供完整的驱动包和示例程序。核心功能开箱即用地支持SLAM建图Gmapping、Cartographer、自主导航Navigation Stack / Nav2、自动泊车、视觉跟随等功能。仿真支持提供完整的Gazebo仿真模型可在纯软件环境中开发和测试算法。应用扩展社区和官方提供了丰富的应用案例如多机器人编队、YOLO物体检测、ArUco标记追踪、家庭监控等。教学资源配套有《ROS机器人编程》等官方教材适合课程教学。5、适用场景基于其特点TurtleBot3主要应用于ROS教学与入门作为官方指定平台拥有最丰富的教程和社区支持是学习ROS的最佳硬件。SLAM与导航算法研究低成本验证激光/视觉SLAM、路径规划、自主避障等算法。机器人视觉应用Waffle Pi型号可用于物体识别、目标跟踪、自动驾驶AutoRace等研究。多机器人协作多个TurtleBot3可组成编队进行协同控制、队形保持等实验。快速原型验证在投入昂贵的定制机器人之前用TurtleBot3快速验证算法或系统方案的可行性。6、与其他版本的对比TurtleBot系列目前有多个版本版本特点TurtleBot12010年发布基于iRobot Roomba底盘历史意义重大TurtleBot22012年发布基于Yujin Robot的Kobuki底盘功能更完善TurtleBot32017年发布模块化、小型化、低成本是当前主流TurtleBot4由ClearPath Robotics开发基于iRobot Create3底盘功能更强但模块化程度不如TB3目前TurtleBot3凭借其极佳的性价比、强大的开源生态和灵活的扩展性仍是ROS学习和轻量级机器人研究的最佳选择之一。五、补充Nav2 导航Nav2是 ROS 2 社区官方推出的专业级移动机器人自主导航框架全称 Navigation2。作为 ROS 1 中经典导航栈 (Navigation Stack) 的继任者Nav2 继承了其 15 年的技术积累并针对 ROS 2 的架构特性进行了全新设计旨在帮助移动机器人在复杂环境中安全、可靠地从 A 点移动到 B 点。Nav2 的核心流程与 SLAM 紧密配合如下图所示精确位姿初始全局路径里程计数据路径执行状态反馈异常/完成传感器数据激光雷达/相机/IMU定位模块 AMCL估计机器人在已知地图中的位置地图服务器 Map Server提供先验地图或SLAM实时构建的地图全局规划器 Global Planner规划器服务器 Planner Server基于静态地图规划全局路径局部规划器 Local Planner控制器服务器 Controller Server结合动态障碍物生成实时控制指令速度指令cmd_vel机器人底盘执行运动行为树 BT Navigator编排与监控导航任务恢复行为 Recovery Server处理卡困、避障失败等异常简单来说SLAM 是帮助机器人在陌生环境中回答“我在哪里周围长什么样”并建立地图的过程而Nav2 则是在已知地图SLAM 建好的地图的基础上负责回答“我该如何到达那里路上遇到障碍怎么办”的问题两者相辅相成。1、Nav2 的核心架构与组件Nav2 采用了一种高度模块化的服务器架构。它将导航任务拆分成多个独立的功能服务器这些服务器通过行为树 (Behavior Tree, BT) 进行灵活编排与调度。这种设计的核心优势在于我们可以像“搭乐高”一样根据具体的机器人类型和应用场景轻松替换或定制其中的算法。其核心组件包括规划器服务器 (Planner Server)负责全局路径规划。它使用预先构建好的静态地图通常来自SLAM在宏观层面规划出一条从起点到目标点、能避开已知固定障碍物的最优路径。常用的算法有A* 和Dijkstra。控制器服务器 (Controller Server)负责局部路径规划与运动控制。它接收全局路径并实时结合传感器如激光雷达探测到的动态障碍物信息计算出机器人每一步的速度和角速度指令 (cmd_vel)确保机器人既能跟随全局路径又能安全避障。常用算法包括DWA (动态窗口法)和TEB (时间弹性带)。定位模块 (AMCL)负责机器人定位。在已知地图中AMCL (自适应蒙特卡洛定位) 通过结合传感器数据和里程计数据不断推算并修正机器人在当前地图中的精确位置。一个精确的定位是导航能够成功执行的前提。行为树导航器 (BT Navigator)这是 Nav2 的**“总指挥”**。它使用行为树来定义复杂的机器人行为例如一个标准的“到点导航”行为树就包含了“规划路径 - 执行路径 - 成功/失败 - 若失败则尝试恢复行为 - 再次规划”等多个节点。行为树让导航逻辑更加清晰、可控且易于调试。恢复服务器 (Recovery Server)负责异常处理。当导航遇到问题如规划失败、长时间无法到达目标点时恢复服务器会启动一系列恢复行为例如原地旋转 (Spin)、后退 (Backup)、清除代价地图 (Clear Costmap) 等以帮助机器人摆脱困境。代价地图 (Costmap 2D)Nav2 感知世界的核心。它将传感器数据激光点云、深度图转化为一张栅格地图每个格子都赋予一个“代价”值代表该位置被占据的风险。Nav2 维护着两张代价地图全局代价地图 (Global Costmap)基于静态地图生成用于全局规划。局部代价地图 (Local Costmap)以机器人为中心实时更新用于局部避障。2、核心优势与技术特点生产级质量与高度可扩展Nav2 被全球超过 100 家公司用于实际产品中拥有高自动化测试覆盖率代码稳定可靠。其插件化架构允许开发者轻松集成自己定制的规划、控制或感知算法。支持广泛的机器人类型不仅支持传统的差速驱动和全向驱动机器人也支持阿克曼底盘如汽车和腿足式机器人。高级应用功能除了基础导航Nav2 还内置了自动充电对接 (Auto-Docking)、循迹 (Waypoint Following)、碰撞监控等高级功能满足实际产品需求。行为树编排相比 ROS 1 导航栈僵化的状态机Nav2 的行为树模型让开发者可以像编写流程图一样设计机器人复杂的任务逻辑例如“送餐到指定点 - 播放语音 - 等待用户取餐 - 返回充电桩”。3、与 TurtleBot3 的结合回到之前的TurtleBot3它正是学习和运行 Nav2 的最佳入门平台。官方提供了完整的 Nav2 演示包我们可以非常轻松地在 TurtleBot3 上体验完整的导航功能。流程通常如下建图使用 SLAM 工具如 Cartographer控制 TurtleBot3 在未知环境中移动构建出环境的地图。保存地图将建好的地图保存下来。启动 Nav2运行 Nav2 的启动文件加载刚才保存的地图并启动定位、规划和控制等所有服务器。设置目标点在 RViz 可视化工具中用 2D Nav Goal 工具在地图上点击一个目标点。Nav2 便会接管机器人自动规划路径并驱动机器人前往指定地点同时实时避障。总的来说Nav2 是一个功能强大、架构先进且高度灵活的导航系统它几乎成为了 ROS 2 机器人导航的事实标准。参考资料https://docs.ros.org/en/kilted/Tutorials/Advanced/Simulators/Gazebo/Gazebo.htmlhttps://www.cnblogs.com/arnoldlu/p/18648901https://www.cnblogs.com/ppqppl/articles/17956192https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/https://mirrors.tuna.tsinghua.edu.cn/help/ros2/ROS2 建图与导航Slam_toolbox、Nav2实践

相关文章:

Ubuntu 24.04 环境实战:ROS 2 Kilted 实现 SLAM 建图与 Nav2 导航

一、构建地图 1、安装依赖 安装 slam_toolbox 算法库: sudo apt install ros-kilted-slam-toolbox安装 TurtleBot3 全套支持包: sudo apt install ros-kilted-turtlebot3*2、使用清华源 如果apt安装很慢,请先配置清华源: sud…...

vs code 实现source insight中的快捷键功能

1.自定义快捷键连续两组快捷键CtrlK CtrlS打开键盘快捷键定义界面修改向前向后的快捷键。ctrlu删除当前行复制当前行到下面2.增加bookmarks功能扩展部分装插件,定义快捷键ctrlm增加标签可以修改标签3.多行移动多行向上移动,向下移动Windows/Linux 用 Alt…...

CentOS7-IP配置记录

简要说明 本文章主要记录CentOS7系统在桥接网络类型下的IP配置测试,主要分为静态和动态配置,以下部署配置仅作参考,可根据实际情况调整。 相关文章 CentOS7部署参考文章:VMware-CentOS7最小化安装记录 CentOS7指令参考文章&am…...

Android16进阶之MediaPlayer.selectTrack调用流程与实战(二百五十)

简介: CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐:《Android系统多媒体进阶实战》🚀 Android Audio工程师专栏地址: Audio工程师进阶系列【原创干货持续更新中……】🚀 Android多媒体专栏地址&a…...

开源项目主题系统的3大核心机制深度解析:从CSS变量到动态切换的完整实现方案

开源项目主题系统的3大核心机制深度解析:从CSS变量到动态切换的完整实现方案 【免费下载链接】vue-vben-admin vbenjs/vue-vben-admin: 是一个基于 Vue.js 和 Element UI 的后台管理系统,支持多种数据源和插件扩展。该项目提供了一个完整的后台管理系统&…...

ESFT-gate-law-lite:法律文本智能分析新工具

ESFT-gate-law-lite:法律文本智能分析新工具 【免费下载链接】ESFT-gate-law-lite ESFT-gate-law-lite是基于HuggingFace的深度学习模型,专为法律领域定制。源自deepseek-ai团队,继承ESFT-vanilla-lite优势,强大而轻量&#xff0c…...

Ollama + DeepSeek + 芋道框架 + SearXNG 本地联网搜索完整教程

1. 环境准备与检查 在开始之前,请确保你的环境满足以下条件: 1.1 硬件要求 内存:建议至少8GB可用内存(运行7B模型需要约4-6GB) 硬盘:DeepSeek模型文件约4-5GB空间 CPU/GPU:如有NVIDIA GPU可加速推理(可选) 1.2 软件要求 操作系统:Windows 10/11、macOS、Linux均可 …...

首款支持AI渗透的WebShell管理工具,聊个天就能实现免杀|实现高隐蔽内网渗透

0x01 工具介绍 金刚狼首款支持 AI 渗透的 WebShell MCP,也是一款支持多层内网级联的 ASPX、ASHX 高级 WebShell 管理工具。工具采用 AES 加密通信,无需代理即可实现内网穿透,支持内存加载各类渗透工具,做到无文件落地隐蔽渗透目标…...

突破限制:BlenderCompat让Windows 7焕发新活力运行Blender 3.x

突破限制:BlenderCompat让Windows 7焕发新活力运行Blender 3.x 【免费下载链接】BlenderCompat Windows 7 support for Blender 3.x and newer 项目地址: https://gitcode.com/gh_mirrors/bl/BlenderCompat 在3D创作领域,Blender的每一次版本迭代…...

带标注的交通工具分类数据集,17334张原始图片,识别率92.4%,可识别汽车,公共汽车,自行车,摩托车,支持yolo,coco json,pascal voc xml格式

带标注的交通工具分类数据集,17334张原始图片,识别率92.4%,可识别汽车,公共汽车,自行车,摩托车,支持yolo,coco json,pascal voc xml格式 模型训练指标参数: …...

语音转换完全上手:Retrieval-based Voice-Conversion-WebUI从入门到精通

语音转换完全上手:Retrieval-based Voice-Conversion-WebUI从入门到精通 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI 语音数据小于等于10分钟也可以用来训练一个优秀的变声模型! 项目地址: https://gitcode.com/GitHub_Trending/re/Retr…...

日语零基础每天学习笔记【01-10】

第一天 日语五十音:平假名/片假名发音あア いイ うウ えエ おオaかカ きキ くク けケ こコkaさサ しシ すス せセ そソsaたタ ちチ つツ てテ とトtaなナ にニ ぬヌ ねネ のノnaはハ ひヒ ふフ へヘ ほホhaまマ みミ むム めメ もモmaや…...

密码安全必修课:为什么BCrypt比MD5更适合存储用户密码?

密码安全必修课:为什么BCrypt比MD5更适合存储用户密码? 在数字身份成为第二张身份证的时代,密码安全早已不是技术圈的内部话题。去年某社交平台600万用户数据泄露事件中,令人震惊的不是数据被盗本身,而是其中87%的密码…...

3.23-3.25笔记

这期实现温湿度采集、光照强度监测、智能设备控制(加湿器、PWM 调光 LED、PWM 调速风扇)确定引脚,根据原理图找出可以使用的引脚开关。根据手册信息PWM口GPIO0_D0和GPIO0_C6,把设备树GPIO0_D0做5G的复位disable,再加入…...

2024具身智能技术全景解析:从人形机器人到AGI的硬件与算法协同进化

1. 具身智能:当机器人学会"思考"和"行动" 想象一下,你家的扫地机器人不仅能自动规划路线清洁地板,还能在你做饭时递调料瓶、在你工作疲惫时泡一杯咖啡——这不是科幻电影,而是具身智能技术正在实现的场景。具…...

关于腾讯广告算法大赛2025项目分析1 - dataset.py

把原始 jsonl 用户行为序列,转成模型能直接吃的张量tensor和特征字典 一、整体定位 MyDataset 读取训练数据,产出: 用户序列 seq正样本 pos负样本 negtoken 类型各类特征时间特征相关原始时间戳 MyTestDataset 读取测试/推理数据,产出 用户序…...

5大核心功能重塑Sketch效率:RenameIt批量命名工具的流程优化实践

5大核心功能重塑Sketch效率:RenameIt批量命名工具的流程优化实践 【免费下载链接】RenameIt Keep your Sketch files organized, batch rename layers and artboards. 项目地址: https://gitcode.com/gh_mirrors/re/RenameIt 在现代UI/UX设计工作流中&#x…...

【adb端口5555】烽火hg680系列安卓9线刷全攻略:告别强制升级与花屏困扰

1. 烽火HG680系列机顶盒的痛点与解决方案 最近在折腾烽火HG680-GY和HG680-GC这两款机顶盒的朋友应该都深有体会,官方系统用着用着就会弹出强制升级提示,有时候还会莫名其妙出现花屏问题。作为一个折腾过不下20台烽火盒子的老玩家,我太理解这种…...

OpenClaw多模型切换指南:ollama-QwQ-32B与本地小模型协同工作

OpenClaw多模型切换指南:ollama-QwQ-32B与本地小模型协同工作 1. 为什么需要多模型协同 去年冬天,当我第一次尝试用OpenClaw自动整理电脑里堆积如山的论文时,发现一个尴尬的问题:简单的文件分类任务消耗了过多token。每次让大模…...

避免这些坑!Unity2D界面转换中常见的动画事件处理问题及解决方案

避免这些坑!Unity2D界面转换中常见的动画事件处理问题及解决方案 在Unity2D游戏开发中,界面转换是提升用户体验的关键环节。一个流畅的淡入淡出效果能让场景切换更加自然,但很多开发者在实际操作中常会遇到动画事件不触发、协程执行异常等问题…...

终极指南:使用compressorjs实现专业级前端图片压缩与编辑功能

终极指南:使用compressorjs实现专业级前端图片压缩与编辑功能 【免费下载链接】compressorjs compressorjs: 是一个JavaScript图像压缩库,使用浏览器原生的canvas.toBlob API进行图像压缩。 项目地址: https://gitcode.com/gh_mirrors/co/compressorjs…...

5分钟完成Axure RP界面本地化:从英文障碍到高效操作的蜕变指南

5分钟完成Axure RP界面本地化:从英文障碍到高效操作的蜕变指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包,不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-c…...

从松到深:解析组合导航三大模式的演进路径与实战选型

1. 组合导航的底层逻辑与技术演进 第一次接触组合导航系统时,我被这个看似简单的概念惊艳到了——把两种完全不同的定位技术融合在一起,竟然能产生11>2的效果。这就像做菜时的黄金搭档,比如西红柿和鸡蛋单独吃都不错,但炒在一起…...

CasRel开源大模型部署教程:一键拉取镜像+5分钟完成SPO推理

CasRel开源大模型部署教程:一键拉取镜像5分钟完成SPO推理 1. 什么是CasRel关系抽取模型 如果你需要从大段文字中自动找出"谁做了什么"、"谁是什么"这样的信息,CasRel模型就是你的得力助手。这个模型专门用来从文本中提取主体-谓语…...

西门子S7-1200 PLC如何通过EtherCat转Profinet网关实现高效IO控制?5步搞定配置

西门子S7-1200 PLC与EtherCat设备的高效集成:5步实现Profinet网关配置 在工业自动化领域,不同协议设备之间的无缝通信一直是工程师面临的挑战。当您需要将EtherCat设备接入西门子S7-1200 PLC的Profinet网络时,协议转换网关成为关键桥梁。本文…...

贝叶斯岭回归实战:用Python搞定金融数据预测(附完整代码)

贝叶斯岭回归实战:用Python搞定金融数据预测(附完整代码) 金融市场的波动性一直是投资者和分析师关注的焦点。在瞬息万变的股票市场中,能够准确预测价格走势意味着巨大的商业价值。传统的时间序列分析方法如ARIMA虽然经典&#xf…...

STC15W4K32S4寄存器操作避坑指南:为什么你的PWM输出异常?(附完整初始化流程图)

STC15W4K32S4寄存器操作避坑指南:为什么你的PWM输出异常? 最近在调试STC15W4K32S4的PWM功能时,发现不少开发者都会遇到一些共性问题:明明按照手册配置了寄存器,PWM输出就是不稳定或者干脆没有波形。这些问题往往源于几…...

黑马点评技术汇总(一)验证码登录

一、session实现验证码登录总思路: 前端提交手机号发起code请求,服务端校验手机号是否符合格式,成功后生成验证码存入session并发送给用户。 用户提交手机号和验证码验证手机是否符合格式(这里有个bug)验证码是否和ses…...

本地部署 Ollama + DeepSeek 完整指南:免费跑大模型,数据不出本地

本地部署 Ollama DeepSeek 完整指南:免费跑大模型,数据不出本地不花一分钱,不用科学上网,在自己电脑上跑 DeepSeek 大模型,这篇教程手把手带你搞定一、为什么要本地部署? 很多人用 AI 工具都是调用云端 AP…...

MinerU本地部署安全吗?数据隐私保护实战配置

MinerU本地部署安全吗?数据隐私保护实战配置 1. 引言:当AI遇见你的敏感文档 想象一下这个场景:你有一份包含商业机密的合同PDF,或者一份涉及个人隐私的医疗报告扫描件。你想用AI快速提取里面的关键信息,但又担心把文…...