twins-planner issueshttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues2021-02-27T20:50:17+11:00https://code.research.uts.edu.au/bigprint/twins-planner/-/issues/60Add wait time between contours for extruion and retraction2021-02-27T20:50:17+11:00Jayant KhatkarAdd wait time between contours for extruion and retractionBefore each contour starts, add some wait time (for pre-print extrusion).
After each contour finishes, add some wait time (for post-print retraction).
- [x] Look at how time is calculated in Plan object when adding plans and doing coll...Before each contour starts, add some wait time (for pre-print extrusion).
After each contour finishes, add some wait time (for post-print retraction).
- [x] Look at how time is calculated in Plan object when adding plans and doing collision checking
- [ ] Change jointsAt time function to use added vairable of time between trajectories
- [ ] add preprint time for real plan (Plan object)
- [ ] add post-print time for real plan
- [ ] add preprint time in Dec-MCTS CombinedScheduler
- [ ] add post print time in Dec-MCTS CombinedScheduler3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/58Align planning parameters with true hardware2021-02-03T13:11:17+11:00Jayant KhatkarAlign planning parameters with true hardwareSome of the planning parameters used do not match the real hardware.
This issue is to link to any of those types of changes.
- [x] #57
- [x] Slicer config
- [x] Orientation at approach should be different for each arm - depending on th...Some of the planning parameters used do not match the real hardware.
This issue is to link to any of those types of changes.
- [x] #57
- [x] Slicer config
- [x] Orientation at approach should be different for each arm - depending on the arm's orientation
- [ ] List others as noticed below3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/57Measure print head and change shape of it's collision object in planning2021-01-27T13:28:52+11:00Jayant KhatkarMeasure print head and change shape of it's collision object in planning- [x] Measure print head dimensions
- [x] update urdf collision object shape for print head
- [ ] ~~update plans~~- [x] Measure print head dimensions
- [x] update urdf collision object shape for print head
- [ ] ~~update plans~~3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/54JTraj for contours are not always executable2021-01-06T14:09:39+11:00Jayant KhatkarJTraj for contours are not always executableSometimes the contour has multiple t=0 time stamps which makes them impossible ROS JointTrajectories.
- [x] if time stamp is same as previous and ik solutions is same as previous, remove the point since it doesn't add anything to the JT...Sometimes the contour has multiple t=0 time stamps which makes them impossible ROS JointTrajectories.
- [x] if time stamp is same as previous and ik solutions is same as previous, remove the point since it doesn't add anything to the JTraj (implement in contour_trajs)3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/51Move slightly up and down between contours2021-02-21T00:56:06+11:00Jayant KhatkarMove slightly up and down between contoursCurrent motion planning goes directly to start of contour. For safety, before the start of each contour, plan to slightly above starting point and go down. After the end of each contour, go slightly up.
These additional movements should...Current motion planning goes directly to start of contour. For safety, before the start of each contour, plan to slightly above starting point and go down. After the end of each contour, go slightly up.
These additional movements should be added to between contour trajectories.
- [x] if current movement is going to a contour (and not home or staying put), plan to slightly above the end pose and then move down linearly.
- [x] if current motion is being planned from a contour, move slightly up first, then plan to end point3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/50Make time for between-contour-trajectories realistic2021-01-13T13:01:35+11:00Jayant KhatkarMake time for between-contour-trajectories realisticCurrently, between contour trajectories use a fixed timestep for each waypoint in the trajectory. Change this to a realistic time based off distance in c-space.
- [ ] Get time steps by a multiple of distance in space
- [ ] Use large mul...Currently, between contour trajectories use a fixed timestep for each waypoint in the trajectory. Change this to a realistic time based off distance in c-space.
- [ ] Get time steps by a multiple of distance in space
- [ ] Use large multiplier with real hardware and decrease until fast but safe speed for movement
- [ ] Use this as the default multiplier for planning3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/48Plan fails when there are impossible contours2020-12-26T01:00:12+11:00Jayant KhatkarPlan fails when there are impossible contoursSometimes a contour is impossible due to corresponding ik solutions not existing at every waypoint.
Options:
- ignore contour and keep going until can't go anymore (current behavior)
- exit plan so far
- take deeper dive into ik because...Sometimes a contour is impossible due to corresponding ik solutions not existing at every waypoint.
Options:
- ignore contour and keep going until can't go anymore (current behavior)
- exit plan so far
- take deeper dive into ik because the ik solutions should exist - ikfast only giving 4 solutions instead of 8
- [x] Check ikfast is returning sufficient solutions
- [x] fix ikfast if necessary
- [x] Check if the error is caused by a 360 degree wrap around leading to large angle differences
- [x] fix if necessary
- [ ] Pre-compute contour trajectories by both arms for contours and output how many contours are impossible
- [ ] if ignore=True, mark these as complete and keep printing, else stop immidiately if there are any impossible contours3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/47plan fails when gcode waypoints are too wide apart2020-12-21T00:16:00+11:00Jayant Khatkarplan fails when gcode waypoints are too wide apartinterpolate waypoints to max of x cm apart to prevent contour trajectory failling to find nearby solutions.interpolate waypoints to max of x cm apart to prevent contour trajectory failling to find nearby solutions.3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/46Create test plans for hardware testing for one arm2021-01-11T11:16:47+11:00Jayant KhatkarCreate test plans for hardware testing for one arm- [x] plan 1: home to contour start, and then back home (no contour)
- [x] plan 2: home to contour, do contour, return home
- [x] plan 3: multiple contours, one layer
- [x] Get another STL and gcode for remaining prints
- [x] plan 4: mul...- [x] plan 1: home to contour start, and then back home (no contour)
- [x] plan 2: home to contour, do contour, return home
- [x] plan 3: multiple contours, one layer
- [x] Get another STL and gcode for remaining prints
- [x] plan 4: multiple contours, multiple layers
- [ ] ~~plan 5: full print for single arm~~ (plan too long)
Depends on #45 for plan 4+3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/45Collision check against completed layers2020-12-27T22:35:56+11:00Jayant KhatkarCollision check against completed layersWhen a layer is complete, there is a risk of colliding with it when planning the next layer (especially for many layers up). This will only really happen between contours, not during them (not true - can happen during contours or higher ...When a layer is complete, there is a risk of colliding with it when planning the next layer (especially for many layers up). This will only really happen between contours, not during them (not true - can happen during contours or higher up layers),
Ideas:
- when planning between contours, move 5mm up, plan to 5mm above next contour, move 5mm down.
- during the trajectory motion planning, add collision object which includes the space of the print up to the *highest layer that is currently in progress*,
- during contour planning, collision objects include the print space up to the *highest layer which has been completed*
Tasks:
- [x] add SimEnv interface to add and remove collision cubes for the pybullet environment
- [x] method to get width and length from contour data (height will vary as layers are being drawn).
- [x] keep track of completed layers in greedy and update a permanent collision object representing completed layers.
- [ ] Change motion planning between contours to include moving up and down (n)mm
- [ ] ~~add another collision object above completed layers for layers in progress to avoid during motion planning~~3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/44Use calibrated arm and tip positions2020-12-18T07:33:30+11:00Jayant KhatkarUse calibrated arm and tip positions- [x] function to read calibration files
- [x] create env_desc object out of them and visualise
- [x] apply and transformations as necessary to get more sensible results- [x] function to read calibration files
- [x] create env_desc object out of them and visualise
- [x] apply and transformations as necessary to get more sensible results3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/41save a plan and load it2020-12-16T13:13:43+11:00Jayant Khatkarsave a plan and load it- [x] Pickle a plan
- [x] unpickle it and display- [x] Pickle a plan
- [x] unpickle it and display3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/37python-fcl for collision checking2020-12-05T11:26:53+11:00Jayant Khatkarpython-fcl for collision checkingpybullet does simulation as well.
Do fk yourself and place capsules in fcl to do collision checking.pybullet does simulation as well.
Do fk yourself and place capsules in fcl to do collision checking.3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/36greedy arm caught2020-12-16T13:17:04+11:00Jayant Khatkargreedy arm caughtwhen planning flexirex for 60 contours, greedy gets caught in impossible to go home or impossible to stay position which shoudn't be possible.when planning flexirex for 60 contours, greedy gets caught in impossible to go home or impossible to stay position which shoudn't be possible.3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/33handoff for executing plan on hardware2020-12-16T11:07:09+11:00Jayant Khatkarhandoff for executing plan on hardware- [x] unpickle plan in py2 for hardware
- [x] simple plan object without extra pybullet env stuff- [x] unpickle plan in py2 for hardware
- [x] simple plan object without extra pybullet env stuff3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/29Greedy return to home if no contours possible2020-12-01T22:51:37+11:00Jayant KhatkarGreedy return to home if no contours possibleGreedy doesn't handle case for when there is no contour possible.Greedy doesn't handle case for when there is no contour possible.3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/28contour trajectory timing issue with updated trajectory object2020-12-01T15:04:44+11:00Jayant Khatkarcontour trajectory timing issue with updated trajectory object3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/27Create a environment description class to pass to collision checker, planner ...2020-12-01T15:05:34+11:00Jayant KhatkarCreate a environment description class to pass to collision checker, planner etc. which reads config files.need to centralize the description of the planning environmentneed to centralize the description of the planning environment3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/22Create collision object at the end of the arm in the URDF for the print tip2020-12-01T15:04:26+11:00Jayant KhatkarCreate collision object at the end of the arm in the URDF for the print tip3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-planner/-/issues/20Update IK and FK to use print tip transformation for calibration2020-12-01T15:04:36+11:00Jayant KhatkarUpdate IK and FK to use print tip transformation for calibration3D planning env setup and Greedy SchedulingJayant KhatkarJayant Khatkar