twins-planner issueshttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues2021-02-22T14:24:54+11:00https://code.research.uts.edu.au/bigprint/twins-planner/-/issues/70Improve Dec-MCTS scheduler logic2021-02-22T14:24:54+11:00Jayant KhatkarImprove Dec-MCTS scheduler logicIf the start time of a contour is the end time of the other arm + safe_time (either less, or caused by travel time), then try the next contour on the list instead. If all contours are that, then put another contour in the other arm inste...If the start time of a contour is the end time of the other arm + safe_time (either less, or caused by travel time), then try the next contour on the list instead. If all contours are that, then put another contour in the other arm instead and try again.Dec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/65Add random and weighted random rollout options (needed for Dec-MCTS optimalit...2021-02-05T17:41:34+11:00Jayant KhatkarAdd random and weighted random rollout options (needed for Dec-MCTS optimality guarantee)Dec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/64Run on bulk stl files for testing2021-02-25T00:47:57+11:00Jayant KhatkarRun on bulk stl files for testing- [x] script to slice bulk
- [ ] ~~script to bulk resize (slic3r command line api has an option to scale-to-fit in x y z dims)~~
- [x] randomly select models to run the planners (20 or so).
- [x] Create gcode files to run the planners on...- [x] script to slice bulk
- [ ] ~~script to bulk resize (slic3r command line api has an option to scale-to-fit in x y z dims)~~
- [x] randomly select models to run the planners (20 or so).
- [x] Create gcode files to run the planners on.~
- [x] script to run greedy for one arm
- [x] script to run DecMCTS (change safe_time to 10s not 2s), zone blocking, greedy and one arm greedy over the gcode files generated.
- [x] script catches any errors that may occur and outputs overall progress to some text file
- [x] record key metrics of each run
- [x] save computed plan for each model in an organized manner
- [x] add retries option
- [x] add option to only run some - only failed ones from stats file
- [x] fix zoneblocking issue
- [x] create plotting functionDec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/63Dec-MCTS full print2021-02-15T15:14:33+11:00Jayant KhatkarDec-MCTS full printPlan a full print with Dec-MCTS
- [x] Multiple Layers
- [ ] Full PrintPlan a full print with Dec-MCTS
- [x] Multiple Layers
- [ ] Full PrintDec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/62CominedScheduler should only add plans to one arm if thats the most efficient2021-02-05T16:51:20+11:00Jayant KhatkarCominedScheduler should only add plans to one arm if thats the most efficient- [ ] if the wait time makes the start time greater than the other arm, skip and try adding to the other arm.
- [ ] keep track of start times
- [ ] compare to old (current) logic- [ ] if the wait time makes the start time greater than the other arm, skip and try adding to the other arm.
- [ ] keep track of start times
- [ ] compare to old (current) logicDec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/61Improve Dec-MCTS to real plan logic2021-02-04T12:00:42+11:00Jayant KhatkarImprove Dec-MCTS to real plan logicCurrent logic lines up with the cs plan pretty poorly, even when the cs plan uses a large safety in it's time ranges and slow between trajectory movement.
- [x] Check regularly instead of waiting a set time
- [x] check at smaller interv...Current logic lines up with the cs plan pretty poorly, even when the cs plan uses a large safety in it's time ranges and slow between trajectory movement.
- [x] Check regularly instead of waiting a set time
- [x] check at smaller intervals
- [ ] Wait time should be based on wait time relative to other arm in COmbinedSchedule, not simply the CombinedSchedule wait time.Dec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/59Restrict Dec-MCTS to one Traj per contour2021-01-17T21:36:38+11:00Jayant KhatkarRestrict Dec-MCTS to one Traj per contourIn order to reduce search space, but also to keep the arm configured in a sensible way for real life execution, only use the JTraj which is closest to the home position.
This isn't really necessary for greedy since it is unlikely to go ...In order to reduce search space, but also to keep the arm configured in a sensible way for real life execution, only use the JTraj which is closest to the home position.
This isn't really necessary for greedy since it is unlikely to go to other trajectories (only when all closest to home ones are not possible).Dec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/53Add buffer time for joint scheduler2021-01-23T20:17:13+11:00Jayant KhatkarAdd buffer time for joint schedulerif there is a collision at the extremities of the trajectory pair time offsets, add buffer because collision will likely still be there immediately before and after.
- [x] to do in traj_collision_pair or in jointScheduler?
- [x] impleme...if there is a collision at the extremities of the trajectory pair time offsets, add buffer because collision will likely still be there immediately before and after.
- [x] to do in traj_collision_pair or in jointScheduler?
- [x] implement as function of desired buffer time.Dec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/52JointScheduler bugs2022-06-01T20:33:01+10:00Jayant KhatkarJointScheduler bugs- [x] JointScheduler traj-traj intersections on loop
- [x] visualise time offset line chosen by on the traj-traj interseciton graph
- [x] visualise time offsets offered by offset thing
- [x] bug with offsets not catching all collisions (...- [x] JointScheduler traj-traj intersections on loop
- [x] visualise time offset line chosen by on the traj-traj interseciton graph
- [x] visualise time offsets offered by offset thing
- [x] bug with offsets not catching all collisions (test with higher res)
- [x] picture orientation
- [x] test with different contours
- [x] any other bugs that ariseDec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/49Dec-MCTS to real plan2021-02-01T13:42:04+11:00Jayant KhatkarDec-MCTS to real plan- [x] DecMCTS inputs
- [x] ~~DecMCTS allows for offset starting times~~
- [x] main Dec-MCTS loop
- [x] DecMCTS joint scheduler check for correctness with visualisations
- [x] get best rollout
- [x] force add contours to real plan (need w...- [x] DecMCTS inputs
- [x] ~~DecMCTS allows for offset starting times~~
- [x] main Dec-MCTS loop
- [x] DecMCTS joint scheduler check for correctness with visualisations
- [x] get best rollout
- [x] force add contours to real plan (need wait logic if fails)
- [x] visualise real plan executed
- [ ] ~~compare usage ratio with greedy for the same contours~~ (leaving for comparison later during paper)Dec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/43Dec-MCTS for 3 arms2021-04-07T11:41:29+10:00Jayant KhatkarDec-MCTS for 3 arms- [x] CombinedScheduler for >2 arms (logic not tested)
- [x] Dec-MCTS for >2 arms
- [ ] convert to real plan and display- [x] CombinedScheduler for >2 arms (logic not tested)
- [x] Dec-MCTS for >2 arms
- [ ] convert to real plan and displayDec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/40Check what collision regions between pairs of trajectories look like2022-06-01T20:33:58+10:00Jayant KhatkarCheck what collision regions between pairs of trajectories look like- [x] write a trajectory pair sweeping script
- [x] visualise as heatmap (binary map?)
- [x] run on real contour pairs for a layer- [x] write a trajectory pair sweeping script
- [x] visualise as heatmap (binary map?)
- [x] run on real contour pairs for a layerDec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/39Experimentally get relationship between joint angle difference and length of ...2022-06-01T20:34:20+10:00Jayant KhatkarExperimentally get relationship between joint angle difference and length of successful trajectory from greedy real life data- [x] write script to record desired data (start joint, end joint, trajectory time diff)
- [x] run greedy for one item
- [x] plot data
- [x] run greedy for multiple items
- [x] find easy approximation for estimating time using joint angl...- [x] write script to record desired data (start joint, end joint, trajectory time diff)
- [x] run greedy for one item
- [x] plot data
- [x] run greedy for multiple items
- [x] find easy approximation for estimating time using joint angle difference (hypothesis: $`t \propto d^2`$)Dec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/38Swept volume collision check in pybullet2020-12-08T20:57:03+11:00Jayant KhatkarSwept volume collision check in pybulletCollision checking pairs of contour trajectories in a non-naive way.
- [x] Divide into time-offset paths based on specified frequency
- [x] Get order of time stamps to check across each path (not linear - faster)
- [x] Get joint positio...Collision checking pairs of contour trajectories in a non-naive way.
- [x] Divide into time-offset paths based on specified frequency
- [x] Get order of time stamps to check across each path (not linear - faster)
- [x] Get joint positions of each trajectory based on time stamps
- [x] Collision check at that position (other arms at home positions)
- [x] Convert from discrete time-offset paths to valid time ranges
- [x] Speed test with real contoursDec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/35Combined schedule2020-12-13T14:55:30+11:00Jayant KhatkarCombined schedule- [x] check if contour for trajectory has already been done
- [x] lazily calculate allowed time offsets
- [x] add minimum wait time based on other robots
- [x] test with random trajectory order
- [x] time combined scheduling for ~100 con...- [x] check if contour for trajectory has already been done
- [x] lazily calculate allowed time offsets
- [x] add minimum wait time based on other robots
- [x] test with random trajectory order
- [x] time combined scheduling for ~100 contours (with collision checking already done, and without)Dec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/34build Dec-MCTS tree inputs2020-12-06T07:51:28+11:00Jayant Khatkarbuild Dec-MCTS tree inputsDec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/31Capsule collision checking2020-12-14T11:58:40+11:00Jayant KhatkarCapsule collision checkingPybullet supports capsules in urdf (not standard) [link](https://github.com/bulletphysics/bullet3/commit/d465e1eea5cfcdfa639cdcfc7741a82bd417cb30#diff-d1b29a1ab78798fd20796f32712f039c8d36e66cc443c939c44f4a5c562a910e).
Capsule collision ...Pybullet supports capsules in urdf (not standard) [link](https://github.com/bulletphysics/bullet3/commit/d465e1eea5cfcdfa639cdcfc7741a82bd417cb30#diff-d1b29a1ab78798fd20796f32712f039c8d36e66cc443c939c44f4a5c562a910e).
Capsule collision checking is significantly faster than mesh on mesh collision checking. Could provide a significant speed up in collision checking if all robots used capsules for each link. Only primitives would remain in the simulation (prism table and capsule robot links). If it does, we may not need swept volume collision checks via openrave any more.
Note: If the primary slow down in pybullet is the physic simulation calculations, then the collision checking speed may not improve much. While bullet has a collision checking world in which collision checks can be performed without physics simulations, pybullet does not have an interface to this, collision check must be done with physics simulation still happening. I suspect mesh on mesh collision checking is causing issues.Dec-MCTS schedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/24Design Dec-MCTS reward function2020-12-13T14:55:36+11:00Jayant KhatkarDesign Dec-MCTS reward functioncreate a demo collision table for swept volumes.
design reward function which uses collision table to create waits and estimates travel times to find total time wasted.create a demo collision table for swept volumes.
design reward function which uses collision table to create waits and estimates travel times to find total time wasted.Dec-MCTS schedulingJayant KhatkarJayant Khatkar