Skip to content

Latest commit

 

History

History
226 lines (169 loc) · 9.15 KB

README.md

File metadata and controls

226 lines (169 loc) · 9.15 KB

IFRA_ConveyorBelt - Gazebo-ROS2 Plugin

IFRA (Intelligent Flexible Robotics and Assembly) Group
Centre for Robotics and Assembly
Cranfield University


ABOUT

Intelligent Flexible Robotics and Assembly Group

The IFRA (Intelligent Flexible Robotics and Assembly) Group is part of the Centre for Robotics and Assembly at Cranfield University.

IFRA Group pushes technical boundaries. At IFRA we provide high-tech automation & assembly solutions, and we support smart manufacturing with Smart Industry technologies and solutions. Flexible Manufacturing Systems (FMS) are a clear example. They can improve overall operations and throughput quality by adapting to real-time changes and situations, supporting and pushing the transition towards flexible, intelligent and responsive automation, which we continuously seek and support.

The IFRA Group undertakes innovative research to design, create and improve Intelligent, Responsive and Flexible automation & assembly solutions, and this series of GitHub repositories provide background information and resources of how these developments are supported.

SOCIAL MEDIA:

IFRA-Cranfield:

Centre for Robotics and Assembly:

IFRA_ConveyorBelt Repository

The IFRA_ConveyorBelt repository has been developed in order to simulate the behaviour of a Conveyor Belt in a ROS2-Gazebo environment. This feature has been achieved thanks to the design and implementation of a ROS2-Gazebo Plugin, which activates the Conveyor with a simple Service Call in ROS2. The repository contains a Gazebo package as well, where the plugin can be easily tested and verified with a simple box.

VIDEO: Simple ConveyorBelt in ROS2 Gazebo

Alt text


INSTALLATION

All packages in this repository have been developed, executed and tested in a Ubuntu 22.04 machine with ROS 2 Humble (the plugin has not been tested in other ROS2 distributions yet). It can be easily downloaded and installed by executing the following commands:

cd ~/dev_ws/src
git clone https://github.com/IFRA-Cranfield/IFRA_ConveyorBelt.git
cd ~/dev_ws
colcon build

USAGE

The "ros2_conveyorbelt" Gazebo plugin is a MODEL PLUGIN. Thus, it has to be defined inside the ConveyorBelt model (.urdf or .sdf) and it is loaded when the ConveyorBelt is spawned to the Gazebo World. The plugin generates a ROS2 Service named /CONVEYORPOWER, which must be called in order to manipulate the speed of the ConveyorBelt.

MAIN REQUIREMENT to execute the plugin: tag in MODEL

The following tag must be added to the .sdf or .urdf file of the ConveyorBelt model:

<gazebo>
    <plugin filename="libROS2ConveyorBeltPlugin.so" name="ros2_conveyorbelt_plugin">
        <ros>
            <namespace></namespace>
        </ros>
        <max_velocity>0.2</max_velocity>
        <publish_rate>10</publish_rate>
    </plugin>
</gazebo>

The max_velocity and publish_rate parameters can be manually modified, but it is recommended to leave them with these pre-defined values for optimal performance.

EXAMPLE: Simple cube in ConveyorBelt

The following steps must be followed in order to execute and simulate a simple box on top of the ConveyorBelt (as shown in the video above):

  1. Launch the ConveyorBelt Gazebo environment:

    ros2 launch conveyorbelt_gazebo conveyorbelt.launch.py
  2. Spawn the box on top of the Belt:

    ros2 run ros2_conveyorbelt SpawnObject.py --package "conveyorbelt_gazebo" --urdf "box.urdf" --name "box" --x 0.0 --y -0.5 --z 0.76
  3. Activate the ConveyorBelt with the desired speed -> Value = (0,100]:

    ros2 service call /CONVEYORPOWER conveyorbelt_msgs/srv/ConveyorBeltControl "{power: --}"

License

Intelligent Flexible Robotics and Assembly Group
Created on behalf of the IFRA Group at Cranfield University, United Kingdom
E-mail: [email protected]

Licensed under the Apache-2.0 License.
You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0

Cranfield University
School of Aerospace, Transport and Manufacturing (SATM)
Centre for Robotics and Assembly
College Road, Cranfield
MK43 0AL, Bedfordshire, UK


References

Some of the core concepts and source code used to develop the IFRA_ConveyorBelt repository has been implemented thanks to the information and content that is publicly released in the following GitHub repositories:

  • usnistgov/ARIAC: Reference of how a ConveyorBelt can be simulated with a ROS2 Plugin has been taken from the "ariac2023" branch of this repository, and adapted for the IFRA ROS2 Robot Simulation in Gazebo.

  • rokokoo/gconveyor-demo: The CAD file (mesh) of the ConveyorBelt used in our demo has been taken from this repository.

Copyright statements aknowledging both repositories have been added to the source code.


Cite our work

You can cite our work with the following statement:
IFRA-Cranfield (2023) Gazebo-ROS2 Conveyor Belt Plugin. URL: https://github.com/IFRA-Cranfield/IFRA_ConveyorBelt.


Contact

Mikel Bueno Viso - Research Assistant in Intelligent Automation at Cranfield University
E-mail: [email protected]
LinkedIn: https://www.linkedin.com/in/mikel-bueno-viso/
Profile: https://www.cranfield.ac.uk/people/mikel-bueno-viso-32884399

Dr. Seemal Asif - Lecturer in Artificial Intelligence and Robotics at Cranfield University
E-mail: [email protected]
LinkedIn: https://www.linkedin.com/in/dr-seemal-asif-ceng-fhea-miet-9370515a/
Profile: https://www.cranfield.ac.uk/people/dr-seemal-asif-695915

Professor Phil Webb - Professor of Aero-Structure Design and Assembly at Cranfield University
E-mail: [email protected]
LinkedIn: https://www.linkedin.com/in/phil-webb-64283223/
Profile: https://www.cranfield.ac.uk/people/professor-phil-webb-746415