This project demonstrates how four robotic arms can be used to extract nuclear fuel rods from a reactor and pass them through a series of obstacles. As well as graphically displaying torque loads on the robotic arms (a feature which a digital twin might use), the system also employs computer vision to locate and select which specific fuel rods for extraction. This repository contains all the necessary files and information to build and run the project described above.
- Main view where the user may navigate through the environment to inspect their chosen features. The model design was influenced by a nuclear reactor; here, a cross section is presented such that all four robots can be seen simultaneously. After the final robot recieves the fuel rod, it is then placed on the conveyor belt and subsequently dropped into a hollow cylindar (representing the way that spent fuel is burried underground in lead/ concrete structures).
- Shows the computer vision view as seen by the first robots onboard camera. This system filters for colour, then searches for key features, determines their position in the frame and then assigns the fuel rod to be collected first (note this is always displayed in red). Using inverse kinematics, the robot arm is dynamically adjusted based on the results from the computer vision sensor until the arm is on top of the pre-selected fuel rod.
- A top down view of the nuclear reactor and fuel rods. Sections of the robot are intentionally ommitted from the view so as to better see the fuel rods during extraction.
- Each robotic arm has an onboard camera. Users can see the frames if they wish to get a better view of the gripper and fuel rod. Note, in a real system where a user may wish to control a robotic arm, they may also wish to use the camera for sensing/ control.
- Popup window is used to allow users to control some actions of the robotic arm e.g. joint angles, computer vision frame etc.
- Joint torques are displayed on a graph to illustrate how the forces vary during operation. Note that all 6 joints (for robot 1, closes to the reactor) are displayed on the same graph to conserve space. Ideally, they would be presented on separate scales to allow users to see the joints with lower maximum torques.
- Robot 1 (R1): R1_FKIK implimentation uses forward and inverse kinematics, computer vision and measures joint torque values.
- Robot 2 (R2): NiryoOne_2 is a forward kinematic model.
- Robot 3 (R3): NiryoOne_3 is a forward kinematic model.
- Robot 4 (R4): NiryoOne_4 is a forward kinematic model.
- Currently, only the first robotic arm employs the forward kinematic and inverse kinematic approach. I believe this to be a more sophisticated approach to the one currently used in robots 2-4. Due to time constraints, I was not able to update these robots. Given that they did not need to perform any complex manouvers, as compared with the first robot using computer vision, it was not deemed necessary. Nevertheless, this implimentation would allow for more flexibility when making further developments. See R2_FKIK for the first stages of this implimentation.
- The method for moving the robotic arm toward the selected fuel rod could be improved with a path finding algorithm such as A*. The current method checks whether the fuel rod is in the centre of the frame (within a boundary) and then stop moving if said criteria is met. This causes some oscillations at near satisfied condition.
- Implimentation of a line following robot as opposed to a conveyor belt would demonstrate more variation of capabilites within the simulation.
- Install FBX Exporter --> GameObject --> Export to XBF (note that you should select top level to export)
- Install Probuilder --> tools --> ProBuilder --> ProBuilder Window --> ProBuilderize
- Tools --> ProBuilder --> Export --> Export Obj
- Note: CoppeliaSim can import objects with textures but the textures MUST be as JPEG (or similar)
- Your files will be tif --> convert them to JPEG using this!
- Your Mat file will reference the old .tif file --> change it to .jpeg file instead.



