Skip to content

Defines a interface to all Eduart robots and also their realisations.

License

Notifications You must be signed in to change notification settings

Bento-Robotics/edu_robot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

edu_robot - Control Software for IoT Shield and Ethernet Gateway

Welcome to the EduArt ROS2 robot control software. In first place it provides a ROS2 node for controlling and monitoring EduArt robots, i.e., the robot Eduard in different hardware realizations like the IoT Bot, the IPC Bot or a custom build robot relying on our stackable drive system. There is also a digital twin in the making, which is not yet feature complete. But, some basic interfaces are already implemented.

These packages are also designed for being used in a robot fleet setup. Basically, they are able to handle multiple robot instances at the same time while using namespaces.

NOTE: For further help please visit our Forum or drop a message to info@eduart-robotik.com.

EduArt's Robot - Eduard

Eduard comes in two hardware realizations. Both using this control software. Below you will find documentation about how to install, update, control and monitor the robot.

ROS2 Interfaces

The software package 'edu_robot' provides ROS2 interface. For details please follow the link below:

ROS2 Interfaces

Lighting Codes

Mode Color Description
UNCONFIGURED white (pulsation) During boot up.
INACTIVE white (dim) Motors are disabled, no error state present. First state after reboot.
REMOTE_CONTROLLED white (dim) Motors are enabled, robot is ready for driving remote controlled.
AUTONOMOUS white (flashing) Robot is in fleet mode and enabled.
CHARGING green (pulsation)

Deploying

On IoT2050

On IPC127e

Coming Soon

Setup your System native and in Virtual machine.

As Siemens Industrial Application

Note: will be updated soon

Applications

Controlling the Robot

Controller

With the package edu_robot_control the EduArt's robots can be controlled remotely. The basic information about how to set up the joystick is also listed below.

Note: the package "edu_robot_control" don't need to be deployed extra. It is included in the "edu_robot" deployment.

A controller can be requested to connect by pressing a specific button once. For the recommended controllers, it is the symbol between the axes. To operate the Robot, the following buttons and axes of the controller are assigned as follows:

Axis DS5 Idle position Value range function
[0] Joystick L: left & right 0.0 1.0 to -1.0 Moving Sidewards
[1] Joystick L: up & down 0.0 1.0 to -1.0 Moving Forward/Backwards
[2] L2 1.0 1.0 to -1.0 not in use
[3] Joystick R: left & right 0.0 1.0 to -1.0 Steering
[4] Joystick R: up & down 0.0 1.0 to -1.0 not in use
[5] R2 1.0 1.0 to -1.0 not in use
[6] D-Pad: left & right 0.0 1.0 to -1.0 not in use
[7] D-Pad: up & down 0.0 1.0 to -1.0 not in use
Button DS5 Idle position Value range function
[0] Square 0 0 or 1 Switch to Skid Drive Kinematic
[1] Cross 0 0 or 1 Light pattern: Operation
[2] Circle 0 0 or 1 Switch to Mecanum Drive Kinematic
[3] Triangle 0 0 or 1 Light pattern: Operation
[4] L1 0 0 or 1 Light pattern: Turning left
[5] R1 0 0 or 1 Light pattern: Turning right
[6] L2 0 0 or 1 Enable Fleet Drive
[7] R2 0 0 or 1 Override collision avoidance
[8] SHARE 0 0 or 1 Disable driving
[9] OPTIONS 0 0 or 1 Enable driving
[10] PS 0 0 or 1 Connect Controller to Eduard
[11] L3 0 0 or 1 not in use
[12] R3 0 0 or 1 not in use
[13] Map 0 0 or 1 Light pattern: Warning light

Node Red

We have a Node Red Web Server, which can also be deployed as a Docker container. With this it is possible to use Topic, Services and Actions to control the robot. For more information please use the following link:

Node Red Web Server

Monitoring Eduard using ROS Tools

RViz2

With the package edu_robot_control the EduArt's robots can be monitored using the tool RViz2 coming with ROS2.

For visualization of Eduard's sensors and actors a RViz setup is provided including a robot description. Since Eduard ROS control node publish all of Eduard's states via TF and ROS topic/services it is easy to access them.

The best way to monitor Eduard's states is using RViz. In the package "edu_robot_control" a launch file is provided including a RViz configuration that allows an easy and fast start. Two ways are supported.

Native ROS2 Installation

If ROS is natively installed the "edu_robot_control" package can be installed into an ROS workspace. As first step clone the package into the workspace by:

git clone https://github.com/EduArt-Robotik/edu_robot_control.git

Please make sure the package will be cloned into the "src" folder in the workspace. If no knowledge about ROS is present please see docs.ros.org for further information.

After the package was cloned it needs to be installed. First leave the "src" folder:

cd ..

Then build it by:

colcon build --packages-select edu_robot_control --symlink-install

Now RViz with the correct configuration can be launched. But before, the used namespace of the robot needs to be estimated. This can be done by:

ros2 topic list

This prints a list of all topics of your robot Eduard:

