ROS学习笔记(五、rqt_console和roslunch的使用)

在笔记四中,我们理解了ros话题的意思,并且学习了ros话题常用的命令,接下来,我们学习使用rqt_console和rqt_logger_level对ros进行调试。

rqt_console属于ros日志框架的一部分,是用来显示节点输出信息的。而rqt_logger_level允许我们修改节点运行时输出信息的日志等级(loggers level)(包括DEBUG、WARN、INFO、ERROR)。

其中有一个专业名词叫日志等级,那日志等级是什么意思呢?为什么要修改日志的等级呢?

首先,日志的意思是记录系统运行过程中的重要信息的文件,ok,既然日志是记录重要信息的文件,那日志等级是啥意思呢?

日志等级的意思是:在ros运行过程中,系统会给出信息,这些信息的重要性按等级排序,我们预先设置的日志等级是哪一个,最终我们就会输出我们预先设置好的等级信息。通俗一点讲就是:这就是一个日志过滤器,可以将低等级的信息筛选掉,留下重要的,需要知道的信息。

-------------------------------------------------------------------------------------------------------

ok,现在,我们理解了rqt_console和rqt_logger_level的意思以及用途,接下来,我们尝试理解roslaunch的意思以及用途。

launch文件可以同时运行多个节点,这个在多机器人协同工作中十分重要。那他是怎么实现多个节点同时运行的呢?原理是啥呢?

<launch>
 
  <group ns="turtlesim1">
    <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  </group>
 
  <group ns="turtlesim2"> 
    <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  </group>
  
  <node pkg="turtlesim" name="mimic" type="mimic">
    <remap from="input" to="turtlesim1/turtle1"/>
    <remap from="output" to="turtlesim2/turtle1"/>
  </node>
 
</launch>

其中的意思,如下表格所示:

group ns设置命名空间
node pkg节点包
name节点名称
type节点类型(与节点话题类似)
remap允许在master中对话题进行重映射,以解决通信问题。

通过这段代码,我们设置了两个命名空间,并在两个命名空间中分别设置了一样的节点包、节点名称以及节点类型,可以使我们同时打开两个一样的节点而不会产生命名冲突,在最后,启动了模仿节点,让turtlesim2模仿turtlesim1。

-------------------------------------------------------------------------------------------------------------

既然知道了launch文件的作用了,那么我们应该如何去生成一个launch文件呢?

在笔记二中,我们创建了一个功能包test_pkg,接下来,我们将launch文件储存在test_pkg中。

首先,进入test_pkg功能包目录下:

roscd test_pkg

然后,创建一个launch的目录

mkdir launch
cd launch

接着,创建一个名为turtlemimic.launch的文件

touch turtlemimic.launch

接着,打开tutlemimic.launch

gedit turtlemimic.launch

将下面的代码写进去:

<launch>
 
  <group ns="turtlesim1">
    <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  </group>
 
  <group ns="turtlesim2"> 
    <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  </group>
  
  <node pkg="turtlesim" name="mimic" type="mimic">
    <remap from="input" to="turtlesim1/turtle1"/>
    <remap from="output" to="turtlesim2/turtle1"/>
  </node>
 
</launch>

然后,按下save,并在终端里运行turtlemimic.launch文件

roslaunch test_pkg turtlemimic.launch

最终,我们能看见有两个turtlesim的小乌龟显示出来:

至此,我们已经理解了rqt_console和rqt_logger_level日志等级的意思和使用方法以及roslaunch的意思以及使用方法!!!!φ(゜▽゜*)♪

ROS2 Humble 中,`rqt_robot_steering` 是一个用于控制机器人运动的插件,通常用于通过 GUI 界面发送速度指令,控制机器人在仿真或真实环境中的运动。对于 TurtleSim 这样的基础仿真器,可以通过该插件实现对仿真机器人的直观控制。 ### 安装 `rqt_robot_steering` 在 ROS2 Humble 中,可以通过 `apt` 包管理工具安装该插件: ```bash sudo apt install ros-humble-rqt-robot-steering ``` 安装完成后,可以启动 TurtleSim 仿真器以及 `rqt_robot_steering` 插件来控制仿真机器人。 ### 启动 TurtleSim rqt_robot_steering 1. **启动 TurtleSim 节点**: ```bash ros2 run turtlesim turtlesim_node ``` 2. **启动 `rqt_robot_steering` 插件**: ```bash ros2 run rqt_robot_steering rqt_robot_steering ``` 一旦插件启动,会打开一个 GUI 窗口,用户可以通过拖动方向杆(joystick)来控制 TurtleSim 机器人的运动。插件会发布速度指令到 `/cmd_vel` 话题,而 TurtleSim 订阅了该话题以接收控制命令 [^2]。 ### 验证话题通信 可以通过以下命令查看是否成功发布速度指令: ```bash ros2 topic echo /cmd_vel ``` 如果方向杆被拖动,应该能看到类似如下的输出: ```bash linear: x: 2.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 1.5 ``` 这表明 `rqt_robot_steering` 正确发布了速度指令,并且 TurtleSim 正在接收这些指令。 ### 自定义配置 如果需要调整最大线速度或角速度,可以在启动插件时使用参数服务器或修改插件的配置文件。例如,可以通过以下方式传递参数: ```bash ros2 run rqt_robot_steering rqt_robot_steering _max_linear:=3.0 _max_angular:=2.0 ``` 上述命令将最大线速度设置为 3.0 m/s,最大角速度设置为 2.0 rad/s [^1]。 ### 注意事项 - 确保 ROS2 环境变量已正确设置,即已经执行了 `source /opt/ros/humble/setup.bash`。 - 如果 TurtleSim 没有响应,可以检查 `/cmd_vel` 话题是否正常发布数据。 - 如果插件未出现在 `rqt` 界面中,可以尝试手动加载插件或检查安装是否完整。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值