Overview

This project was conducted under the supervision of Dr. Mehrdad Raji Kermani as part of the University of Western’s Applied Robotics Lab. The goal was to advance the functionality of a magnetological clutch drive 5 degree of freedom robotic arm that had previously been developed by Sergey Pisetskiy. This project aimed to increase the functionality of the arm in terms of providing a more accessible interface capable of providing end effector position in either joint space or Cartesian space with path planning from start to end position. In addition to this new method of controlling the arm a test suite was developed to help debug the firmware.

Interface

A new interface was developed using Pyside6, ROS2, and RVIZ2. It consists of two windows. A custom Pyside6 application which can be used to send Manuel commands to the firmware, a console printout of communication sent and received, and graphs of position or MRC duty signal vs time. The second window is RVIZ2 Standard layout with MoveIT for inverse kinematic functionality.

Firmware Debugging

NVIDIA’s Issac Sim

In order to debug the firmware Renode was implemented to emulate all 5 microcontrollers. This allowed peripheral and register level monitoring. This microcontroller emulation receives instructions via a TCP socket bridge directly from the control interface allowing development of the interface without requiring the hardware to run the firmware. It is also connected to NVIDA’s Issac Sim to drive a simulation of the robotic arm to confirm output. Renode runs asynchronously from the host PC clock and slows down its internal speed to ensure deterministic emulation of firmware. While useful this has limited its ability to drive the Issac Sim simulation due to the slow speed at which it updates the clutch duty cycles and acts on the returning encoder data. The Undergraduate Summer Research Internship ended as I was in the process of trying to optimize the Renode process to allow it to run at a usable speed alongside Issac Sim to enable a truly virtual simulation of the entire process of the robotic arm. This is a project I will continue to improve in the future as time permits.

Issac Sim was implemented to provide feedback to the firmware control loops. Positional data is pulled from Issac time and then converted to encoder values before being written to the memory location inside Renodes emulation to allow the PID control loop calculations to take place. While a lighter program such as gazebo would suffice for this purpose, Issac Sim provides functionality such as raytracing for implementation of computer vision systems for future development.