rqt_console
rqt_console 附加到ROS的日志记录框架以显示节点的输出
rqt_logger_level 允许我们在节点运行时更改其详细级别(DEBUG,WARN,INFO和ERROR)
rosrun rqt_console rqt_console
rosrun rqt_logger_level rqt_logger_level
# turtle 会一直向 x = 2 的方向向前走,一直会撞墙
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'
launch 文件
没有必要把launch文件放在一个文件夹中
launch 文件用来启动 多个节点
rosrun 启动单个节点
name="imu_node" //name=“××”是你在ros::init()中定义的节点名称,我的是ros::init(argc,argv,"imu_node")
//如果此处node标签下的name属性与init()中的节点名不一致,那么node标签的name属性会覆盖init()中的节点名
pkg="package" //pkg=“××”则为你的功能包名称,我的是package
type="imu_node"//type=“××”是你在cmakelist.txt中定义的可执行文件名称,我在编写时都将可执行文件的名称命名为节点的名称,如: add_executable(imu_node src/imu.cpp)
<launch>
<!--
namespace: turtlesim1
one group with one node
node's name is sim
-->
<group ns="turtlesim1">
<node pkg="turtlesim" name="sim" type="turtlesim_node"/>
</group>
<!--
namespace: turtlesim2
one group with one node
node's name is sim
-->
<!--
不同的命名空间内部不存在命名相同冲突
-->
<group ns="turtlesim2">
<node pkg="turtlesim" name="sim" type="turtlesim_node"/>
</group>
<!--
开启节点 mimic
话题的输入 和 输出命名为 turtlesim1 和 turtlesim2
重命名将使 turtlesim2 模仿 turtlesim1
-->
<node pkg="turtlesim" name="mimic" type="mimic">
<remap from="input" to="turtlesim1/turtle1"/>
<remap from="output" to="turtlesim2/turtle1"/>
</node>
</launch>
fengxuewei@fengxuewei:~/C++_myself/catkin_ws/src/beginner_tutorials/launch$
roslaunch beginner_tutorials turtlemimic.launch
# 启动launch文件之后,发送消息,两个turtle节点会做相同的动作
# <remap from="input" to="turtlesim1/turtle1"/>
# <remap from="output" to="turtlesim2/turtle1"/>
rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
# 之前的发送消息
# rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'