Feldfreund DevKit ROS

Navigation & Architecture

  • Sowbot (ROS 2 stack)
    • Sowbot Roadmap
      • Collaboration
  • Rewrite-from-Scratch Cost Estimate
    • Foundational infra
    • Packages pulled in & developed in house
    • Total
  • ⚠️ CRITICAL SAFETY WARNING:
    • Health Warning
    • Quick Start
      • Supported SBC configuration
      • 0. Install dependencies
        • Linux
        • Mac
        • Windows?
      • 1. Clone the Repository
      • 3. Build & Launch
        • Linux
        • Gazebo
    • Management & Tools
      • manage.py
      • One-command sim launch (TMuLE)
        • tmux basics
      • Interactive Shell
      • Diagnostics
        • After running ./login.sh
    • Sketch of MVP 2026 architecture
      • 1. The Lizard Brain (RT Microcontroller)
      • 2. The Limbic System (Executive)
      • 3. The Neo (Perception)
    • Sketch of possible eventual ~2027 architecture
      • 1. The Lizard Brain (Hardware Abstraction)
      • 2. The Limbic System (Executive)
      • 3. The Neo (Perception)
    • Licenses & papers
  • Sowbot / feldfreund_devkit_ros — Dependency Licence Audit
    • Feldfreund DevKit ROS
    • Components
      • DevKit driver
      • Camera System
      • GNSS System
      • DevKit UI
    • Docker Setup
      • Using Docker Compose
    • Connect to UI
    • Launch Files
    • AXIS Camera Authentication
    • Quickstart guide
      • 1. Clone the Repository
      • 2. Validate Configuration
      • 3. Build with Docker
      • 4. Send Lizard Configuration
      • 5. Ready to Go
    • Future features
  • Local Lizard Firmware Setup
    • Checkout
    • Build and flash

API Reference

  • C++ API Reference
  • Python API Reference
    • devkit_driver
      • devkit_driver.course_over_ground
        • CourseOverGround
        • main()
      • devkit_driver.devkit_driver_node
        • DevkitDriver
        • main()
        • on_startup()
        • ros_main()
      • devkit_driver.logger
        • devkit_driver.logger.logger
        • devkit_driver.logger.ros_logger
        • devkit_driver.logger.stdout_logger
      • devkit_driver.modules
        • BMSHandler
        • BumperHandler
        • EStopHandler
        • ImuHandler
        • OdomHandler
        • ReconDEMLogger
        • RobotBrainHandler
        • TwistHandler
        • devkit_driver.modules.bms_handler
        • devkit_driver.modules.bumper_handler
        • devkit_driver.modules.estop_handler
        • devkit_driver.modules.imu_handler
        • devkit_driver.modules.odom_handler
        • devkit_driver.modules.recon_dem_logger
        • devkit_driver.modules.robot_brain_handler
        • devkit_driver.modules.twist_handler
      • devkit_driver.qos
      • devkit_driver.relposned_heading_shim
        • RelPosnedHeadingShim
        • main()
      • devkit_driver.rtk_navsatfix_shim
        • RtkNavSatFixShim
        • main()
    • devkit_f2c_planner
      • devkit_f2c_planner.f2c_planner
        • field_centroid_xy()
      • devkit_f2c_planner.f2c_test_helpers
        • FakeCell
        • FakeF2C
        • silence_planner_log()
        • to_ll()
        • to_xy()
      • devkit_f2c_planner.test_contour_rows
        • ContourRowsTest
        • contour_rows()
        • row_y()
      • devkit_f2c_planner.test_obstacles
        • BuildObstaclePolysTest
        • ClipLinesAgainstObstaclesTest
        • build()
        • clip()
        • square()
      • devkit_f2c_planner.test_projection
        • FieldCentroidTest
        • ProjectionTest
        • haversine_m()
      • devkit_f2c_planner.test_run_f2c
        • RunF2CTest
    • devkit_mavlink_bridge
      • devkit_mavlink_bridge.mavlink_bridge_node
        • MavlinkBridgeNode
        • main()
      • devkit_mavlink_bridge.modules
        • devkit_mavlink_bridge.modules.gps_input_handler
        • devkit_mavlink_bridge.modules.position_target_handler
    • devkit_ui
      • devkit_ui.actions
        • ActionDef
        • action_ros_msgs()
      • devkit_ui.constants
      • devkit_ui.dem
        • build_elevation_grid()
        • elevation_to_traversable()
        • load_recon_points()
        • recon_csv_to_obstacle_rings()
        • select_reference_contour_latlon()
        • select_reference_contour_xy()
      • devkit_ui.missions
        • MissionStore
        • validate_mission()
        • devkit_ui.missions.sqlite
        • devkit_ui.missions.store
        • devkit_ui.missions.test_sqlite
        • devkit_ui.missions.test_store
        • devkit_ui.missions.test_yaml
        • devkit_ui.missions.yaml
      • devkit_ui.models
        • TopoDoc
        • TopoEdge
        • TopoNode
        • TopoPose
        • TopoProperties
        • Vector2
        • Vector3
        • Vector4
      • devkit_ui.obstacles
        • Threading model
        • Coordinate frames
        • MissionDrawHandle
        • ObstacleManager
        • attach_mission_obstacle_panel()
        • attach_mission_sidebar_controls()
        • attach_nav_card()
        • circle_to_ring_ll()
        • latlon_to_xy()
        • obstacle_to_ring_ll()
        • obstacles_to_rings_ll()
        • validate_obstacle()
        • xy_to_latlon()
      • devkit_ui.pages
        • devkit_ui.pages.run
      • devkit_ui.parse
        • dump_topo_yaml()
        • parse_topo_json()
        • parse_topo_yaml()
      • devkit_ui.terrain_mask
        • traversability_mask_to_latlon_rings()
      • devkit_ui.test_actions
        • TestActionRosMsgs
      • devkit_ui.test_f2c_row_metadata
        • F2CSaveHarness
        • TestF2CRowMetadata
        • latlon_to_xy()
        • load_f2c_save_harness()
        • make_node()
        • resample_row_xy()
        • xy_to_latlon()
      • devkit_ui.test_models
        • TestTopoDoc
      • devkit_ui.test_navigation_goals
        • ActionClient
        • Future
        • Goal
        • GoalHandle
        • ImmediateThread
        • NavigationHarness
        • TestSendNavGoal
        • TestSynchronousNavigationGoal
        • load_navigation_harness()
        • make_node()
      • devkit_ui.test_parse
        • TestParseTopo
      • devkit_ui.test_run_ui
        • FakeDialog
        • FakeElement
        • FakeTimer
        • FakeUi
        • Node
        • TestDropNodeCard
        • TestNavigationSidebar
        • TestObstacleUndo
        • TestRowDiscoveryCard
        • TestRunViewModel
      • devkit_ui.test_time_utils
        • TestTimeUtils
      • devkit_ui.test_topo_renderer
        • TestTopoRendererRowLabels
        • row_labels()
      • devkit_ui.time_utils
        • now_utc()
        • now_utc_str()
        • parse_ts()
      • devkit_ui.ui_node
        • NiceGuiNode
        • load_css()
        • main()
        • ros_main()
      • devkit_ui.utils
        • devkit_ui.utils.topo_renderer
      • devkit_ui.view_models
        • devkit_ui.view_models.global_view_model
        • devkit_ui.view_models.run_view_model

