ROS-小海龟案例—ROS命令
rosnoderos:节点管理命令
,通过此命令可以查看、操作以及监测已经运行的ros节点:
rosnode 命令 作用
rosnode list 列出当前运行的node信息
rosnode info /话题名 显示出node的详细信息
rosnode kill /话题名 结束某个node
rosnode ping 测试连接节点
rosnode machine 列出在特定机器或列表机器上运行的节点
rosnode cleanup 清除不可到达节点的注册信息
rostopic:用于显示有关ROS 主题的调试信息
,包括发布者,订阅者,发布频率和ROS消息
rostopic list 列出当前所有的topic
rostopic info /话题名 显示某个topic的属性信息
rostopic echo /话题名 显示某个topic的内容
rostopic pub /话题名 ... 向某个topic发布内容
rostopic bw /话题名 查看某个topic的带宽
rostopic hz /话题名 查看某个topic的频率
rostopic find topic_type 查找某个类型的topic
rostopic type topic_name 查看某个topic的类型(msg)
rostopic delay 显示带有 header 的主题延迟
rospack是对package管理的工具
,命令的用法如下:
rospack
命令 作用
rospack help 显示rospack的用法
rospack list 列出本机所有package
rospack depends [package] 显示package的依赖包
rospack find [package] 定位某个package
rospack profile 刷新所有package的位置记录
rosdep 是用于管理ROS package依赖项
的命令行工具
rosdep check [package] 检查package的依赖是否满足
rosdep install [package] 安装package的依赖
rosdep db 生成和显示依赖数据库
rosdep init 初始化/etc/ros/rosdep中的源
rosdep keys 检查package的依赖是否满足
rosdep update 更新本地的rosdep数据库
rosmsg是用于显示有关 ROS消息类型的信息
的命令行工具。
rosmsg list 列出系统上所有的消息
rosmsg show msg_name 显示某个消息的描述
rosmsg info msg_name 显示某个消息的信息
rosmsg md5 显示 md5 加密后的消息
rosmsg package 显示某个功能包下的所有消息
rosmsg packages 列出包含消息的功能包
rosservice包含用于列出和查询ROSServices的rosservice命令行工具。调用部分服务时,如果对相关工作空间没有配置 path,需要进入工作空间调用 source ./devel/setup.bash ,详细命令如下表:
rosservice list 显示服务列表
rosservice info 打印服务信息
rosservice type 打印服务类型
rosservice uri 打印服务ROSRPC uri
rosservice find 按服务类型查找服务
rosservice call 使用所提供的args调用服务
rosservice args
rossrv是用于显示有关ROS服务类型的信息的命令行工具,如下表:
rossrv show 显示服务消息详情
rossrv info 显示服务消息相关信息
rossrv list 列出所有服务信息
rossrv md5 显示 md5 加密后的服务消息
rossrv package 列出某个包下所有服务消息
rossrv packages 列出包含服务消息的所有包
rosparam包含rosparam命令行工具,用于使用YAML编码文件在参数服务器上获取和设置ROS参数使用命令行来维护参数服务器,如下表:
rosparam set param_key param_value 设置参数
rosparam get param_key 显示参数
rosparam load file_name 从外部文件加载参数
rosparam dump filename 保存参数到外部文件
rosparam delete 删除参数
rosparam list 列出所有参数名称
启动小龟程序
roscore #启动ros master
rosrun turtlesim turtlesim_node #启动小龟仿真器
rosrun turtlesim turtle_teleop_key #启动小龟控制节点
rosbag record -a -O cmd_record #话题记录
rosbag play cmd_record.bag #话题复现
显示话题图:
rqt_graph
查看海龟仿真话题接口数据内容
~$ rosnode info /turtlesim //查看海龟仿真话题接口数据内容
--------------------------------------------------------------------------------
Node [/turtlesim]
Publications: //turtlesim 这个节点发布那些数据* /rosout [rosgraph_msgs/Log] //日志* /turtle1/color_sensor [turtlesim/Color] //颜色信息* /turtle1/pose [turtlesim/Pose] //位置Subscriptions: //订阅那些数据* /turtle1/cmd_vel [geometry_msgs/Twist] //这个是键盘节点发布的指令,订阅这个指令让海龟动起来Services: //服务* /clear* /kill* /reset* /spawn //这个服务可以产生新的海龟* /turtle1/set_pen* /turtle1/teleport_absolute* /turtle1/teleport_relative* /turtlesim/get_loggers* /turtlesim/set_logger_levelcontacting node http://xinghai:41471/ ... //内部通信的机制
Pid: 15318
Connections:* topic: /rosout* to: /rosout* direction: outbound (37887 - 127.0.0.1:46600) [26]* transport: TCPROS* topic: /turtle1/cmd_vel* to: /teleop_turtle (http://xinghai:38343/)* direction: inbound (54384 - xinghai:38191) [28]* transport: TCPROS
话题相关的指令:
rostopic :话题rostopic echo // 打印话题里面的内容的rostopic list:话题列表# 给小龟话题的是/turtle1/cmd_vel
使用话题查看小海龟实时位置
rostopic echo /turtle1/pose
x: 5.544444561004639
y: 5.544444561004639
theta: 0.0
linear_velocity: 0.0 //线速度
angular_velocity: 0.0 //角速度
---
x: 5.544444561004639
y: 5.544444561004639
theta: 0.0
linear_velocity: 0.0
angular_velocity: 0.0
---
发布某一话题:例发布海龟的速度话题
rostopic pub //去发布某一话题
rostopic list //查看话题
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist //发布话题海龟的速度"linear: //linear:线速度x: 0.0y: 0.0z: 0.0
angular: //angular:角速度x: 0.0y: 0.0z: 0.0" //加上: -r 10 :以一秒中发布10次发布指令
rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist //发布话题海龟的速度
发布请求:例如请求一个新的海龟
rosservice call //发布请求
rosservice list : //请求的节点列出来// 请求/spawn服务
rosservice call /spawn //用Tab来把后面的补全:创建一个新海龟,海龟名字要写
"x: 0.0 //在什么位置产生,名字
y: 0.0
theta: 0.0
name: ''
话题记录
rosbag record -a -O cmd_record
话题复现
rosbag play cmd_record.bag
小龟能将保存下来的路程保存下来自己做行走
查看消息的数据结构
获取小龟页面的节点值
rosparam list #查询节点rosparam get 节点名称 #获取节点信息rosservice call /clear "{}"#修改rgb值
rosparam get /background_r 255
rosparam get /background_g 255
rosparam get /background_b 255rosservice call /clear "{}" #刷新rgb值rosparam dump param.yaml #保存现在的参数值
海龟跟踪
链接查看树
海龟位置角度描述
in Quaternion :四元素
in RPY (radian) :弧度
in RPY (degree) :角度
roslaunch turtle_tf turtle_tf_demo.launch #小龟跟踪rosrun tf view_frames #查看链接rosrun tf tf_echo turtle1 turtle2 #位置角度rosrun rviz rviz -d 'rospack find turtle_tf' /rviz/turtle_rviz.rviz #打开RVIz软件
source ~/tutorial_ws/devel/setup.bash
Command ‘roscore’ not found, but can be installed with:
sudo apt install python3-roslaunch
安装的辅助包
amcl gmapping map_server move_base