Skip to content

rpiRobotics/Welding_Motoman

 
 

Repository files navigation

Convergent Manufacturing for WAAM Process

This project focuses on multi-sensor multi-robot automated Wire Arc Additive Manufacturing process with different types of metal on complex geometries. This project is sponsored by Advanced Robotics for Manufacturing Institute and demonstrated as ARM-TEC-22-01-C-07 and demonstrated at Rensselaer Polytechnic Institute.

Alt Text

Alt Text

Dependencies

Dependant pip packages are inclueded in requirements.txt: python311 -m pip install -r requirements.txt

We used Robot Raconteur as the communication library (included in pip), and all external libraries includes:

Alt Text

Architecture

Alt Text

INFORM

INFORM is Motoman's native robot programming language, and our DX200 Driver converts our program to INFORM, upload to DX200 controller, execute the job and record the joint angle. More helper functions are included in toolbox/WeldSend.py for command simplification.

MotoPlus Streaming with RobotRaconteur

Alternative to INFORM, Motoplus is another Motoman's native controller programming language, allowing lower level access to the controller such as joint streaming commands.

  • MotoPlus File (.out): Loaded into DX200 Motoplus Functions, started automatically
  • MotoPlus RR Driver: Running on separate Ubuntu computer (ubuntu-motoman@ubuntu-motoman (192.168.55.15)) ./run_RR_robot.bat or python311 -m motoman_robotraconteur_driver --robot-info-file=../config/rpi_waam_testbed.yml --robot-ip-address=192.168.1.31
  • Fronius RR Driver: controls the Fronius welding parameter separately on a raspberry pi (fronius-pi@fronius-pi (192.168.55.21)) with wired E-stop ./run_fronius_control.bat or python310 -m fronius_robotraconteur_driver --welder-ip=192.168.1.51 --welder-info=../config/fronius_tps_500i_default_config.yml More helper functions are included in helper functions: toolbox/StreamingSend.py

Sensors

All other sensors are implemented as separate modules exposed with Robot Raconteur interface.

Algorithms

Slicing

Non-planar slicing from CAD with uniform deposition rate. WAAM requires torch deposition along gravity direction, so the slicing needs to be support free and along the surface tangent direction.

Baseline

We used NX to extract curves on the edges and curve offset function to push curve along surface tangent direction by a fixed amount.

Alt Text

Alt Text

After all slicing created in NX, we used NX-open to sample each curve as Cartesian points. Curve normal at each point is generated from perpendicular vector pointing toward previous curve. The sliced layers are then further tested for WAAM process successfully.

Automated Slicer

Similar idea as baseline but the process is automated with numpy-stl, with user specified layer height. We used first order approximation to offset curves along surface tangent direciton and projected back to the surface.

Alt Text

Motion Planning

Joint space redundancy resolution with gravity constraints. The desired WAAM part pose wrt. positioner's TCP frame is determined through PCA with largest eigenvector laying along the coupon's direction.

Alt Text

Positioner's 2 DoF's are fully determined through inverse kinematics from the curve normal (-g,2DoF), with the preference configuration facing toward the camera. The orientation of the torch is fixed pointing downward along the gravity, the robot1 joint space trajectory is solved with inverse kinematics of continuous elbow up configuration.

Alt Text

WAAM Process

Unlike polymer 3D printing, liquid metal has different property with different deposition width and height. We manually tune the feed-rate and torch speed to achieve a desired layer by layer deposition.

Alt Text

Alt Text

Sensor Monitoring

weldRRSensor includes the functionality to record all sensor date during the welding process

WAAM Scan & Print

We mounted MTI 2D laser scanner Alt Text on the second robot to evaluate the WAAM layer height profile.

We first conducted experiments of height deposition vs. torch velocity and feed-rate to estabilish a model. We then use the model during WAAM process along with MTI scanned height profile to achieve a flat deposition surface with loop closure.

Product Inspection

We used Artec Spider 3D scanner Alt Text to scan the WAAM parts and saved as a mesh file (.stl). Further using open3d to import as pointcloud in python and evaluate against the original CAD.

Since we're WAAM single-beam geometry, we used the origingal surface CAD as binary classifier left and right points, and evaluating their width and error deviation.

Alt Text

Alt Text

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Batchfile 0.1%