You are on page 1of 10

Design and Implementation of a Robotic Arm using ROS

and MoveIt!

Term Paper Report


By
Tarannum Perween
(183103)

Under the guidance of


Dr. Rajesh Sharma

Department of Mechanical Engineering

National Institute of Technology Hamirpur


Himachal Pradesh, India
Contents

1. Introduction
● About Manipulators
● Robot Operating System
● Motion Planning and its LIbrary
● Moveit

2. Design of Robotic Arm


● Arm design
● Electrical and mechanical components

3. Software and Hardware Architecture


● ROS Dynamixel package
● Rosserial package
● Robot model package for the arm robotic

4. Position/force hybrid controller

5. Experiments

6. Conclusion and Future work


Introduction

Robots have successfully manipulated simulation and controlled environments


such as a factory. Outside of controlled environments, robots have only performed
sophisticated manipulation tasks when operated by a human. Mobile manipulation
is an important research area for many robotic applications. Moreover, the ability
to manipulate objects is a crucial skill for service robots as it allows them to
develop a more significant number of tasks. A robotic arm, composed of joints,
links, and an end-effector or gripper, is necessary to manipulate objects efficiently.

In this work, a 3- DOF arm with two independent fingers has been designed and
implemented to manipulate objects. The arm was designed using FreeCAD. The
output files are used to print the arm, and they are exported to ROS to create the
Unified Robot Description Format (URDF) files for visualizing. Both the motion
planning and the arm are visualized in RViz while the physical component executes
the plan used to manipulate and grasp the object. ROS and Moveit! Let us use the
package: Open Motion Planning Library (OMPL), which provides a variety of
motion planning algorithms to control different robots. OMPL is widely used in the
robotics community for solving path problems with many constraints.
Robot Operating System

Robot Operating System (ROS) is an open-source robotics middleware suite.


However, ROS is not an operating system but a collection of software frameworks
for robot software development. It provides services designed for a heterogeneous
computer cluster such as hardware abstraction, low-level device control,
implementation of commonly-used functionality, message-passing between
processes, and package management. Software in the ROS Ecosystem can be
separated into three groups:
● language-and platform-independent tools used for building and
distributing ROS-based software;
● ROS client library implementations such as roscpp, rospy, and roslisp;
● packages containing application-related code which uses one or more
ROS client libraries.

Motion Planning and its LIbrary

OMPL (Open Motion Planning Library) is a software package for computing


motion plans using sampling-based algorithms. The library’s content is limited to
motion planning algorithms, which means there is no environment specification, no
collision detection, or visualization. This is intentional as the library is easily
integrated into systems that already provide additional components.

Moveit

MoveIt is a primary source of the functionality for manipulation (and mobile


manipulation) in ROS. MoveIt builds on the ROS messaging and development
systems and utilizes some standard tools in ROS like the ROS Visualizer (Rviz)
and the ROS robot format (URDF).
Design Of Robotic Arm

Arm Design

An open-source CAD program called FreeCAD was used to design the pieces of
the arm corresponding to the three degrees of freedom. FreeCAD is based on
OpenCasCade, Qt, and Python and has open-source libraries. It allows creating
meshes in STL, which are exported to be constructed on a 3D printer and generate
the URDF required in ROS to visualize the movements of the physical arm. The
first one is the arm’s base; it allows to hold the arm’s shoulder to any surface. The
shoulder is connected to the second piece, called the upper arm, and at its end, it’s
connected to the elbow. Then, the third piece is called the forearm. The forearm is
connected to the wrist bracket, and finally, the gripper is attached.

Electrical and mechanical components

The motors in each joint of the arm (shoulder, elbow, and wrist) and the gripper
motors are driven by Robotis Dynamixel series motors. Dynamixel motors let us
obtain their speed, temperature, shaft position, voltage, and load. These motors are
daisy-chained together on a communication bus and connected to a PC’s USB port
by a USB to Dynamixel Adapter. Heavier and more powerful servomotors were
placed to obtain higher torques closer to the elbow and shoulder joints; two
MX-106T on the shoulder and one MX-64T in the elbow. The lighter and smaller
RX-28 and AX-12 actuators were chosen for the wrist and gripper joints to
decrease the arm’s weight.
Software Architecture

ROS Dynamixel package

