ROS 学习
1.预备工作
快速了解文件系统概念
文件系统工具
使用 rospack
使用 roscd 切换目录
roscd log 查看历史记录
使用 rosls 列出文件
Tab 自动完成输入
2.创建一个catkin程序包
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
% This is an example, do not try to run this
% catkin_create_pkg [depend1] [depend2] [depend3]
后面的std_msgs rospy roscpp 都是依赖包
rospack depends1 beginner_tutorials 可以用rospack depends1 来找到直接依赖的包
rospack depends beginner_tutorials 可以检测出所有的依赖包
编译程序包
cd ~/catkin_ws/ #找到程序包所在的位置
catkin_make #编译
3.节点
一个节点其实只不过是ROS程序包中的一个可执行文件。ROS节点可以使用ROS客户库与其他节点通信。节点可以发布或接收一个话题。节点也可以提供或使用某种服务。
roscore 是你在运行所有ROS程序前首先要运行的命令。请运行:
roscore
rosnode list #可以找到所以的在运行的节点
$ rosrun [package_name] [node_name]
例如
rosrun turtlesim turtlesim_node
可以改变节点的名字
rosrun turtlesim turtlesim_node __name:=my_turtle
先运行(ROS系统核心程序,必须运行) roscore
运行一个节点(仿真程序)
rosrun turtlesim(package) turtlesim_node(节点)
rosrun turtlesim turtle_teleop_key#用来控制乌龟运动
rosrun rqt_graph rqt_graph
#用来表现各个节点之间的关系
中间靠topic联系起来
rostopic
命令工具能让你获取有关ROS话题的信息
rostopoc -h 是帮助,可以显示所有的功能
rostopic echo
rostopic echo可以显示在某个话题上发布的数据。
用法:
rostopic echo [topic]
使用 rostopic type
rostopic type 命令用来查看所发布话题的消息类型
rostopic type [topic的名字]
使用 rostopic pub 可以把数据发布到当前某个正在广播的话题上。
用法:
rostopic pub [topic] [msg_type] [args]
例如:rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist – ‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, 1.8]’
rostopic pub
这条命令将会发布消息到某个给定的话题。
-1 (单个破折号)这个参数选项使rostopic发布一条消息后马上退出。
/turtle1/command_velocity
这是消息所发布到的话题名称。
turtlesim/Velocity
这是所发布消息的类型。
– (双破折号)这会告诉命令选项解析器接下来的参数部分都不是命令选项。这在参数里面包含有破折号-(比如负号)时是必须要添加的。
使用rostopic hz命令可以用来查看数据发布的频率。
rqt_plot命令可以实时显示一个发布到某个话题上的数据变化图形。这里我们将使用rqt_plot命令来绘制正在发布到/turtle1/pose话题上的数据变化图形。
rosrun rqt_plot rqt_plot