rqt是ROS2的GUI工具,在rqt中完成的操作都可以在命令行完成。
准备:打开小海龟和小海龟操作窗口代码为:
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
(1)安装rqt,运行代码:
sudu apt update
sudu apt install ~nros-foxy-rqt*
(2)运行rqt,运行代码:rqt,出现rqt空白窗口,点击Plugins>Services>Services Caller,打开一个Services Caller窗口,点击Service下拉菜单左侧的刷新按钮,确保所有服务可用,刷新后界面如图
(3)使用spawn服务(spawn-产卵)
点击Service下拉菜单,选择“/spawn”命令,设置海龟的位置和名字,命名一个跟之前海龟名字不同的名字,如图
然后点击Call按钮,就会在之前打开的turtlesim界面出现一只新的海龟,如图,此时点击刷新,turtle2的服务会出现在服务列表,否则服务列表中没有turtle2的相关服务。
(4) 尝试 set_pen 服务(设置笔的属性)
在下拉菜单选择/turtle1/set_pen服务,可以在此界面设置turtle1的运行轨迹颜色(通过RGB值),宽度,是否打开,其中off值设置为“1”时关闭轨迹;
(5)重新映射(控制turtle2)
打开新窗口,运行代码:
ros2 run turtlesim turtle_teleop_key --ros-args --remap turtle1/cmd_vel:=turtle2/cmd_vel
此时,在此窗口中进行按键操作,可以运行turtle2,同时,在另一个运行"ros2 run turtlesim turtle_teleop_key"的窗口操作,可以运行turtle1
(6)关闭小海龟
在turtlesim_node的终端中按Ctrl+C,在turtle_teleop_key终端按Q。