蓝桥云课ROS机器人旧版实验报告-03可视化和调试工具

项目名称

实验三  可视化和调试工具 

成绩

内容:调试ROS[Kinetic/Melodic/Noetic]节点、日志消息、检测系统状态、设置动态参数、roswtf、可视化节点诊断、绘制标量数据图、图像可视化、3D可视化、保存与回放数据、插件

实验记录(70分)

先下载源码:

git clone https://gitcode.net/ZhangRelay/cocubesim.git

然后,如果是压缩包,一定要解压缩。

解压缩命令参考如下:

tar -xf cocubesim/cocubesim.tar

注意,如果路径不同,修改为自己相应的路径即可。

下载点案例代码:

图1 cocubesim压缩包

打开图形化调试界面rqt,在终端输入rqt:

图2 rqt界面

具体各种类型调试工具在Plugins标签下。

例如:rqt_console

两种方式,一种rqt对应标签Plugins下logging下console

图3 打开console控制台

另一种:在终端输入命令rosrun rqt_console rqt_console

如果控制turtlesim机器人发生碰撞,会在对应窗口弹出提示!

图4 带有时间信息的报警消息查看

图 机器人在左侧发生碰撞并在对应console弹出警报消息

双击打开最新一个警报消息#145

图5 单个警告消息详细信息

时间差异,终端和图形化调试出现的时间格式不一致。

[ WARN] [1678850209.594996724]: Oh no! I hit the wall! (Clamping from [x=-0.003200, y=9.855555])

如上消息中的时间是1970年1月1日以来的秒和纳秒的累计计数。

服务的图形化调试:

图6 在rqt中使用服务调用Clear清除轨迹

Set_pen设置轨迹颜色为绿色,效果如下

图7 两类轨迹线绘制

如何按照课本要求自学并实验:

下载源码和教材

git clone https://gitcode.net/ZhangRelay/ros_book.git

解压缩已下载目录中如下:

unzip effective_robotics_programming_with_ros-master.zip

选取第三章:

图8 选取第三章案例

在code文件夹下,新建robot/src:

图9 将案例拷贝到对应文件夹

例如,练习:

用rqt_plot画出时间趋势曲线

可以使用ROS中现有的一些通用工具轻松地绘制标量数据图。当然,非标量数据图也可以绘制,但是要分别在不同的标量域里进行。之所以在此仅讨论标量数据,是因为对于大多数非标量数据,有专门的可视化工具能够更好地对其进行表示,我们会在后面进行部分介绍,例如图形、位姿、方向和角度等。

如下指令在不同窗口执行

第一步:roscore

第二步:rosrun chapter3_tutorials example4

第三步:rosrun rqt_plot rqt_plot /temp/data

图 /temp/data数据曲线-斜坡信号

注意:如果没有曲线出现,调整坐标轴参数,还要注意左上角是否添加了对应数据:

图 x+y轴详细的参数配置

如果需要添加其他数据,在如下窗口进行选取:

图 添加新的信号

选中莫一项点击加“+”号

图 添加加速度x,y,z后图表

如果删除某一条线点击减“—”号

图 删除某一个信号的具体操作

图如下所示:

图 删除特定信号后的图示

继续书中学习完成:

图 将线形由实线变为虚线

图 将三条曲线合并到一个窗口显示

配置相关的文件路径后,运行roscore和rviz,并且执行如下操作:

图 rviz界面

到对应文件夹下,运行:

roslaunch chapter3_tutorials example9.launch

图 终端运行第三章第九个案例

修改三维可视化工具中,坐标:

图 修改fixed frame坐标

按书中内容进行修改,并没有出现方块!

审查书中和代码并没有发现明显问题,那么回到rviz中,添加对应的marker如下:

图 添加Marker

添加后,效果如下:

图 红色方块显示

图 调整其他参数查看效果

修改固定坐标为:frame_pc

图 添加点云

出现下图:

图 rviz中显示彩色点云-彩虹色-横向x

图 rviz中显示彩色点云-彩虹色-纵向y

思考题(30分):

1 2D图标绘制,能否绘制正弦曲线?

Example4.cpp

msg_temp.data = sin(i/100.0);

由于数据类型不匹配,导致输出全部为零。

Int-Float

 

2 3D可视化中红色方块,可否变为黄色圆球体?

这时候需要修改代码example9.cpp:

//形状

  msg_marker.type = visualization_msgs::Marker::CUBE;

//颜色

  msg_marker.color.r = 1.;

  msg_marker.color.g = 0.;

  msg_marker.color.b = 0.;

  msg_marker.color.a = 1.;

msg_marker.type = visualization_msgs::Marker::SPHERE;

  msg_marker.color.r = 1.;

  msg_marker.color.g = 1.;

  msg_marker.color.b = 0.;

  msg_marker.color.a = 1.;

如果需要改变代码。查阅资料如下:

  1. rviz/DisplayTypes/Marker - ROS Wiki
  2. visualization_msgs/Marker Documentation

