twins-controller issueshttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues2020-12-17T15:25:13+11:00https://code.research.uts.edu.au/bigprint/twins-controller/-/issues/1Create method to calibrate print tip transformation2020-12-17T15:25:13+11:00Jayant KhatkarCreate method to calibrate print tip transformationhttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/2Create way to configure the transformation of the arms2020-12-17T15:25:15+11:00Jayant KhatkarCreate way to configure the transformation of the armshttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/4integrate extrudeX module to start controlling extrusion2020-12-17T15:25:21+11:00Jayant Khatkarintegrate extrudeX module to start controlling extrusionhttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/3Control both arms simultaneously2020-12-21T12:12:35+11:00Jayant KhatkarControl both arms simultaneouslyconnect to and control both arms in the same loop, tested with safe trajectoriesconnect to and control both arms in the same loop, tested with safe trajectoriesTwo arms printinghttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/8Create a test plan to follow2021-01-03T21:30:23+11:00Jayant KhatkarCreate a test plan to followTest plan with 3 or so contours for the arm to follow and test extrusions on.Test plan with 3 or so contours for the arm to follow and test extrusions on.Single Arm PrintingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/11Execute Test plan for single arm in MoveIt2021-01-04T12:12:42+11:00Jayant KhatkarExecute Test plan for single arm in MoveIt- [x] read test plan
- [x] convert to ROS message
- [x] test by sending ROS message to MoveIt environment
- [x] Send JointTrajectories one after another as soon as one ends to execute plan- [x] read test plan
- [x] convert to ROS message
- [x] test by sending ROS message to MoveIt environment
- [x] Send JointTrajectories one after another as soon as one ends to execute planSingle Arm PrintingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/14Bug with Hardware launch2021-01-04T14:55:18+11:00Jayant KhatkarBug with Hardware launchur_robot_driver bringup fails
```
> roslaunch ur_robot_driver ur5e_bringup.launch robot_ip:=192.168.1.101 kinematics_config:=$(pwd)/calibrations/r1_cal.yaml
...
[WARN] [1609728030.141042]: Controller Spawner error while taking down co...ur_robot_driver bringup fails
```
> roslaunch ur_robot_driver ur5e_bringup.launch robot_ip:=192.168.1.101 kinematics_config:=$(pwd)/calibrations/r1_cal.yaml
...
[WARN] [1609728030.141042]: Controller Spawner error while taking down controllers: unable to connect to service: [Errno 111] Connection refused
```Single Arm PrintingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/12Execute test plan on hardware and test calibration2021-01-06T14:15:31+11:00Jayant KhatkarExecute test plan on hardware and test calibrationShould be fairly simple moving from #11
- [x] document connection process
- [x] document calibration process
- [x] re calibrate and recreate plan
- [x] run with real hardware instead of moveit demo
- [x] test calibration (move to origi...Should be fairly simple moving from #11
- [x] document connection process
- [x] document calibration process
- [x] re calibrate and recreate plan
- [x] run with real hardware instead of moveit demo
- [x] test calibration (move to origin) - this is not yet fixedSingle Arm PrintingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/16Shear Calibration2021-01-15T14:18:56+11:00Jayant KhatkarShear CalibrationThere is some z axis offset which isn't linear across the print bed, meaning it isn't a fault of the calibration process. When drawing a straight line on a single bed, the print tip will rise a fair bit off the bed and then come back dow...There is some z axis offset which isn't linear across the print bed, meaning it isn't a fault of the calibration process. When drawing a straight line on a single bed, the print tip will rise a fair bit off the bed and then come back down within the same line, same bed.
Calibration still needs to be done more accurately but currently the whole thing is too fragile to spend too much time on calibrating.
Potential causes:
- Print bed is not planar
- Forces on arm by the things like the wires to the extruder are not linear throughout space (unlikely, arm takes a lot of force to move)
- Calibration error
- Arm ik/fk does not match reality
Planned solution
1. Create a shear calibration process (grid of maybe 5x5 or higher storing z offset at each point) (estimate 4h)
2. During plan execution:
3. Do FK to find where the print tip want to be
4. Apply z offset for that x-y point
5. do IK and updated print tip point
6. save to JointTrajectory (this step would probably be done during Jtraj2ROS). (estimate 4h)Single Arm PrintingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/10Extrude and move arm at the same time, in time2021-01-18T15:31:33+11:00Jayant KhatkarExtrude and move arm at the same time, in timeDepends on #11
- [x] Send trajectory and monitor feedback
- [x] Control extruder and motion simulataneously
- [x] Extrude at fixed rate while moving
- [x] Fix any timing issues (extrusion must start exactly/before arm movement)
- [x] E...Depends on #11
- [x] Send trajectory and monitor feedback
- [x] Control extruder and motion simulataneously
- [x] Extrude at fixed rate while moving
- [x] Fix any timing issues (extrusion must start exactly/before arm movement)
- [x] Execute multiple contours with extrusion
- [x] Fix any extract/retract issues (these will need to be accounted for by the planner)
- [ ] ~~Change to better extrusion method if not good enough~~
- [x] Check extrusion over multiple layers
- [ ] ~~Multiple layer print on multiple parts of the print bed (with both arms individually)~~Single Arm PrintingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/15Calibration not completely accurate in z-axis2021-01-18T15:31:48+11:00Jayant KhatkarCalibration not completely accurate in z-axisWhen reaching for points on the print bed which are further away from the robot, the tip will get closer and closer to the bed until it is touching. When reaching for points on the print bed which are closer to the robot, the tip will be...When reaching for points on the print bed which are further away from the robot, the tip will get closer and closer to the bed until it is touching. When reaching for points on the print bed which are closer to the robot, the tip will be further than desired from the bed.
This could be due to one or more of the following:
- the robot leaning forward under its weight when reaching forward
- the calibration pattern not capturing points further from the robot (fixing this should also fix the first point)
- inaccurate calibration
- arm rotation not being captured by the current calibration processSingle Arm PrintingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/13Get reasonable speed for trajectories between contours2021-01-18T15:57:52+11:00Jayant KhatkarGet reasonable speed for trajectories between contourswant to be as fast as possible while being safe.
Linked to [#twins-planner/50](https://code.research.uts.edu.au/bigprint/twins-planner/-/issues/50)
- [x] Create a couple of trajectories to test with
- [x] Run these on real hardware wit...want to be as fast as possible while being safe.
Linked to [#twins-planner/50](https://code.research.uts.edu.au/bigprint/twins-planner/-/issues/50)
- [x] Create a couple of trajectories to test with
- [x] Run these on real hardware with various time multipliers to find good speed
- [x] find good time multiplier to apply for the planner to useSingle Arm PrintingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/17Catch failed trajectory movement2021-01-20T15:27:23+11:00Jayant KhatkarCatch failed trajectory movementSometimes The trajectory fails to start because it is not at the right position.
- [x] catch this error in feedback and stop the print
- [x] print out which trajectory failed (so print can be manually continued from that point)
- [x] if...Sometimes The trajectory fails to start because it is not at the right position.
- [x] catch this error in feedback and stop the print
- [x] print out which trajectory failed (so print can be manually continued from that point)
- [x] if failure is caught, plan and move to start of location and try again to avoid manual stopSingle Arm PrintingJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/18Improved calibration process2022-10-19T10:06:59+11:00Jayant KhatkarImproved calibration processThe current calibration process is too slow - need a faster way to calibrate and test calibration:
- [x] Automatically calculate ik for (1cm above) next calibration point
- [x] move to next calibration point automatically
- [x] update t...The current calibration process is too slow - need a faster way to calibrate and test calibration:
- [x] Automatically calculate ik for (1cm above) next calibration point
- [x] move to next calibration point automatically
- [x] update to using Cartesian path for safety
- [x] safety process for going to slightly above the desired point
- [x] safety process to display trajectory before confirming
- [x] slow down trajectory execution
- [ ] ~~if necessary: safety process for going up in between (maybe just going home) if really unsafe~~
- [x] Create calibration testing plan quickly with updated calibration files.Hardware improvementsJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/19First Print2022-10-19T10:07:00+11:00Jayant KhatkarFirst Print- [x] Re-calibrate both arms (create new points to calibrate with)
- [x] test calibrations of arms
- [x] fix calibration if necessary
- [x] Create gcode for an stl which isn't huge but spread over multiple plates and has at least 10 laye...- [x] Re-calibrate both arms (create new points to calibrate with)
- [x] test calibrations of arms
- [x] fix calibration if necessary
- [x] Create gcode for an stl which isn't huge but spread over multiple plates and has at least 10 layers.
- [x] Create plan with dec-mcts
- [x] run plan with execution on both armsJayant KhatkarJayant Khatkarhttps://code.research.uts.edu.au/bigprint/twins-controller/-/issues/5multiple arms following plan created by twins-planner2022-10-19T10:07:18+11:00Jayant Khatkarmultiple arms following plan created by twins-planner- [x] make rostopic names robot specific
- [x] make node name different for each arm so both can be done connections can run simultaneously
- [x] document process for connecting to both arms simultaneously
- [x] make MoveIt package for c...- [x] make rostopic names robot specific
- [x] make node name different for each arm so both can be done connections can run simultaneously
- [x] document process for connecting to both arms simultaneously
- [x] make MoveIt package for controlling both arms simultaneously
- [x] edit MoveIt package to hook into real controllers (with robot specific names)
- [x] Create controller object for controlling both arms and extruders from python
- [x] Create safe trajectories for both arms to execute simultaneously
- [x] main loop controlling both arms simultaneously
- [x] execute some safe trajectories to test main loop control
- [x] read feedback from arms on arm positions etc
- [x] Time arms to see time offset over both arms executing a single trajectory
- [x] Time arms to see time offset over multiple trajectories
- [x] Design workarounds for time offsets if excessive
- [x] Execute long plan for both arms without extrusion
- [x] Connect multiple Extruders simultaneously
- [x] Extrude simultaneouslyTwo arms printingJayant KhatkarJayant Khatkar