Skip to content

olinrobotics/state_controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

About

A state controller usable by any thrust within the lab.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published