ROS2机器人slam_toolbox建图零基础

系统:Ubuntu22.04

ROS2版本:Humble

雷达设备:rplidar_a1

一、安装必要的软件包

# 更新系统 sudo apt update
# 安装slam_toolbox sudo apt install ros-humble-slam-toolbox
# 安装RPLidar驱动 sudo apt install ros-humble-rplidar-ros
# 安装导航相关包 sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup

二、配置RPLidar_A1

创建udev规则(让系统识别雷达)

# 创建udev规则 echo 'KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666", GROUP:="dialout", SYMLINK+="rplidar"' | sudo tee /etc/udev/rules.d/rplidar.rules
# 重新加载udev规则 sudo udevadm control --reload-rules sudo udevadm trigger

重新插拔雷达USB线

测试雷达连接

# 查看雷达是否被识别 ls -l /dev | grep ttyUSB # 应该看到类似:lrwxrwxrwx 1 root root 7 Nov 6 10:20 rplidar -> ttyUSB0

三、启动雷达

# 启动RPLidar A1 ros2 launch rplidar_ros rplidar_a1_launch.py
# 在另一个终端检查激光数据 ros2 topic echo /scan --no-arr | head -5 #这一步有报错很正常,因为我们只看前5行的数据

四、创建SLAM启动文件

# 创建工作空间目录(如果还没有) mkdir -p ~/slam_ws/src cd ~/slam_ws/src
# 创建功能包(如果需要) ros2 pkg create my_slam --build-type ament_cmake --dependencies rclcpp slam_toolbox nav2_msgs
# 创建launch目录 mkdir -p ~/slam_ws/src/my_slam/launch

创建启动文件

nano ~/slam_ws/src/my_slam/launch/slam_with_rplidar.launch.py

添加以下代码:

import launch from launch_ros.actions import Node from launch.actions import DeclareLaunchArgument from launch.substitutions import LaunchConfiguration def generate_launch_description(): # 定义启动参数 use_sim_time = LaunchConfiguration('use_sim_time', default='false') # RPLidar A1 节点 rplidar_node = Node( package='rplidar_ros', executable='rplidar_node', name='rplidar_node', parameters=[{ 'serial_port': '/dev/rplidar', 'serial_baudrate': 115200, 'frame_id': 'laser', 'inverted': False, 'angle_compensate': True, 'scan_mode': 'Standard' }], output='screen' ) # slam_toolbox 节点 slam_toolbox_node = Node( package='slam_toolbox', executable='async_slam_toolbox_node', name='slam_toolbox', output='screen', parameters=[{ 'use_sim_time': use_sim_time, 'map_frame': 'map', 'odom_frame': 'odom', 'base_frame': 'base_link', 'scan_topic': '/scan', 'mode': 'mapping', # 建图模式 'resolution': 0.05, # 地图分辨率 'max_laser_range': 12.0, # 最大激光范围 }] ) # 静态TF发布 - 定义雷达位置 static_tf_laser = Node( package='tf2_ros', executable='static_transform_publisher', name='static_transform_publisher_laser', arguments=['0', '0', '0.1', '0', '0', '0', 'base_link', 'laser'] ) # 静态TF发布 - 定义base_link到odom的初始位置 static_tf_odom = Node( package='tf2_ros', executable='static_transform_publisher', name='static_transform_publisher_odom', arguments=['0', '0', '0', '0', '0', '0', 'odom', 'base_link'] ) return launch.LaunchDescription([ DeclareLaunchArgument('use_sim_time', default_value='false'), rplidar_node, static_tf_laser, static_tf_odom, slam_toolbox_node, ])

添加依赖

cd ~/slam_ws/src/my_slam nano CMakeLists.txt

将内容修改为:

cmake_minimum_required(VERSION 3.8) project(my_slam) if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options(-Wall -Wextra -Wpedantic) endif() # find dependencies find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) find_package(slam_toolbox REQUIRED) find_package(nav2_msgs REQUIRED) # 添加这行:安装launch目录 install(DIRECTORY launch DESTINATION share/${PROJECT_NAME} ) if(BUILD_TESTING) find_package(ament_lint_auto REQUIRED) # the following line skips the linter which checks for copyrights # comment the line when a copyright and license is added to all source files set(ament_cmake_copyright_FOUND TRUE) # the following line skips cpplint (only works in a git repo) # comment the line when this package is in a git repo and when # a copyright and license is added to all source files set(ament_cmake_cpplint_FOUND TRUE) ament_lint_auto_find_test_dependencies() endif() ament_package()

这一步主要添加了launch目录:

install(DIRECTORY launch

    DESTINATION share/${PROJECT_NAME}        

)

五、构建工作空间

cd ~/slam_ws colcon build source install/setup.bash

六、启动完整的SLAM系统

# 终端1:启动SLAM和雷达 ros2 launch my_slam slam_with_rplidar.launch.py # 终端2:启动RViz2 ros2 run rviz2 rviz2

七、配置RViz2显示建图过程

在RViz2中:

1、修改Fixed Frame:

        Global Option---->Fixed Frame:设置为 map

