当用户提到 ROS、ROS1、ROS2、catkin、colcon、roscore、topic、service、action、launch、rviz、gazebo、tf、urdf、xacro、slam、nav2、机器人中间件、机器人节点通信、传感器驱动、导航栈、机械臂 ROS 集成,或希望学习、搭建、调试、解释、编写、运行 ROS/ROS 2 工程时使用此技能。也用于创建最小示例节点、工作空间、launch 文件、消息接口示例、诊断通信问题、解释架构与数据流、比较 ROS1 与 ROS2、以及为具体机器人项目设计软件结构。
默认优先适配 Ubuntu 20.04 + ROS Noetic(ROS1)。如果用户没有特别说明版本,且上下文明显是 Noetic/catkin/roscore/roslaunch,就按 ROS Noetic 回答;如果用户明确提到 ROS2、colcon、ament、ros2 命令,再切换到 ROS2 方案。
在处理 ROS/ROS 2 请求时,优先判断用户目标属于哪一类:
roscore、catkin_make、rosrun、roslaunch,通常就是 ROS1/Noetic。重点解释:
先确认:
默认交付顺序:
rostopic list 或 ros2 topic list)按以下顺序排查:
source /opt/ros/noetic/setup.bashmkdir -p ~/catkin_ws/srccd ~/catkin_ws && catkin_makesource ~/catkin_ws/devel/setup.bashecho "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrcroscorerosrun <package_name> <node_name>roslaunch <package_name> <file.launch>rosnode listrosnode info <node_name>rostopic listrostopic echo <topic_name>rostopic hz <topic_name>rostopic type <topic_name>rostopic pub <topic_name> <msg_type> '<yaml_data>'rosservice listrosservice info <service_name>rosservice type <service_name>rosservice call <service_name> <args>rosparam listrosparam get <param_name>rosparam set <param_name> <value>rosmsg show <msg_type>rossrv show <srv_type>rosrun tf view_framesrosrun rqt_tf_tree rqt_tf_treervizrqt_graphrosbag record -arosbag play <bag_file>rosbag info <bag_file>catkin_create_pkg <pkg_name> rospy roscpp std_msgscd ~/catkin_ws && catkin_makecatkin_make cleanrospack find <package_name>roscd <package_name>rosdep install --from-paths src --ignore-src -r -yROS 不是传统操作系统,而是机器人软件框架与工具链。核心思路是把系统拆成多个节点,通过标准消息接口通信。
ROS Noetic 是 ROS1 的长期支持发行版,常见于 Ubuntu 20.04,常配合 catkin、Python3、roscore、roslaunch 使用。
src/:源码包launch/:启动文件config/:参数 YAMLurdf/:机器人模型rviz/:可视化配置scripts/:辅助脚本按需读取以下文件,不必一次性展开:
references/noetic-cli-cheatsheet.mdreferences/noetic-workspace-guide.mdreferences/common-errors.mdreferences/architecture-patterns.md仅在以下关键信息缺失时追问:
如果用户明确说是 Ubuntu 20.04 + Noetic,则直接按 Noetic 提供方案,无需再次确认。