Base packages for building graphical user interfaces that edit SMACH state machines.
- Author: Hai Nguyen / firstname.lastname@example.org
- License: BSD
- Source: hg https://kforge.ros.org/rcommander/rcommander_core (branch: None)
RCommander: a Photoshop for Robots
RCommander is a stack for graphical editing of SMACH state machines. The hope is that RCommander-style expert interfaces will allow end-users (non-programmers) to comfortably program new robot behaviors. RCommander’s infrastructure allow construction of graphical user interfaces that allow editing of parameters in SMACH states, sequence and compose those states as well as save and load them from disk. The state machines constructed are compatible with all code that takes SMACH state machines as input.
This stack contains the core code to create RCommander interfaces for different robots. Currently the main focus is on the PR2 robot but there is emerging support for the Turtlebot platform, and hopefully there will be others. The tutorials and documentation here will help you to adapt RCommander to new platforms. For information on how to use RCommander on the PR2 specifically go here.
To install the standalone version of RCommander (go here for instructions to install RCommander for the PR2) first download this rosinstall file: rcommander_core.rosinstall.
Next, in a directory of your choice call rosinstall, setup your environment, call rosmake, then launch the default vanilla RCommander GUI:
rosinstall . rcommander_core.rosinstall source setup.bash rosdep install rcommander_core rosmake rcommander_core roslaunch rcommander_plain rcommander_plain.launch
Additionally, you will want to keep RCommander into your ROS_PACKAGE_PATH so execute:
echo "source `pwd`/setup.bash" >> ~/.bashrc
That's all you'll need, now proceed to the tutorials!
- Adapting RCommander to Your Robot
Guides you to creating an instance of RCommander for your robot.
- Creating New States Editor in RCommander
Guides you through creating new editors for your SMACH states in RCommander.
- Sharing Resources Between Different State Editors
Shows you how to share system resources between different state editors through run_rcommander's robot parameter.
- Simplifying Integration of ROS Actions with SimpleStateBase
Demonstrates a simpler method to create state editor for actions.
- Creating Editors for SMACH States That Has Inputs and Outputs
Illustrates how to create editors for SMACH states that has defined inputs and outputs.
- Using a Saved State Machine in Your Code
Guides you through the process of loading a state machine saved to disk in your code.
- Enabling the Default Frames Package
Shows how to enable the default frames package containing the tools Freeze Frame, and Create Origin.