2026: OpenSCAD robot and remote, physical joint limits, model in Unity
hardware/openscad/ rebuilds the broken Fusion models as OpenSCAD: body (top/bottom plate, standoffs, battery bay, switch), legs (coxa bracket, femur link, tibia, horn adapters, TPU socks, servo cables), the whole robot, and the remote (shell, lid, Nextion 3.5", JH-D400X-R4 sticks, 18650 UPS board, IMU, Teensy 4.0, USB-C breakout). Every part was checked by slicing against the original STEP solids; the original's bugs are fixed and listed in PLANNING.md. The robot now uses a hexagon leg layout (corner legs 60 deg round from the mid legs; the corner coxa brackets need turning on their splines). Physical limits from a collision sweep of the model are in Config.h: per-leg coxa limits and LEG_CLEARANCE_MM 56 (a leg is 55.2 mm wide at the joints); the sim API exports them (version 7). sim_smoke passes. Unity loads the model (export_unity.py -> Resources/OpenScadModel, OpenScadModel.cs builds a new rig in place of the old scene's robot). The PCB model's mounting holes now use the exact EasyEDA grid. README shows renders of both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b1c94e4149
commit
91b5b99fd5
42 files changed
+1560
-20
No files matched your search
@@ -40,13 +40,14 @@ HXSIM_API void hxsim_get_geometry(HxGeometry* g) {
|
||||
g->mount_x_mm[i] = LEG_MOUNT_X_MM[i];
|
||||
g->mount_y_mm[i] = LEG_MOUNT_Y_MM[i];
|
||||
g->mount_angle_deg[i] = LEG_MOUNT_ANGLE_DEG[i];
|
||||
g->coxa_min_deg[i] = COXA_MIN_DEG[i];
|
||||
g->coxa_max_deg[i] = COXA_MAX_DEG[i];
|
||||
}
|
||||
g->coxa_mm = COXA_LEN_MM;
|
||||
g->femur_mm = FEMUR_LEN_MM;
|
||||
g->tibia_mm = TIBIA_LEN_MM;
|
||||
g->stance_radius_mm = STANCE_RADIUS_MM;
|
||||
g->stance_height_mm = STANCE_HEIGHT_MM;
|
||||
g->coxa_min_deg = COXA_MIN_DEG; g->coxa_max_deg = COXA_MAX_DEG;
|
||||
g->femur_min_deg = FEMUR_MIN_DEG; g->femur_max_deg = FEMUR_MAX_DEG;
|
||||
g->tibia_min_deg = TIBIA_MIN_DEG; g->tibia_max_deg = TIBIA_MAX_DEG;
|
||||
g->control_hz = CONTROL_HZ;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#endif
|
||||
|
||||
// Bump whenever a signature or struct below changes; the C# side checks it.
|
||||
#define HXSIM_API_VERSION 6
|
||||
#define HXSIM_API_VERSION 7
|
||||
|
||||
#define HXSIM_NUM_LEGS 6
|
||||
|
||||
@@ -30,7 +30,8 @@ typedef struct {
|
||||
float mount_angle_deg[HXSIM_NUM_LEGS];
|
||||
float coxa_mm, femur_mm, tibia_mm;
|
||||
float stance_radius_mm, stance_height_mm;
|
||||
float coxa_min_deg, coxa_max_deg;
|
||||
float coxa_min_deg[HXSIM_NUM_LEGS]; // per leg: corner legs can't swing far towards the mid leg
|
||||
float coxa_max_deg[HXSIM_NUM_LEGS];
|
||||
float femur_min_deg, femur_max_deg;
|
||||
float tibia_min_deg, tibia_max_deg;
|
||||
float control_hz;
|
||||
|
||||
Reference in new issue
Block a user