Go to file
a2nr c82e30b9b1 feat: implement export/import functionality and UI enhancements for Blockly workspace 2026-03-09 11:43:27 +07:00
src feat: implement export/import functionality and UI enhancements for Blockly workspace 2026-03-09 11:43:27 +07:00
.gitignore persiapan 2026-03-09 05:01:13 +07:00
DOCUMENTATION.md feat: implement export/import functionality and UI enhancements for Blockly workspace 2026-03-09 11:43:27 +07:00
pixi.lock big achivment tapi masih kurang dikit. 2026-03-08 14:14:32 +07:00
pixi.toml feat: add support for real hardware in blockly_executor 2026-03-08 21:55:50 +07:00
readme.md feat: implement export/import functionality and UI enhancements for Blockly workspace 2026-03-09 11:43:27 +07:00
workspace.json feat: implement export/import functionality and UI enhancements for Blockly workspace 2026-03-09 11:43:27 +07:00

readme.md

Project Management — AMR ROS2 K4

Project: Blockly ROS2 Robot Controller (Kiwi Wheel AMR) ROS2 Distro: Jazzy Last Updated: 2026-03-09 Current Focus: kiwi_controller — Adaptive control for Kiwi Wheel drive

Dokumentasi lengkap dapat dilihat di DOCUMENTATION.md.

Aturan pengggunaan dokumen

bab pada dokumen merepresentasikan alur rencana pengembangan. Potential Enhancements : Feasibility Study Planned Feature : Backlog Feature Task : Penjabaran Pekerjaan yang ready untuk dikerjakan. Task harus dijelaskan apa yang akan dikerjakan dan terdapat definition of done nya


Potential Enhancements

this list is short by priority

  • Launch files: blockly_bringup package with ROS2 launch files to start all nodes with one command
  • Sensor integration: Subscriber nodes for sensor data feeding back into Blockly visual feedback
  • RealHardware implementation: Fill in ROS2 publishers/service clients for actual Pi hardware nodes (topics TBD)
  • ROS2 lifecycle nodes: Migrate executor and controller to lifecycle nodes for managed state transitions
  • Simulation: Integrate with Gazebo/Isaac Sim for testing Kiwi Wheel kinematics before deploying to hardware
  • Block categories: Future blocks grouped into Robot, Sensors, Navigation categories

Planned Feature

Package Purpose Status
blockly_app Desktop Blockly GUI + Action Client Done
blockly_executor Action Server — command handler registry Done
blockly_interfaces Custom ROS2 action definitions Done
kiwi_controller Adaptive control for Kiwi Wheel drive 📋 Planned
Enhance UI Tab Code preview, Export/Import, dark toolbox Done

Feature Task

Enhance UI

# Task Status
1 Fix toolbox text color (dark theme via Blockly.Theme.defineTheme) Done
2 Add "Code" tab — realtime generated JS preview Done
3 Export/Import workspace (.json) via toolbar buttons Done

Files changed:

  • src/blockly_app/blockly_app/ui/blockly/workspace-init.js — dark theme definition + code panel change listener
  • src/blockly_app/blockly_app/ui/blockly/core/ui-tabs.js (new)switchTab(), refreshCodePanel()
  • src/blockly_app/blockly_app/ui/blockly/core/workspace-io.js (new)exportWorkspace(), importWorkspace() via await window.pywebview.api
  • src/blockly_app/blockly_app/ui/index.html — CSS, HTML tab bar, code panel, toolbar buttons
  • src/blockly_app/blockly_app/app.pysave_workspace(), load_workspace() via zenity subprocess

Note — Export/Import implementation: pywebview.create_file_dialog dan QFileDialog via QTimer.singleShot keduanya gagal dari background thread (deadlock / no event loop). Solusi final: tkinter.filedialog — interpreter Tcl/Tk terpisah dari Qt, tidak ada konflik thread, sudah tersedia di pixi environment tanpa dependency tambahan.