The master's thesis addresses a robotic controller that was developed for a robotic arm with four degrees of freedom. The open-source Robotic operating system or ROS was used for the basic platform and communication between programs. The aim was to make the most of the tools and packages offered by ROS.
Firstly, thesis presents robots that can be found on the market and were developed with ROS. The hardware parts, such as selected actuators, transmissions and encoders, are described which were used in developed robotic arm named GverilaBot. The actuators were controlled by open-source ODrive controllers. At the base of the robotic manipulator is a Raspberry Pi 4 microcomputer with a Linux operating system and ROS Melodic distribution. The main emphasis of the master's thesis is on the development of the controller software, therefore some basic ROS concepts and features are described in more detail.
The concept of kinematics, which describes the motion of bodies, is explained in detail. The kinematics of the GverilaBot robotic manipulator are described by Denavit Hartenberg parameters. Kinematics and dynamics of the robot are described by a standard ROS URDF description. Libraries used in robot trajectory planning such as: MoveIt, OMPL, FCL, KDL and OpenRAVE are also presented.
Slightly more advanced ROS concepts are used to control the robotic manipulator, such as the action service, which was integrated as an interface between the trajectory planning and the ROS package ros_control. Furthermore, communication protocols used to send the current desired position of the joints to the motor controller are described. Position control was used and the motors were controlled by an advanced FOC algorithm.
Finally, the different types of user interfaces used in robotics are pointed out. To make it easier to operate the robotic manipulator, a block-based graphical user interface was developed that relies on the open-source Blockly project and is accessible via any browser. This enables the user to write robotic applications without knowing any of programming languages.
|