Dynamical Systems as ROS Nodes
This section demonstrates how to deploy the dynamical systems you created in the “Theory to Python” section as ROS2 nodes. Using the pykal.ROSNode wrapper, you can transform Python functions into ROS nodes that communicate via topics.
“Example: Turtlebot ROS Deployment” walks through wrapping the Turtlebot state estimator from the previous section as a ROS node and deploying it to subscribe to real robot topics.
“Example: Crazyflie ROS Deployment” demonstrates a more complex deployment involving multiple sensors and asynchronous data streams for the Crazyflie quadcopter.
- TurtleBot State Estimation: From Python to ROS2
- Conceptual Foundation: From Dynamical Systems to ROS Nodes
- The ROS Mapping
- Adding Teleoperation
- Individual Node Blocks
- Architecture Comparison: Python Simulation vs ROS Nodes
- ROS2 System Architecture
- Setup: Imports and Core Functions
- Node 1: Waypoint Generator
- Node 2: Velocity Controller
- Node 3: TurtleBot Simulator (Plant)
- Node 4: Extended Kalman Filter Observer
- Running the Complete ROS2 System
- Visualization and Analysis
- Summary: Python → ROS2 Deployment
- Architecture 2: Teleoperation Mode
- Crazyflie Multi-Sensor Fusion: From Python to ROS2
- Conceptual Foundation: From Dynamical Systems to ROS Nodes
- The ROS Mapping
- Adding Teleoperation
- Individual Node Blocks
- Architecture Comparison: Python vs ROS2 Multi-Sensor System
- ROS2 Multi-Sensor System Architecture
- Setup: Imports and Core Functions
- Node 1: Setpoint Generator
- Node 2: Position Controller
- Node 3: Crazyflie Simulator with Multi-Sensor Output
- Node 4: Multi-Sensor Kalman Filter
- Running the Multi-Sensor ROS2 System
- Visualization: Multi-Sensor Fusion Analysis
- Summary: Multi-Sensor Python → ROS2 Deployment
- Architecture 2: Teleoperation Mode