/eduard/blue/cmd_vel
/eduard/blue/imu
/eduard/blue/joy
/eduard/blue/joy/set_feedback
/eduard/blue/odometry
/eduard/blue/range/front/left/range
/eduard/blue/range/front/right/range
/eduard/blue/range/rear/left/range
/eduard/blue/range/rear/right/range
/eduard/blue/robot_kinematic_description
/eduard/blue/set_lighting_color
/eduard/blue/set_motor_rpm
/eduard/blue/status_report

The namespace is a prefix used by the topic names. In this case it is "eduard/blue".

Important: Setting Correct Namespace

Each Eduard robot comes with a preset namespace, e.g. to reflect the robot's color. This allows that multiple robots are connected to the same network (with same DOMAIN_ID). However this makes it necessary to deal with the namespace, too, when the robot's data shall be received. For example when displaying data using RViz2.

Note: when a namespace is used the Fixed Frame has to be reselected, otherwise the robot is not displayed correctly.

The namespace can be set by using an environment variable. Either set it via the system or define it in front of the ros command:

EDU_ROBOT_NAMESPACE=eduard/red ros2 launch edu_robot_control eduard_monitor.launch.py

This this case it was set to eduard/red. Please replace the color accordingly to your robot. RViz will respect the color and will coloring the robot model. At the moment three colors are available:

eduard-rededuard-greeneduard-blue

Select Wheel Type

Eduard comes with two types of wheel. If wanted it can be selected in RViz for a correct visualization by setting a environment variable in front of the ros command:

EDU_ROBOT_WHEEL_TYPE=offroad ros2 launch edu_robot_control eduard_monitor.launch.py

The following two wheel types are available: mecanum and offroad

eduard-mecanumeduard-offroad

Trouble Shooting

No module named 'roslaunch'

If the following error raises at the launch:

[ERROR] [launch]: Caught exception in launch (see debug for traceback): substitution args not supported:  No module named 'roslaunch'

Please make sure that the correct 'xacro' is installed. For example for ROS humble install 'ros-humble-xacro'.

rqt robot monitor

The Eduard control software provides a diagnostic aggregation. With this, the status of major components can be displayed, as well as live characteristics of these.

With the standard tool rqt_robot_monitor this diagnostic aggregation can be displayed. The application can be started by:

ros2 run rqt_robot_monitor rqt_robot_monitor

Following window will open. Errors and warnings will be shown on the both top lists. By double click on an entry a more detailed windows will open.

error-case

If you want to see the OK states, too, then press on the check box Alternative view on the top left corner.

good-case

Safety instructions

Read this document carefully before using the product for the first time and make sure that no safety-related questions remain unanswered. Use this document only as an aid for expansions and handling of the robot. Pay attention to the warnings and symbols described below in order to understand potential dangers for the user and the device and to avoid accidents.

Limits of use

Risk of damage to the robot platform and/or objects in the surroundings due to operation in an unsuitable environment!

Do not operate the robotic platform

  • not in areas with holes and/or stairs.
  • not on uneven, wet and/or soft surfaces.
  • if on raised platforms (e.g. table, pedestal, stage), then only on the rack provided for this purpose.
  • not in outdoor areas.
  • only at a suitable ambient temperature between 0°C and 40°C .
  • not in wet or humid environments.
  • not in potentially explosive atmospheres.
  • if a minor, then only under the supervision of a parent or tutor.

Predictable misapplication

Dangers result from incorrect handling of the unit (electrical as well as mechanical)!
  • Do not short-circuit the battery!
  • Do not damage the battery with intent!
  • Do not extend the device with extensions with sharp edges or tips!
  • Risk of crushing or impact injuries if the robot falls down!
  • Always switch off the unit completely before making mechanical or electrical changes and disconnect the accumulator from the entire system when making major modifications!
In case of inappropriate programming and use of the robotic platform, damage may occur to the platform itself or to surrounding objects.
Incorrect storage can also cause damage to the robot. Incorrect storage can also cause damage to the robot. Therefore, store the robot as described.
  • not in direct sunlight.
  • only on the storage rack provided.
  • for long storage with the battery unplugged.
  • only in dry rooms.
  • not within reach of children when used unsupervised.

Remaining risks

Under certain circumstances, the platform can cause serious damage to health even when used professionally!
  • Do not work with the platform if you suffer from epilepsy.
  • Looking directly and continuously at the light emitting diodes from a short distance may cause irreversible eye damage.
Fire hazard due to overheating of the robot platform!
  • Do not operate the robot unsupervised.
  • Only charge the accumulator under supervision .
Danger of burns from touching heated parts!

The following parts of the robot platform heat up during operation and must not be touched until they have had enough time to cool down:

  • IOT expansion board
  • Motors after heavy use
  • If applicable, components attached afterwards
Danger of squeezing due to rotating components.
  • Avoid reaching into the drive system.
  • Activate the emergency stop if you notice a malfunction during operation.
  • Lift and carry the robot by the handle provided.
Injuries due to unexpected weight.
  • Expect the weight of the platform to become heavier when lifting.
Risk of injury from falling!
  • Do not place the platform in escape routes or walkways to avoid tripping over it.

References

https://www.eduart-robotik.com

About

Defines a interface to all Eduart robots and also their realisations.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 89.2%
  • Python 6.7%
  • CMake 3.1%
  • Other 1.0%