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或该页。
- 创建一个空的
follower.parameters
文件。
touch follower.parameters
- follower.launch文件修改。将默认模拟值更改为真。
- 旧的值:
<arg name="simulation" default="false"/>
- 新的值:
<arg name="simulation" default="true"/>
- 这个字符串在
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
- 导出的rapp在my_rapps/package.xml文件加入这个字符串在
标签。
<export>
<rocon_app>rapps/follower/follower.rapp</rocon_app>
</export>
- 编译包。
source /opt/ros/indigo/setup.bash
cd ~/my_ws/
catkin_make
测试
- 改变路径。
source ~/my_ws/devel/setup.bash
- 显示现有rapps。
rocon_app list
- 你会看到长长的名单。
- 找到my_rapps.
显示rapp信息。
rocon_app info my_rapps/follower
- 结果:
修改gazebo_concert包
- 编辑
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]
- 编译包
source /opt/ros/indigo/setup.bash
cd ~/my_ws/
catkin_make
运行follower Rapp
- 改变路径。
source ~/my_ws/devel/setup.bash
- 启动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.
- 开始rocon_remocon。
rocon_remocon
按
Refresh
。选择Gazebo Concert->User->Gazebo Viewer.
- 你会看到熟悉的gazebo
- 在一个新的终端开始跟随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
- 注意:只有一个拉普可同时运行,否则可能发生资源冲突。
在Interactions Chooser选择Concert Teleop。
选择资源列表中gamza1捕获。
驱动gamza1使用操纵杆进行跟随行为。
停止rapp。
rosservice call /gamza2/stop_rapp
# Output:
stopped: True
error_code: 0
message: Success
- 中断进程。关闭窗口
- 我们已经完成了机器人端,转到下一个教程写用户端。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号