2、添加显示项(点击Add按钮)

        LaserScan:

                Topic :  /scan

                Size : 0.1

                Color : 红色或绿色

        Map:

                Topic : /map

                Color Scheme : costmap

                Draw Behind : √

TF:

        显示坐标框架关系

3、保存RViz配置

file---->Save Config As ----> ~/slam_ws/slam_config.rviz

 八、开始建图

1、缓慢移动雷达在环境中行走

2、观察RViz中的建图过程

3、确保覆盖所有区域

九、保存地图

建图完成后,保存地图:

ros2 run nav2_map_server map_saver_cli -f ~/my_first_map

Read more

深度解析Claude官方Skill-Creator,不止是模板,更是AI技能工程化的完整体系

深度解析Claude官方Skill-Creator,不止是模板,更是AI技能工程化的完整体系

在AI Agent快速迭代的今天,Anthropic推出的Claude Skill系统,正在重新定义AI能力的扩展方式。而作为这个系统的“元技能”,Skill-Creator更是打破了人们对“技能开发”的固有认知——它不是简单的SKILL.md文档模板,也不是零散的工具集合,而是一套将AI技能开发标准化、流程化、工程化的完整体系。基于Claude官方Skill-Creator源码(485行SKILL.md,2026年3月7日版本)及Anthropic官方博客资料,我们从设计理念、架构细节、实操流程到企业落地,全方位拆解这个强大的“技能工厂”,让每一位从业者都能看懂其核心价值与应用逻辑。 一、认知澄清:Skill-Creator的本质的是“AI技能工程化系统” 很多人初次接触Skill-Creator时,都会误以为它只是一个用来生成SKILL.md文件的工具,毕竟从表面上看,它确实能引导用户完成技能文档的撰写。但深入源码和官方文档后会发现,它的本质是一个“AI技能工程化系统”,核心目标是解决三类关键问题:Skill是否真的能提升结果质量而不是单纯的心理安慰,Skill是否能在正确的场

封神!2026最火本地AI智能体OpenClaw保姆级教程|新手10分钟部署(领一键部署文档)

封神!2026最火本地AI智能体OpenClaw保姆级教程|新手10分钟部署(领一键部署文档)

封神!2026最火本地AI智能体OpenClaw保姆级教程|新手10分钟部署,扫码直接领一键部署文档 家人们谁懂啊😭! 还在羡慕别人的AI助理能自动干活、管理文件、写代码、发消息?还在为复杂的AI部署步骤头大,看半天教程还是无从下手,要么报错不断,要么适配不了国内环境? 今天给大家挖到宝了—— OpenClaw (原Clawdbot、Moltbot),2026年初正式更名升级,堪称“普通人的第一款本地AI智能体”,不用懂复杂代码,新手跟着走,10分钟就能部署成功,隐私可控还能自定义功能,办公、学习效率直接翻倍! 重点来了:文末附专属福利, 扫描微信二维码,免费领取OpenClaw一键部署教程文档 ,包含详细命令、避坑指南、国内平台适配技巧,打印出来跟着操作,零失败! 先搞懂:OpenClaw到底牛在哪?(新手必看) 很多人以为它是普通聊天机器人,大错特错!OpenClaw是一款 开源、本地优先的AI个人智能体 ,简单说就是“能在你电脑上长期干活的AI助理”,核心优势直接戳中普通人痛点: * 隐私拉满 :所有数据都存在你自己的设备上,不泄露、不上传,

2026 最全 AI 应用学习路线图:工具、心法、资源、趋势、博主推荐一文打包,这一篇够了(万字长文,建议收藏!)

大家好啊,我是甲木。 今天是 2026 年,年后复工第一天,先祝大家复工愉快(bushi 春节期间,好几个朋友问我同一个问题:「你不是搞 AI 的吗,我也想学学,从哪开始啊?」做老师的、做销售的、刚毕业的学生、创业十几年的老板,当然也包括后台经常私信我的粉丝朋友们。 背景完全不同,困惑高度一致,想用 AI 却不知从何入手。 一搜「AI 学习路线」,弹出来的东西直接劝退:线性代数、概率论与数理统计、机器学习、深度学习balabla一堆…直接从入门到放弃.. 所以趁着复工第一天,我把这两年自己摸索的、观察到的、跟各路高手聊出来的经验,做一次彻底的梳理。给大家一份AI学习路线图。 先说清楚:这篇文章不是写给 AI 工程师的。 如果你是计算机科班出身,想去大厂做算法岗,传统路线图对你有用,按部就班学就好。但如果你是运营、老师、

微信也能养“小龙虾”了?QClaw 爆火背后:AI 正在从“会聊天”走向“会干活”

微信也能养“小龙虾”了?QClaw 爆火背后:AI 正在从“会聊天”走向“会干活”

🔥 个人主页:杨利杰YJlio❄️ 个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》《Python》《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更简单,让重复的工作自动化 微信也能养“小龙虾”了?QClaw 爆火背后:AI 正在从“会聊天”走向“会干活” * 1、微信也能养“小龙虾”了?这次真的不是玩梗 * 2、OpenClaw 为什么突然这么火? * 3、QClaw 和普通 AI 的本质区别,到底在哪? * 3.1 传统 AI 的工作流 * 3.2 QClaw 这类