工作空间设置

如果你没有在完整的教程中创建一个工作空间, 点击这里获取一些简要说明 .

  Show EOL distros: 

创建一个名为~/tutorials.rosintstall的文件,该文件包含如下内容:

- other: { local-name: workspace }

添加你现在正在使用的ROS发行版本:

rosinstall ~/tutorials /opt/ros/$ROS_DISTRO>> ~/tutorials.rosinstall

当你每次打开一个新终端要使用这个工作空间时,你都需要设置ROS环境,输入如下:

source ~/tutorials/setup.bash

获取这个文件~/titorials/workspace添加到你的ROS_PACKAGE_PATH。

在这个目录下你创建的任何包,都可以被rospack找到。

获取文件加载到ROS_PACKAGE_PATH的另一个方法是,将这个路径添加到你的.bashrc,但是需要记住的是,这个配置将会在永久在你的.bashrc中生效,并且只能进行一种环境设置。想要获取更多信息,查看这个界面

像下面这样,创建一个catkin工作空间:

$ source /opt/ros/$ROS_DISTRO/setup.bash
$ mkdir -p ~/tutorial_ws/src
$ cd ~/tutorial_ws
$ catkin_init_workspace src
$ catkin_make

现在从生成的文件中,配置ROS到你的系统,这样,在src目录下的所有你创建的包都可以被rospack找到,当然,生成的二进制文件也可以被rosrunroslaunch调用:

$ source devel/setup.bash

在开始actionlib教程之前,我们需要花费一些时间来创建一个示例包并在该包下运行教程代码。创建一个示例包并添加如下依赖:

$ cd %YOUR_CATKIN_WORKSPACE%/src
$ catkin_create_pkg actionlib_tutorials actionlib message_generation roscpp rospy std_msgs actionlib_msgs

(如果你对创建catkin包不熟悉,查阅创建一个catkin包教程。(在那个界面,不要忘记选择catkin作为编译系统)。

$ roscd tutorials
$ roscreate-pkg learning_actionlib actionlib roscpp rospy roslib std_msgs actionlib_msgs

确保learning_actionlib目录在你的ROS_PACKAGE_PATH中。在learning_actionlib/CMakeLists.txt中取消rosbuild_genmsg()注释,然后编译它:

$ rosmake learning_actionlib

(注意:这些教程要求common-0.5.0或更高版本)

基础教程

  1. 使用Execute Callback编写一个简单的行为服务器

    这个教程涵盖了使用simple_action_server库来创建一个Fibonacci行为服务器。这个行为服务器教程会生成一个Fibonacci序列、目标的顺序序列、自身计算的反馈序列和最后序列的结果。

  2. 编写一个简单行为客户端

    这个教程涵盖了使用simple_action_client库来创建一个Fibonacci行为客户端。这个示例程序创建一个行为客户端并且发送一个目标到行为服务器。

  3. 运行行为客户端和服务器

    本教程涵盖了运行Fibonacci服务器和客户端,随后通过可视化工具查看输出通道和节点图。

  4. 使用Execute Callback (Python)编写一个简单的行为服务器

    本教程涵盖了使用simple_action_server库来创建一个Fibonacci行为服务器,以Python的形式。这个行为服务器示例会生成一个Fibonacci序列、目标序列、完成反馈序列和最终结果序列。

  5. 编写一个简单的行为客户端(Python)

    本教程涵盖了使用action_client库和Python创建一个Fibonacci简单行为库。

中级教程

  1. 使用目标回调方法(Goal Callback Method)编写一个简单的行为服务器

    本教程涵盖了使用simple_action_server库来创建一个平均行为服务器。该示例展示了如何使用行为来处理或反应从ros节点中传来的数据。行为服务器平均来自ros节点的数据,目标是将多组示例去平均,反馈是简单数字、简单数据、当前平均和当前标准差,以及平均后的结果和简单数字请求的标准差。

  2. 编写一个简单客户端线程

    本教程涵盖了使用simple_action_client库来创建一个平均行为客户端。示例程序循环一个线程,创建一个行为客户端,然后发送目标到行为服务器。

  3. 使用其他节点运行行为服务器和客户端

    本教程涵盖了使用其他节点运行一个平均服务器和客户端,然后可视化查看输出通道和节点图。

高级教程

  1. 编写一个基于SimpleActionClient的回调函数

    相比一个简单的线性脚本,使用回调函数的示例程序流会更复杂。

创建一个新教程

Wiki: cn/actionlib_tutorials/Tutorials (last edited 2017-03-19 07:37:57 by Playfish)