Package:软件包,ROS应用程序代码的组织单元。每个软件包都可包含程序库、可执行文件、脚本或其他手动创建文件。
Manifest(package.xml):清单,对“软件包”信息做描述,定义软件包相关元信息之间的依赖关系(版本、维护者、许可协议等)。
获取软件包的相关信息 用法:rospack find [包名称]
是rosbash命令集的一部分,允许直接切换(cd)工作目录到某个软件包或软件集当中。 用法:roscd find [本地名称[/子目录]] 可用pwd输出当前工作目录。 roscd只能切换到在 ROS_PACKAGE_PATH 环境下的软件包路径。 用echo $ROS_PACKAGE_PATH查看 ROS_PACKAGE_PATH 包含的路径,每条路径用冒号:分隔。 roscd log可切换到ROS保存日记文件的目录下。(若没执行过ROS程序,会报错)
是rosbash命令集的一部分,允许直接按软件包名称,而不是绝对路径执行ls命令。用法:rosls [本地包名称[/子目录]]
当软件包过长时,用 TAB键自动补全。 想查看所有已安装列表时,用roscd 和 两次TAB键可以实现。
第一次运行时,会在src中创建 CMakeLists.txt 的链接 若使用python 3时,第一次创建用
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3新生成setup.bash文件
source devel/setup.bash需确保ROS_PACKAGE_PATH环境变量包含你的工作空间目录,查看方式为:
echo $ROS_PACKAGE_PATH(1)必须包含catkin compliant package.xml文件。 (age.xml文件提供有关程序包的元信息) (2)必须包含一个catkin 版本的CMakeLists.txt文件,而Catkin metapackages中必须包含一个对CMakeList.txt文件的引用。 (3)每个目录下只能有一个程序包 程序包格式为:
my_package/ CMakeLists.txt package.xml1.cd ~/catkin_ws/src进到catkin工作空间中src目录下 2. catkin_create_pkg 创建新的程序包名 这个程序包依赖包例:std_msgs rospy roscpp 这将会创建一个名为新程序包名的文件夹,这个文件夹里面包含一个package.xml文件和一个CMakeLists.txt文件。这两个文件都自动包含了部分执行catkin_create_pkg命令时提供的信息。
因为在编译和运行时我们需要用到所有指定的依赖包,因此还需要将每一个依赖包分别添加到run_depend标签中。
切换到catkin workspace 并查看src文件夹,可以看到一个名为beginner_tutorials的文件夹。
cd ~/catkin_ws/ ls src使用catkin_make编译
ROS客户端库允许使用不同编程语言编写的节点之间互相通信:
rosnoderosnode list: 查看当前运行节点的名称 rosnode info/指定节点 返回特定节点信息
rosrun 允许使用包名直接运行一个包内节点 rosrun [package_name] [node_name]例:重新打开一个终端
rosrun turtlesim turtlesim_node可以看到 turtlesim 窗口。 ROS可以通过命令行重新配置名称。 关闭 turtlesim 窗口停止运行节点 (或者回到rosrun turtlesim终端并使用ctrl-C),重新运行并改变节点名:
rosrun turtlesim turtlesim_node __name:=my_turtle若仍有/turtlesim,则用rosnode cleanup 删除
可以使用ping来测试rosnode ping my_turtle
urtlesim_node节点和turtle_teleop_key节点之间是通过一个ROS话题来互相通信的。turtle_teleop_key在一个话题上发布按键输入消息,而turtlesim则订阅该话题以接收该消息。
在新的终端中运行rosrun rqt_graph rqt_gra看节点通信图 2.rostopic 获取有关ROS话题信息 用rostopic -h查看rostopic子命令 rostopic echo [topic]显示在某个话题上发布的数据。 当你按下向上方向键时应该会看到linear信息。 需要刷新一下ROS graph(rosrun rqt_graph rqt_gra)。可以看到rostopic echo(红色显示部分)也订阅了turtle1/command_velocity话题。 打开新终端: rostopic list能够列出所有当前订阅和发布的话题。 rostopic list -h可以查看一下list子命令需要的参数 rostopic list -v会显示出有关所发布和订阅的话题及其类型的详细信息