ROS学习笔记(二)--ROS中常用命令整理及RVIZ的使用总结

本文介绍了ROS的基本操作,包括创建和管理工作空间、功能包,以及bag文件的使用。首先讲解如何建立和编译工作空间,通过设置环境变量使其生效。接着展示了如何创建功能包,并添加依赖库。关于bag文件,文章阐述了录制和播放过程。此外,还列举了ROS的常用命令,如话题和消息的管理、tf框架查询以及节点关系图的查看。最后简单提到了RVIZ的启动和配置保存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.ROS的基本操作

1.在ROS中建立工作空间

 mkdir -p ~/catkin_ws/src
 cd ~/catkin_ws/src
catkin_init_workspace     //在src目录下
#编译
cd ~/catkin_ws/
catkin_make     //在catkin_ws下
#设置环境变量,此方法是一次性的
source devel/setup.bash
#检查环境变量,有返回路径就是设置好了
echo $ROS_PACKAGE_PATH

永久添加环境变量的方法:

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc    #catkin_ws--创建工作空间的文件夹名
//这里的.bashrc在/home下,是隐藏文件,安ctrl+h可以显示。这句其实就是把工作空间的路径写到bashrc文件里,可以用gedit打开写进去保存
source ~/.bashrc

2.创建功能包

#在工作空间下的/src目录下创建
catkin_create_pkg lc rospy roscpp std_msgs std_srvs  #lc--功能包名,rospy roscpp std_msgs std_srvs--添加的库

3.bag文件的使用

bag是ROS中的日志文件,其记录了ros话题的数据,使用时要先运行一个节点,运行完后执行下面的命令:

mkdir ~/bagfiles
cd ~/bagfiles
rosbag record -a

bag文件默认以时间命名。

rosbag info 2020-07-04-11-01-11.bag   #检查信息
rosbag play 2020-07-04-11-01-11.bag   #播放bag文件

4.功能包管理命令

sudo apt-get purge ros-<ros版本名>-<需要卸载的功能包名>   //卸载安装包
rospack  list //查看所有的安装包

5.编译单个功能包

catkin_make --only-pkg-with-deps <package_name>

二.ROS常用命令整理

在具体的命令前明确几个基本概念:
1.消息类型
命名方式: 程序包名/消息名。例如:

  sensor_msgs/PointCloud     

2.话题名
在ROS的节点中定义,如:

   /cloud_syn                     

1.topic和message

rostopic pub +话题名+消息类型+需要改的参数以及值    #发布话题
rostopic echo +话题名                                               #可以查看消息的具体数据
rostopic type +话题名                                               #显示消息的类型
rostopic list +话题名                                               #打印话题列表
rostopic list -v  +话题名                                           #查看话题的详细信息
rosmsg show +消息类型      #查看消息的类型(数据结构) 
rosmsg info +消息类型      #与rosmsg show基本相同
rosmsg list               #列出所有的消息类型
rosmsg md5                #显示消息的MD5签名
rosmsg package +消息类型   #显示功能包中的消息类型
rosmsg packages           #查看特定消息类型的程序包
rostopic hz /tag_detections_image    #查看视频的帧率

在这里插入图片描述

2.tf

rosrun rqt_tf_tree rqt_tf_tree             #查询tf框架

3.节点类

rosrun rqt_graph rqt_graph   #查询节点关系图

三.RVIZ的使用

官方教程链接

1.常规操作

1.启动

rosrun rviz rviz           # 需要提前启动roscore
rviz                       #直接用这个命令也可以启动rviz

2.配置好的rviz尽可能保存一下,在“recent configs”可以找到。