AI:

蓝桥云课ROS机器人实验报告-03可视化和调试工具的大纲可能包括以下内容:

  1. ROS可视化工具介绍:介绍ROS提供的主要可视化工具,如rqt_plot、rqt_console、rqt_bag等。
  2. 可视化机器人模型:使用ROS的可视化工具将机器人模型进行可视化,可以直观地观察机器人的姿态、关节状态等。
  3. 可视化机器人传感器:将机器人的传感器数据(如激光雷达、摄像头、IMU等)进行可视化,可以直观地观察传感器数据的变化。
  4. 可视化机器人行为:将机器人的行为进行可视化,可以直观地观察机器人的运动、决策过程等。
  5. 调试工具介绍:介绍ROS提供的调试工具,如rosrun、roslaunch、rqt_console等。
  6. 调试机器人程序:通过调试工具对机器人程序进行调试,可以定位程序中的错误和问题。
  7. 日志记录和排错:介绍如何使用ROS的日志记录功能,以及如何通过日志记录来排错。

以上是蓝桥云课ROS机器人实验报告-03可视化和调试工具的大纲的一个大致框架,具体内容可能会根据实验的目的和实际情况进行调整。

蓝桥云课ROS机器人实验报告-03可视化和调试工具进阶实验内容可能包括以下内容:

  1. 自定义可视化工具:根据实际需求,自行开发ROS可视化工具,例如基于Qt的GUI程序,可以实现机器人模型的可视化、传感器数据的可视化、行为的可视化等。
  2. 可视化机器人路径规划:将机器人的路径规划进行可视化,可以直观地观察机器人的运动轨迹和规划算法的效果。
  3. 可视化机器人建图:将机器人的建图过程进行可视化,可以直观地观察机器人的地图构建情况和环境感知信息。
  4. 可视化机器人SLAM:将机器人的SLAM过程进行可视化,可以直观地观察机器人的位姿估计和地图构建过程。
  5. 可视化机器人运动学:将机器人的运动学模型进行可视化,可以直观地观察机器人的关节状态和运动学方程的求解结果。
  6. 调试工具的高级应用:掌握ROS调试工具的高级应用,如使用rosbag进行数据采集和回放、使用rqt_plot进行多数据可视化、使用rqt_console进行系统状态监控等。
  7. 异常处理和错误调试:学习如何处理ROS系统的异常和错误,通过日志记录和排错技巧,快速定位和解决故障。

以上是蓝桥云课ROS机器人实验报告-03可视化和调试工具进阶实验内容的一个大致框架,具体内容可能会根据实验的目的和实际情况进行调整。

蓝桥云课ROS机器人实验报告-03可视化和调试工具核心要点总结如下:

  1. ROS可视化工具:介绍ROS提供的主要可视化工具,如rqt_plot、rqt_console、rqt_bag等。
  2. 可视化机器人模型:使用ROS的可视化工具将机器人模型进行可视化,可以直观地观察机器人的姿态、关节状态等。
  3. 可视化机器人传感器:将机器人的传感器数据(如激光雷达、摄像头、IMU等)进行可视化,可以直观地观察传感器数据的变化。
  4. 可视化机器人行为:将机器人的行为进行可视化,可以直观地观察机器人的运动、决策过程等。
  5. 调试工具:介绍ROS提供的调试工具,如rosrun、roslaunch、rqt_console等。
  6. 调试机器人程序:通过调试工具对机器人程序进行调试,可以定位程序中的错误和问题。
  7. 日志记录和排错:介绍如何使用ROS的日志记录功能,以及如何通过日志记录来排错。

以上是蓝桥云课ROS机器人实验报告-03可视化和调试工具的核心要点的总结,通过掌握这些内容,可以更好地理解和应用ROS的可视化和调试工具,提高机器人开发效率和调试能力。

//形状   msg_marker.type = visualization_msgs::Marker::CUBE; //颜色   msg_marker.color.r = 1.;   msg_marker.color.g = 0.;   msg_marker.color.b = 0.;   msg_marker.color.a = 1.;

如上代码显示红色方块,参考此代码给出黄色球体的代码

以下是显示黄色球体的代码:

// 形状  
msg_marker.type = visualization_msgs::Marker::SPHERE;  
  
// 颜色  
msg_marker.color.r = 1.0;  
msg_marker.color.g = 1.0;  
msg_marker.color.b = 0.0;  
msg_marker.color.a = 1.0;
请注意,此代码中的msg_marker是一个视觉化标记消息,它包含了要在ROS中显示的标记的信息。type字段指定了要显示的形状类型,这里我们选择visualization_msgs::Marker::SPHERE来表示球体。color字段指定了标记的颜色,这里我们选择黄色,即红色和绿色都为1.0,蓝色为0.0,透明度为1.0。


猜你喜欢

转载自blog.csdn.net/ZhangRelay/article/details/132045273
今日推荐