ROS学习笔记(十)——ROS试用练习(一)

ROS学习笔记(十)——ROS试用练习

在此说明:之前使用的ROS是indigo,前两天电脑“炸”了,所以换了kinetic.
一、ROS文件系统导览
1.1如果你想找到turtlesim包的路径,可以使用下列命令:

$ rospack find turtlesim

你将获得如下输出信息:

/opt/ros/kinetic/share/turtlesim

1.2如果你想找到你已经在系统中安装过的某个元功能包(只有一个文件的特殊功能包,即只有package.xml),示例如下:

rosstack find ros_comm

你将获得如下输出信息;

/opt/ros/kinetic/share/ros_comm

1.3如果你想获得功能包或功能包集下面的文件列表,示例如下:

rosls turtlesim

你将获得如下输出信息:

cmake  images  msg  package.xml  srv

1.4更改当前工作目录,尤其是进入某个文件夹,示例如下:

 roscd turtlesim

你将获得以下新路径:

/opt/ros/kinetic/share/turtlesim

二、创建工作空间
在开始具体工作之前,首先是创建工作空间。
2.1要查看当前工作空间,请试用如下命令:

echo $ROS_PACKAGE_PATH

你将看到如下类似信息:

/home/youname/dashgo_ws/src:/opt/ros/kinetic/share

2.2 我们将要创建的文件夹位于~/catkin_ws/src

mkdir -p ~/catkin_ws/src     #创建文件夹
cd ~/catkin_ws/src           #进入文件夹
catkin_init_workspace        #初始化工作空间

你将会看到类似如下提示信息

Creating symlink "/home/yourname/catkin_ws/src/CMakeLists.txt" pointing to "/opt/ros/kinetic/share/catkin/cmake/toplevel.cmake"

提示在src文件夹下新建了CMakeLists.txt文件

cd ~/catkin_ws/src

将会输出:

CMakeLists.txt

2.3当创建好了工作空间文件夹后,里面并没有功能包,只有CMakeList.txt文件,下一步就是编译工作空间了。为此,可以使用如下命令:

cd ~/catkin_ws
catkin_make

现在使用ls命令

cd ~/catkin_ws
ls

你将获得如下输出信息:

build  devel  src

在catkin_ws文件夹下多了build和devel文件夹
2.4为了完成配置,使用如下命令:

source devel/setup.bash

三、创建ROS功能包和元功能包
使用catkin_create_pkg命令创建
此命令的格式如下所示:

catkin_create_pkg [package_name] [dependency1] ... [dependencyN]

使用下列命令在之前创建好的工作空间中创建新的功能包

cd ~/catkin_ws/src
catkin_create_pkg chapter2_tutorials std_msgs roscpp

你将会看到如下提示信息:

Created file chapter2_tutorials/package.xml
Created file chapter2_tutorials/CMakeLists.txt
Created folder chapter2_tutorials/include/chapter2_tutorials
Created folder chapter2_tutorials/src
Successfully created files in /home/youname/catkin_ws/src/chapter2_tutorials. Please adjust the values in package.xml.

在上面这个例子中,依赖项包括std_msgs和roscpp
std_msgs:包含了常见的消息类型,表示基本数据类型和其他的基本消息构造。
roscpp:使用C++实现ROS各种功能。

四、编译ROS功能包
一旦创建了功能包,并且编了一些代码,就需要编译功能包了。
可以使用catkin_make命令

cd catkin_ws/
catkin_make

记住,必须在workspace文件夹中运行catkin_make命令
如果需要编译单个的功能包,可以使用下面格式的命令:

catkin_make --pkg <package name>

五、使用ROS节点
节点都是可执行程序,一旦编译,这些可执行文件就位于devel空间中。
先启动ROS

roscore

为了获得节点信息,可以使用rosnode工具,可以输入下列命令:

rosnode

你将获得如下输出:

rosnode is a command-line tool for printing information about ROS Nodes.

Commands:
    rosnode ping    test connectivity to node
    rosnode list    list active nodes
    rosnode info    print information about node
    rosnode machine list nodes running on a particular machine or list machines
    rosnode kill    kill a running node
    rosnode cleanup purge registration information of unreachable nodes

Type rosnode  -h for more detailed usage, e.g. 'rosnode ping -h'
rosnode list

你将看到只有一个节点

/rosout

在另外一个terminal中启动一个turtlesim节点

rosrun turtlesim turtlesim_node

此时再次使用rosnode 工具查看正在运行的节点列表

rosnode list

你将会获得如下输出:

/rosout
/turtlesim

查看turtlesim节点的详细信息:

rosnode info /turtlesim

你将获得如下输出:

Node [/turtlesim]
Publications: 
 * /rosout [rosgraph_msgs/Log]
 * /turtle1/color_sensor [turtlesim/Color]
 * /turtle1/pose [turtlesim/Pose]

Subscriptions: 
 * /turtle1/cmd_vel [unknown type]

Services: 
 * /clear
 * /kill
 * /reset
 * /spawn
 * /turtle1/set_pen
 * /turtle1/teleport_absolute
 * /turtle1/teleport_relative
 * /turtlesim/get_loggers
 * /turtlesim/set_logger_level


contacting node http://your PC name:XXXXX/ ...
Pid: XXXXX
Connections:
 * topic: /rosout
    * to: /rosout
    * direction: outbound
    * transport: TCPROS

未完待续!
2018年3月16日
于杭州

你可能感兴趣的:(ROS学习笔记)