<think>好的,我现在需要帮助用户查找关于ROS RViz使用教程。用户已经提供了四个相关的引用,我需要参考这些内容,同时结合之前的对话历史来生成一个结构清晰的回答。 首先,回顾用户的历史问题,他们之前询问了如何使用map_server保存地图,现在转向了RViz使用教程。因此,回答需要保持连贯性,可能需要提到地图加载到RViz的步骤,因为之前涉及到了地图保存。 接下来,分析用户提供的四个引用: 1. 引用[1]提到RViz的安装启动、命令行和launch文件启动方式,以及插件次开发。这说明用户可能对基础使用和扩展功能感兴趣。 2. 引用[2]详细介绍了RViz的数据类型、界面,以及如何用C++发送形状到RViz。用户可能需要基础操作和编程集成方面的指导。 3. 引用[3]涉及特定硬件(镭神雷达)在RViz中的使用,可能用户有硬件集成需求,但用户当前问题更偏向一般教程,所以这部分可能次要。 4. 引用[4]说明了在RViz中显示数据的基本步骤,需要初始化节点、创建发布者等。用户可能需要代码示例来理解如何发布数据到RViz。 用户明确询问的是RViz使用教程,所以需要涵盖安装、启动、界面介绍、基本操作、数据可视化以及可能的进阶内容如插件开发。同时,结合之前的map_server回答,可能需要补充如何将保存的地图加载到RViz中查看,比如在验证地图时提到的启动map_server后用RViz查看。 需要考虑结构是否清晰,分步骤或分模块讲解。可能需要包括安装启动、界面解析、基础应用(如加载地图、显示传感器数据)、编程集成(发布自定义数据)、调试技巧、插件开发等。同时,引用中的信息需要适当整合,比如引用[2]中的数据类型和发送形状的步骤,引用[4]的代码结构,引用[1]的插件开发。 还需要注意用户可能的实际应用场景,比如机器人状态显示(机械臂、传感器数据),因此需要结合这些实例。另外,用户可能遇到常见问题,比如RViz无法显示数据,需要提供排查方法,如检查话题名称、数据格式等。 最后,生成相关问题,引导用户深入探索,如性能优化、高级可视化、插件开发等,这些问题应基于回答内容,帮助用户进一步学习。</think>### ROS Rviz 使用教程完整指南 --- #### 一、Rviz 核心功能与安装 1. **核心作用** RvizROS 的 3D 可视化工具,支持机器人模型显示、传感器数据可视化(激光雷达、摄像头等)、路径规划结果预览等功能,是机器人开发中的"可视化控制台"[^1]。 2. **安装方法** ```bash sudo apt-get install ros-<distro>-rviz # 例如ros-noetic-rviz ``` --- #### 、基础使用流程 1. **启动方式** - **命令行直接启动** ```bash rosrun rviz rviz ``` - **通过launch文件集成启动**(推荐) ```xml <launch> <node pkg="rviz" type="rviz" name="my_rviz" args="-d $(find your_pkg)/config/rviz_config.rviz"/> </launch> ``` 2. **界面组成解析** ![Rviz界面布局](https://img-blog.csdnimg.cn/2021041915572325.png#pic_center) - **显示面板**:通过`Add`按钮添加可视化组件(如LaserScan、Map、TF等) - **视图控制**:支持俯视/第一人称等多视角切换 - **工具栏**:包含视图复位、测量工具等实用功能[^2] --- #### 三、典型应用场景 1. **加载地图显示**(接续地图保存操作) ```bash rosrun map_server map_server ~/maps/lab_map.yaml ``` 在Rviz中添加`Map`显示组件,设置Topic为`/map`即可显示已保存的导航地图。 2. **传感器数据显示** | 数据类型 | Topic格式 | 显示组件 | |----------------|---------------------|---------------| | 激光雷达 | /scan | LaserScan | | 深度摄像头 | /depth/image_raw | PointCloud2 | | IMU数据 | /imu/data | IMU | 3. **机器人模型加载** 添加`RobotModel`组件,需确保`TF`坐标系树正确发布(通常由`robot_state_publisher`节点完成)。 --- #### 四、编程集成示例 通过C++发布自定义标记(以绘制立方体为例)[^4]: ```cpp #include <ros/ros.h> #include <visualization_msgs/Marker.h> int main(int argc, char** argv) { ros::init(argc, argv, "basic_shapes"); ros::NodeHandle n; ros::Publisher marker_pub = n.advertise<visualization_msgs::Marker>("visualization_marker", 1); visualization_msgs::Marker marker; marker.header.frame_id = "base_link"; marker.type = visualization_msgs::Marker::CUBE; marker.action = visualization_msgs::Marker::ADD; marker.pose.position.x = 0.5; marker.pose.position.z = 0.5; marker.scale.x = 0.1; marker.scale.y = 0.1; marker.scale.z = 0.1; marker.color.r = 0.0f; marker.color.a = 1.0; // 必须设置透明度非零 while (ros::ok()) { marker_pub.publish(marker); ros::spinOnce(); } return 0; } ``` --- #### 五、调试技巧与常见问题 1. **数据不显示排查步骤** - 检查Topic名称是否匹配 - 确认坐标系(Frame)设置正确 - 使用`rostopic echo`验证数据流 2. **性能优化方法** ```bash rviz --help ``` - 添加`--disable-OpenGL`参数可关闭硬件加速 - 减少同时显示的组件数量 --- #### 六、进阶开发方向 1. **插件开发** 通过`rviz_plugin_tutorials`包创建自定义显示组件,支持: - 特殊数据格式可视化 - 交互式控制界面[^1] 2. **配置保存与复用** 通过`File->Save Config`保存当前界面布局(生成.rviz文件),便于团队协作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值