Wiki

Only released in EOL distros:  

Package Summary

RCLL simulation access through Fawkes

Package Summary

RCLL simulation access through Fawkes

Package Summary

RCLL simulation access through Fawkes

Introduction

This package provides topics and services specific for the ROS integration with the simulation of the RoboCup Logistics League (RCLL) that is also used for the Planning Competition for Logistics Robots In Simulation. The simulation environment is based on Gazebo and Fawkes. Detailed information about the simulation is available on the RCLL simulation website.

The main node of this package provides access to the global pose of the robot, light signal information perceived by the robot, feedback from zone exploration, and a service to trigger navgraph generation. Additional nodes allow for automatic sending of beacons and skill execution integration (not necessary anymore, it still exists for reference if you want to interface directly with Fawkes).

The nodes should each operate in a robot-specific namespace. For an example see the included launch files.

If you use the provided USB stick, you do not need to worry about the requirements and installation requirements, it is all setup and this page only documents the available interfaces/API. Use the following instructions if you want to setup the simulation on your own system.

Requirements

For general setup instructions to setup ROS and Fawkes on your system please have a look at our wiki for installation on Fedora, or Ubuntu.

Running the Simulation with ROS Integration

The following assumes that you have successfully

  • installed ROS indigo, jade, or kinetic including the additional packages mentioned in the requirements
  • have a working and sufficiently recent version of Gazebo
  • setup the simulation consisting of gazebo-rcll, llsf-refbox, and fawkes-robotino (if any of those appear unknown to you check the simulation setup instructions again)

Then it is time to start the simulation. First, run without the ROS integration and with the default agent that comes with the simulation.

cd fawkes-robotino/bin
./gazsim.bash -x start -r -a -t -n1

This opens a separate terminal with several tabs. Please see the instructions to run a game in the simulation that gives an overview of the tabs and what to do to start the game. Once you set the game to the exploration phase the robots should start moving. If you are at this point, excellent!

Then it is time to run the simulation with the ROS integration. We modify the command above to the following.

cd fawkes-robotino/bin
./gazsim.bash -x start -n 1 -r -t \
  --ros-launch-main rcll_fawkes_sim:rcll_fawkes_sim_all_1robot.launch

This will run the simulation without the original agent (no "-a" flag) and with the appropriate ROS nodes for a single robot (the robot should still appear in the refbox shell as before and rostopic list should show many topics, also in the robot1 namespace.

Then we instruct the robot to move to a specified machine. To do this, run the actionlib client:

rosrun actionlib axclient.py /robot1/skiller fawkes_msgs/ExecSkillAction

Then in the "Goal" box enter the following:

skillstring='ppgoto{place="C-CS1-O"}'

This instructs the robot to go with global path planning to the output side of the first cyan cap station. The robot should then start moving and the goal should show as completed once the position has been reached.

At this point you are ready to go! Have a look at the list of available skills and make the robot do as you wish.

Getting Help

If you run into trouble, please join the planning competition's Google group to ask questions.

Nodes

This package contains the following nodes.

rcll_fawkes_sim

This is the main node providing RCLL-specific information.

Published Topics

rcll_sim/explore_zone_info (rcll_fawkes_sim_msgs/ExplorationZoneInfo) rcll_sim/mps_marker_array (rcll_fawkes_sim_msgs/MPSMarkerArray) rcll_sim/mps_light_state (rcll_fawkes_sim_msgs/MPSLightState) rcll_sim/amcl_pose (geometry_msgs/PoseWithCovarianceStamped)

Services

rcll_sim/navgraph_generate (rcll_fawkes_sim_msgs/NavgraphWithMPSGenerate)

rcll_beacon_sender

This node allows to periodically send a beacon signal to the referee box. Ideally, the same operation will be performed by your system's executive to signal aliveness of the robot and readyness to perform its task. In this case, the source of this nodes serves as an example. If it is not possible that the executive performs this task, this node may be run as an alternative. Note, however, that failures of the executive may go unnoticed then.

Subscribed Topics

rcll_sim/amcl_pose (geometry_msgs/PoseWithCovarianceStamped)

Services Called

rcll/send_beacon (rcll_ros_msgs/SendBeaconSignal)

fawkes_skiller

This node provides an action to execute skills through the Lua-based Behavior Engine, more specifically through its Fawkes implementation skiller (skill execution and run-time. The current version of Fawkes provides the ros-skiller which serves the same purpose (and provides exactly the same ROS message API), please see its documentation on how to execute skills.

The fawkes_skiller node is used as it more easily supports remapping to push each robot into its own namespace.

Action Goal

skiller/goal (fawkes_msgs/ExecSkillGoal)

Action Result

skiller/result (fawkes_msgs/ExecSkillResult)

Action Feedback

skiller/feedback (fawkes_msgs/ExecSkillFeedback)

Published Topics

skiller_status (fawkes_msgs/SkillStatus)

Wiki: rcll_fawkes_sim (last edited 2017-01-26 14:53:04 by TimNiemueller)