Skip to content

Latest commit

 

History

History
20 lines (16 loc) · 1.41 KB

README.md

File metadata and controls

20 lines (16 loc) · 1.41 KB

Overview

The state controller is designed to act as the midbrain of a robot - facilitating easy integration of and switching between safety protocols, remote control, and fully autonomous behaviors. The controller can be configured to collect commands from an arbitrary number of nodes and send the appropriate messages through to the hindbrain. The state controller also handles activating/disactivating the robot and interacts with the softestop.

ROS Structure

(Diagram of the ROS Nodes)

graphic created using rosrun rqt_graph rqt_graph

  • Topics
    • Subscribers (namespace /state_controller)
      • /cmd_state: Changes behavior being passed through the state controller (String)
      • /cmd_activated: Activates/disactivates robot (Bool)
      • /cmd_behavior: Receives control messages (TwistLabeled)
    • Publishers
      • /cmd_twist: Outputs control message corresponding to current behavior (Twist)
      • /cmd_hitch: Outputs control message corresponding to current behavior for hitch (Pose) - use z position value for height (meters off of ground, limited to -0.3 to 0.3), use y orientation for angle (degrees, limited to -45 to 45)
      • /state: Outputs current state controller selected state (String)

Writing a Behavior Node

See the GitHub Wiki for tutorials and example code covering Python and C++ (link)