|
|
||
|---|---|---|
| src | ||
| .gitignore | ||
| DOCUMENTATION.md | ||
| pixi.lock | ||
| pixi.toml | ||
| readme.md | ||
| workspace.json | ||
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_bringuppackage 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 listenersrc/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()viaawait window.pywebview.apisrc/blockly_app/blockly_app/ui/index.html— CSS, HTML tab bar, code panel, toolbar buttonssrc/blockly_app/blockly_app/app.py—save_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.