Dynamixel packages are available in a dynamical motor four stack of ROS. This
stack contains packages used to interface with the Robotis Dynamixel line of
motors. This stack was tested and fully supports AX 12, AX 18, RX24, RX28,
MX28, RX64, MX64, EX106, and MX106 models.

Rosserial package

Rosserial is a protocol for wrapping standard ROS serialized messages and


multiplexing multiple topics and services over a character device such as a serial
port or network socket. The rosserial API performs the same functionality on
devices that communicate via serial communication devices. In our case for
Arduino, rosserial Arduino is used to implementing ROS communication using the
rosserial API. The main advantage of using rosserial is that it allows the Arduino
board to become transparent to the rest of the system. As mentioned before,
Arduino will enable us to connect the force sensors placed on the gripper fingers
with ROS. Data acquired is formatted into a ROS Message directly on the Arduino
board. Then data is serialized and sent to PC by USB port with 57600 baud rate.
The rosserial node controls communication, checks data, and publishes topics
created by Arduino on the ROS System.

Robot model package for the arm robotic

The physical robot must match the Kinematic arm model. ROS has a meta-package
called robot model, which contains vital packages that help build the 3D robot
models. The Unified Robot Description Format (URDF) is used in this package.
The URDF is an XML specification, which describes the robotic arm model. This
file can calculate the 3D pose of the arm robotic and detect potential collisions
between the arm and its environment.
Position Force Controller
It is essential to hold the object with enough force and in the correct position while
grasping the object. For this purpose, a position-force PID controller was used.
When the arm is placed close to the object, the gripper position-force controller is
started in the Grasp Acquisition phase. In Fig. 5 it is shown the scheme of the force
and position PID controller, which is used in the gripper system. The controller
operates in the following way:

• Position: when an object is detected, this controller is on, and the object is
collocated at the center of the gripper; it is called the correct position. When the
PID output is less than a threshold ε, this controller will turn off. The threshold ε is
specified by the absolute percentage of the setpoint position. In our case, ε is equal
to 98%.

• Force: once the PID of position is off, this force is on. It applies enough pressure
to manipulate the object without damaging it.

Experiments
To assess the interface implemented in this work with MoveIt! and RViz, some
experiments were designed to test the following points:

• The physical robot matches the Kinematic Tree model to minimize errors
between motions and positions of the physical arm versus the visualized robot in
RViz.

• The motion planning must direct the arm and gripper close to the object position
for picking it up and go direct to the target position, where the object is released.

• During the object manipulation, the position-force PID controller is run.


The position of the object is known.
For this work, several planning algorithms from OMPL are explored. The
RRT-Connect algorithm has been selected because it finds a plan in most cases and
with a reasonable time.

Throughout the manipulation experiment, that the arm in RViz (1-12)A is aligned
with the physical component (1-12)B. Also, the motion planner established the
route for the arm to move towards the object, take it and place it then in the target
position. Finally, the hybrid PID controller manipulates the thing to avoid losing or
damaging it during the grasp transport phase from one place to another.

Conclusion and future work


In this work, the design and implementation of a robotic arm were presented, and
the integration of several modules in ROS to achieve the objective of manipulating
an object over a semi-structured environment. With this integration, it was possible
to visualize the state of the physical arm in RViz. The Moveit! library was used to
plan the trajectory for moving our arm of 3 degrees of freedom, from an initial
point to an end-point, which were visualized in RViz and were executed in the
robotic arm. Subsequently, a hybrid position-force controller was performed on the
gripper to manipulate the object. This controller allowed to take a thing without
being slipped from the gripper. In future work, a vision module will be
implemented to integrate it into our robotic arm, which will allow you to identify
and locate the objects.

References

[1] 2017 IEEE International Autumn Meeting on Power, Electronics and


Computing (ROPEC 2017). Ixtapa, Mexico.

[2] “Move group concept.”[Online].


Available:https://moveit.ros.org/documentation/ concepts/

[3] C. C. Kemp, A. Edsinger, and E. Torres-Jara, “Challenges for robot


manipulation in human environments [grand challenges of robotics],” IEEE R

[4] W. Qian, Z. Xia, J. Xiong, Y. Gan, Y. Guo, S. Weng, H. Deng, Y. Hu, and J.
Zhang, “Manipulation task simulation using ros and gazebo,” in Robotics and
Biomimetics (ROBIO), 2014 IEEE International Conference on. IEEE, 2014, pp.
2594–2598.

You might also like