Research & Notes

  • Gazebo Simulation (Headless VNC)
  • Vision System Roadmap — Sowbot / Avaota A1
    • crop_row_node · YOLOX-Nano Weed Detection · ROS 2
    • 1. Current State Assessment
      • What works and must be preserved
      • The core fragility
      • The architectural conflict
      • Image topic architecture (decided)
      • Latency budget
    • 2. Immediate — Harden What Exists
      • (No model training. No NPU SDK. No architectural changes.)
      • M0 · Profile on-device (Week 1)
      • M1 · Normalised ExG (Week 1–2)
      • M2 · Weed exclusion mask (Week 2–3)
      • M2.1 · Parameterise the dilation kernel (Week 2–3)
    • 3. Short-Term — NPU Weed Detection Deployment
      • (Weeks 3–8)
      • M3 · Validate YOLOX-Nano on UK lettuce weeds (Week 3–5)
      • M4 · NPU inference latency benchmark (Week 4–6)
      • M5 · Composable node container integration (Week 5–6)
    • 4. Medium-Term — Replace ExG with NPU Segmentation
      • (Months 2–4)
      • M6 · Training data collection (Months 1–3, parallel workstream)
      • M7 · Segmentation model selection and training (Month 2–4)
      • M8 · Integration into crop_row_node (Month 3–4)
    • 5. Long-Term — Semantic Field Navigation
      • (Months 6–12)
      • M9 · Row-end and headland detection (Month 6)
      • M10 · Row identity and cross-row localisation (Month 7–8)
      • M11 · Weed pressure maps (Month 8–9)
      • M12 · Multi-task unified network (Month 9–12)
    • Dependency and Risk Register
    • Milestone Summary
  • Coverage Planner Feature Comparison
    • slic3r_coverage_planner (current OpenMower) vs Fields2Cover
    • Feature-by-feature breakdown
      • 1. Outline covered by rounds, inner to outer
      • 2. Rounds around obstacles
      • 3. Rounds near outline and obstacle merged into one track
      • 4. Smooth transitions between rounds
      • 5. Fill using parallel lines
      • 6. Multiple fills for complex/concave shapes
      • 7. Consistent fill angle across all regions, easily configurable
      • 8. Half-circle turns between fill lines
      • 9. Inter-path navigation done at runtime via costmap (not pre-planned)
      • 10. Paths ordered in a sensible way
      • 11. Input as polygon with holes; border = mower centre line
    • Summary matrix
    • Bottom line
  • Paper Proposal: Terramechanics-Informed State Estimation for Tracked Autonomous Rovers
    • Authors & Affiliations
    • Abstract
    • 1. Introduction and Motivation
    • 2. System Architecture
    • 3. Experimental Validation in Gazebo
    • 4. Bibliography and Prior Work
Feldfreund DevKit ROS
  • Search


© Copyright 2026, Agroecology Lab.

Built with Sphinx using a theme provided by Read the Docs.