< >
Home » Turtlebot与仿真 » Turtlebot仿真-编写第一个Rapp程序

Turtlebot仿真-编写第一个Rapp程序

编写第一个Rapp程序

  • 我们要告诉你如何写rocon application (Rapp)。
  • 它是一堆指令如何启动应用程序,像一个有特殊结构和逻辑的包装器。
  • 你可以找到更多的信息在Rapp规范文档
  • 我们将为turtlebot_follower包编写一个Rapp。

先决条件

  • 这节课是上一节课的延续:“多turtlebot互动”。如果你没有做那一课,先做吧。

创建的追随者Rapp

1。创建一个包my_rapps。

cd ~/my_ws/src
catkin_create_pkg my_rapps

2。创建一个跟随follower文件夹 。

cd my_rapps
mkdir -p rapps/follower

3.从GitHub上复制文件

  • 有四个文件:follower.interface,follower.launch,follower.rapp,follower_bubble_icon.png。
  • 你可以找到关于这些文件的更多信息在创建您的第一个Rapp或该页。
  1. 创建一个空的follower.parameters文件。
touch follower.parameters
  1. follower.launch文件修改。将默认模拟值更改为真。
  • 旧的值:
<arg name="simulation" default="false"/>
  • 新的值:
<arg name="simulation" default="true"/>
  1. 这个字符串在follower.rapp文件。
public_parameters: follower.parameters
  • 显示如下:
display:           Follower
description:       Take the TurtleBot for a stroll. TurtleBot will follow whatever is in front of it.
compatibility:     rocon:/turtlebot
launch:            follower.launch
public_interface:  follower.interface
public_parameters: follower.parameters
icon:              follower_bubble_icon.png
  1. 导出的rapp在my_rapps/package.xml文件加入这个字符串在标签。
<export>
  <rocon_app>rapps/follower/follower.rapp</rocon_app>
</export>
  1. 编译包。
source /opt/ros/indigo/setup.bash
cd ~/my_ws/
catkin_make

测试

  1. 改变路径。
source ~/my_ws/devel/setup.bash
  1. 显示现有rapps。
rocon_app list
  • 你会看到长长的名单。

sim_rocon_app_list

  • 找到my_rapps.

sim_rocon_app_my_rapps

  1. 显示rapp信息。

    rocon_app info my_rapps/follower

  • 结果:

sim_rocon_app_info

修改gazebo_concert包

  1. 编辑gazebo.parameters文件。
cd ~/my_ws/src/rocon_tutorials/concert_tutorials/gazebo_concert/solutions
  • 修改每个机器人robot_rapp_whitelist

  • 旧值:

robot_rapp_whitelist: [rocon_apps, turtlebot_rapps]
  • 新值:
robot_rapp_whitelist: [rocon_apps, turtlebot_rapps, my_rapps]
  1. 编译包
source /opt/ros/indigo/setup.bash
cd ~/my_ws/
catkin_make

运行follower Rapp

  1. 改变路径。
source ~/my_ws/devel/setup.bash
  1. 启动gazebo_concert。
roslaunch gazebo_concert concert.launch
  • 你会看到这些字符串在每个机器人终端。
[INFO] [WallTime: 1456200881.276905] [5.990000] Rapp Manager : 'my_rapps/follower' added to the list of runnable apps.

sim_gamza1_terminal

  1. 开始rocon_remocon。
rocon_remocon
  1. Refresh

  2. 选择Gazebo Concert->User->Gazebo Viewer.

  • 你会看到熟悉的gazebo

sim_gazebo_concert

  1. 在一个新的终端开始跟随rapp。
rosservice call /gamza2/start_rapp my_rapps/follower [] []
# Output:
started: True
error_code: 0
message: Success
application_namespace: gamza2
  • 你会看到gamza2终端:
[INFO] [WallTime: 1456201608.858077] [15.600000] Rapp Manager : request received to start rapp [my_rapps/follower]
[INFO] [WallTime: 1456201608.858627] [15.600000] Rapp Manager : starting app 'my_rapps/follower' underneath gamza2
  • 注意:只有一个拉普可同时运行,否则可能发生资源冲突。
  1. 在Interactions Chooser选择Concert Teleop。

  2. 选择资源列表中gamza1捕获。

  3. 驱动gamza1使用操纵杆进行跟随行为。

  4. 停止rapp。

rosservice call /gamza2/stop_rapp
# Output:
stopped: True
error_code: 0
message: Success
  1. 中断进程。关闭窗口
  • 我们已经完成了机器人端,转到下一个教程写用户端。

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: turtlebot仿真