Light Mode Image

Robotic Arm Module

An arm code module that is responsible for receiving and sending commands to move the robotic arm.

Arm Code Cover Page

Timeline

August 2023 – December 2023

Implementation Details

Programming Language: Python.

Framework: Robot Operating System (ROS2).

Libraries: Ikpy and NumPy.

Associated with: TrickFire Robotics

Link to GitHub repository: Arm Code Branch

Overview

The arm code is responsible for moving the arm given a specific control command (from a controller). This code is integrated with code from other modules within the same TrickFire URC rover codebase, specifically RobotInfo, RobotInterface, and Mission Control.

The TrickFire Software repository can be found here: Trickfire Robotics University Rover Challenge Software.

Goals

Planning

Part of the code for moving the arm was written by a previous team member who already graduated. However, the former program is a standalone program, independent of the TrickFire codebase. Therefore, I need to rewrite the code into a program that uses ROS2 publishers and subscribers model, so that it can interact with the other parts of TrickFire code modules.

Tasks Checklist:

Research:

Select libraries:

Class Design

Below is the overall diagram (rough sketch) of how the arm should interact with the other parts of the code base.

Arm Code Overview

Rough Diagram of the Arm Node Class

Since the arm is a ROS node, it will subscribe to the control topic published by the Mission Control class. The arm will then use the current position and orientation of the motors and the target to compute the new position and orientation.

The output will be a form of the matrix. So, the class methods will then process that information to send commands to each individual motor.

Input Mapping:

The next part is to map each controller input with a specific topic.

Arm Controller Map

Controller Input Mapping

Outcomes

Currently, the arm code is finished. However, I am unable to test the code and show the result of the arm moving because other teams have not completed the section of their code yet.

Note:

When we have the video of the arm moving, it will be updated on this website.

Next Project →