UR Manipulator and LiDAR Simulation

Simulation projects for Universal Robot Manipulator and LiDAR scan

Universal Robots (UR) is a manufacturer of collaborative robotic arms. In these projects, 6-DoF UR robotic arms are simulated for various purposes, as well as LiDARs scanning on an AMR (Autonomous Mobile Robot).



Introduction

During my internship at Siemens, I completed several projects related to robot simulation. In the first three months, I primarily focused on simulating the UR robotic arm and generating animations. In the last few weeks, I built from a template project, simulated LiDARs scanning their surroundings.

The first task was to solve the IK problem for the UR robotic arm. In my master’s thesis, I had previously coded a simple IK controller based on gradient descent, but its performance was mediocre, and the convergence speed was far from ideal. The best solution would be to use an analytical approach to achieve real-time IK computation. I found an open-source C++ code for solving the IK of the UR robotic arm and converted it to C# to be compatible with Unity.

First Project: UR Simulation and Animation Rendering

In the first project, I created two different chemistry lab scenes. Using Unity's URDF Importer package, I could import precise models of the UR robotic arm (UR 10) from URDF file into the scenes. For additional requirements, such as a robotic arm base mounted on an AMR, I modeled these elements in Blender. The core of this project was an animation manager and modular robotic actions, which allowed me to combine various robot behaviors procedurally as needed. Recording the robot's action sequences as animations was the final step.


uav-1

Second Project: UR Visualization

In the second project, I integrated ROS communication to create a digital twin of the UR 10 robotic arm, allowing users to view the real robot's pose within Unity. The virtual UR robot in the scene subscribes to a specified ROS topic, where it receives the pose information from the publisher (which, in the intended setup, would be the real UR robot). The virtual robot then synchronizes its pose based on this data, mirroring the movements of the actual robot.


uav-2

Third Project: LiDAR Scanning

In the third project, I extended a template project by implementing two LiDAR sensors on an AMR. The sensors were mounted diagonally, each covering a 270-degree scanning range. The LiDARs emitted rays to detect obstacles and gathered collision data, and then published it in a LaserScan message format.


uav-3