ROS-小海龟案例---ROS命令

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

ROS-小海龟案例---ROS命令_第1张图片

查看海龟仿真话题接口数据内容

~$ 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_level


contacting 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

ROS-小海龟案例---ROS命令_第2张图片

话题相关的指令:

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.0
  y: 0.0
  z: 0.0
angular:                                                             //angular:角速度
  x: 0.0
  y: 0.0
  z: 0.0" 

//加上:   -r 10  :以一秒中发布10次发布指令
rostopic  pub -r 10  /turtle1/cmd_vel  geometry_msgs/Twist                 //发布话题海龟的速度

ROS-小海龟案例---ROS命令_第3张图片

发布请求:例如请求一个新的海龟

rosservice call            //发布请求
rosservice  list :        //请求的节点列出来

// 请求/spawn服务
rosservice call /spawn     //用Tab来把后面的补全:创建一个新海龟,海龟名字要写
"x: 0.0                    //在什么位置产生,名字
y: 0.0
theta: 0.0
name: ''

ROS-小海龟案例---ROS命令_第4张图片

话题记录

rosbag record -a -O cmd_record

ROS-小海龟案例---ROS命令_第5张图片

话题复现

rosbag play cmd_record.bag
小龟能将保存下来的路程保存下来自己做行走

查看消息的数据结构

ROS-小海龟案例---ROS命令_第6张图片

获取小龟页面的节点值

rosparam list #查询节点

rosparam get  节点名称       #获取节点信息

rosservice call /clear "{}"

#修改rgb值
rosparam get /background_r 255
rosparam get /background_g 255
rosparam get /background_b 255


rosservice call /clear "{}"  #刷新rgb值


rosparam dump param.yaml  #保存现在的参数值

海龟跟踪
ROS-小海龟案例---ROS命令_第7张图片
链接查看树
ROS-小海龟案例---ROS命令_第8张图片

海龟位置角度描述
ROS-小海龟案例---ROS命令_第9张图片
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.bashROS-小海龟案例---ROS命令_第10张图片

ROS-小海龟案例---ROS命令_第11张图片

Command ‘roscore’ not found, but can be installed with:

sudo apt install python3-roslaunch

ROS-小海龟案例---ROS命令_第12张图片

安装的辅助包

amcl   gmapping  map_server  move_base  

你可能感兴趣的:(#,ROS基础,c++)