1.ROS 核心与节点管理(Core & Nodes)

roscore
启动 ROS Master、参数服务器及日志节点。一个 ROS 网络仅需运行一次。

roscore

若端口冲突,使用 killall -9 rosmaster 强制终止残留进程。


rosrun
运行指定功能包中的节点。

rosrun <package_name> <node_name>

支持节点重命名和话题重映射:

rosrun turtlesim turtlesim_node __name:=my_turtle  # 重命名节点
rosrun turtlesim turtlesim_node /turtle1/cmd_vel:=/cmd_vel  # 重映射话题

roslaunch
通过 .launch 文件启动多节点,自动拉起 roscore

roslaunch <package_name> <launch_file.launch>

传递自定义参数或检查语法:

roslaunch my_pkg robot.launch arg_name:=value  # 传参
roslaunch --check my_pkg robot.launch          # 语法检查

rosnode
管理运行中的节点:

  • rosnode list:列出活跃节点。
  • rosnode info /turtlesim:查看节点详情(话题、服务、PID)。
  • rosnode kill /turtlesim:终止节点(注意 respawn 配置)。
  • rosnode cleanup:清理僵尸节点注册信息。

2.话题管理(Topics)

rostopic
调试与监控话题数据:

  • rostopic list -v:列出所有活跃话题及发布/订阅关系。
  • rostopic echo /odom -n 5:仅打印5条数据。
  • rostopic hz /camera/image_raw:检查发布频率。
  • rostopic pub -r 10 /cmd_vel geometry_msgs/Twist "[2.0, 0, 0]" "[0, 0, 1]":以10Hz循环发布速度指令。

3.服务管理(Services)

rosservice
查询与调用服务:

  • rosservice list:列出所有服务。
  • rosservice call /spawn "x: 2.0 y: 2.0 theta: 0.0 name: 't2'":调用带参服务(按Tab键自动补全参数结构)。

4.参数服务器管理

rosparam
操作全局参数:

  • rosparam get /:以YAML格式导出全系统参数。
  • rosparam dump params.yaml:保存参数到文件。
  • rosparam load params.yaml:从文件加载参数。

5.数据类型与消息

rosmsg & rossrv
查看消息/服务结构:

rosmsg show geometry_msgs/Twist     # 显示消息字段
rossrv show turtlesim/Spawn         # 显示服务请求/响应结构

6. 数据录制与回放 (Bag Files)

# 录制指定话题(保存为my_data.bag)
rosbag record -O my_data.bag /odom /cmd_vel

# 录制除指定正则匹配外的所有话题
rosbag record -a -x "/camera/(.*)"

# 查看文件元信息
rosbag info my_data.bag

# 基础回放
rosbag play my_data.bag

# 高级回放(需算法调试时使用)
rosbag play -r 2 -s 10 -u 30 --clock my_data.bag

7. 功能包路径管理

# 定位功能包路径
rospack find turtlesim

# 查看依赖关系
rospack depends1 my_pkg   # 直接依赖
rospack depends my_pkg    # 递归依赖

# 快速跳转路径
roscd             # 默认安装路径
roscd log         # 日志目录

# 功能包文件操作
rosls turtlesim                     # 文件列表
rosed turtlesim CMakeLists.txt       # 文件编辑
* 配置编辑器:在~/.bashrc添加 export EDITOR='nano' *

8. 工作空间与编译

# 初始化工作空间(在src目录执行)
catkin_init_workspace

# 创建功能包(自动配置依赖项)
catkin_create_pkg my_robot_pkg roscpp rospy std_msgs sensor_msgs

# 标准编译(工作空间根目录执行)
catkin_make

# 优化编译模式
catkin_make -DCMAKE_BUILD_TYPE=Release

# 选择性编译(调试利器)
catkin_make -DCATKIN_WHITELIST_PACKAGES="pkg1;pkg2"

# 清除白名单设置
catkin_make -DCATKIN_WHITELIST_PACKAGES=""

# 限制核心编译(嵌入式场景)
catkin_make -j4

# 清理构建产物
catkin_make clean

注:‌turtlesim 是 ROS 机器人系统里的官方入门模拟器‌,2D的小乌龟模型

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