Rovo Barkhausen

ROVO2

Warning

Please thoroughly review this document. If uncertain, it’s crucial to seek guidance from specialists, experts, or the manufacturers of the components used. The robot should not be activated until clarification is obtained.

If uncertain, please refer to the provided guides or reach out to a specialist, expert, or manufacturer associated with the components used. The robot should not be activated until uncertainties are resolved. Contact details can be found in the support forums within the Getting Help Section.

Only individuals familiar with robotics or these instructions should operate the robot. Untrained users may pose risks when handling robots.

Important

The robot supplied by MYBOTSHOP GmbH serves as an R&D device and does not possess CE Marking or Certificate of Incorporation. Familiarity with basic ROS concepts is necessary. For those unfamiliar with ROS, we advise referring to the ROS Wiki as an initial step.

Kindly note that the aforementioned robot is categorized as a partially completed machine according to the Machinery Directive 2006/42/EC and does not bear a CE marking.

Clients understand and accept that any information or materials furnished by MYBOTSHOP GmbH are exclusively for R&D purposes. Services are provided on an “AS IS” basis without any express or implied representation or warranty, including warranties of merchantability, fitness for a particular purpose, non-infringement, or any other warranty.

MYBOTSHOP GmbH is not liable for any damages, be they direct, indirect, special, incidental, or consequential, arising from the use or inability to use the provided information or materials. This limitation of liability applies irrespective of the nature of the action, whether contractual, tortious, or otherwise.

1. Robot Interface

Guidelines for connecting with the robot Applicable on Ubuntu 20.04

1.1. Static Network Connection

For the initial setup, connecting via a LAN cable is necessary to configure the robot’s WLAN network. To create a static connection on your PC (not the robot) in Ubuntu:

  1. Navigate to Settings → Network, then click on + to generate a new connection.

  2. Adjust the IPv4 settings to Manual.

  3. Configure the IP Address as 192.168.126.51 and the Netmask as 24.

  4. Save the settings and restart your network.

Once connected, verify the host’s local IP using the following command in the Host PC’s terminal:

ifconfig

Subsequently, perform a ping test to the robot:

ping 192.168.126.1

To access the robot via SSH, use the command:

ssh -X administrator@192.168.126.1

Please note, the default password is:

mybotshop

Note

Sometimes other networks can cause disruptions when connecting to the Rovo. It is best to have only your connection to the robot active and all others inactive.

1.2. Screen Connection

Another option to connect to the robot involves using an HDMI cable along with a mouse and keyboard. This setup facilitates connecting the robot within your local network.3

2. Quick-Start ROVO2 (Real-Hardware)

2.1 Switching ROS Distributions

By default, the system operates on ROS Noetic. To transition to ROS Foxy, input the command:

foxy

To revert to ROS Noetic:

noetic

Running the appropriate ROS distribution is essential while utilizing the robot’s ROS drivers.

2.2 ROVO2 Operation

Initiate the Hardware Launch for rovo by executing the following commands:

roslaunch rovo_bringup system_startup.launch

for ros2

ros2 launch rovo_bringup system_startup.launch.py

Adjust Gear Settings (1-4):

rosservice call /rovo_base/set_gear "gear: 1"

for ros2

ros2 service call /rovo_base/set_gear rovo_msgs/srv/SetGear "gear: 1"

These commands facilitate the launch of hardware components and allow for setting the gear value to a specified range (1-4) within the robot’s system. The provided examples demonstrate the commands for both ROS and ROS 2 environments, ensuring compatibility and flexibility with different ROS versions. Adjustments in gear settings are performed through ROS services to regulate the robot’s functionalities.

Note

When turning off the ROVO ros driver, please switch to gear 0 and then kill the driver node.

2.3 ROVO2 Remote

Once the ROS driver is active in either ROS1 or ROS2, you can manage the robot using the default remote control, offering ROS-based capabilities:

  1. Button 1: Upshifts to a higher gear.

  2. Button 2: Downshifts to a lower gear.

  3. Button 3: Engages the horn.

  4. Button 4: Activates the light switch.

  5. Button 9: Functions as the dead man’s switch.

  6. Joystick: Controls the ROVO’s movement.

To maneuver the ROVO:

  1. Select gear 1 or higher.

  2. Press and hold Button 9.

  3. Utilize the Joystick for movement control.

These instructions enable ROVO manipulation through the remote control, specifying the functions associated with each button and joystick action while ensuring proper maneuvering protocol for the robot.

                 `▄▄██████████████████████████████▄▄
             ▄██████████████████████████████████████████▄
          ▄████████████████████████████████████████████████▄
        ▄█████▌                                          ████▄
       ███████▌                                          ██████
      ████████▌             ROVO Controller              ███████
     ▐████████▌                                          ███████▌
     ▐████████▌                                          ███████▌
     ████████████████████████████████████████████████████████████
     ████████████████████████████████████████████████████████████▌
    ▄███████████████████████████████████████████████████████████████
   ████████████                                        ███████████████
  █████████████                                        ████████████████
  █████████████                                        ████████████████
  █████████████                                        ████████████████▌
 ██████████████                                        █████████████████
 ██████████████                                        █████████████████
 ██████████████                                        █████████████████▌
 ██████████████                                        ██████████████████
███████████████               ▄███████████▄            ██████████████████
███████████████              ▄████▀▀▀▀▀█████▄          ██████████████████
████████████████████████████████         ████████████████████████████████
██████████████████████████████             █████████████████████████████▌
█████████████████████████████   Emergency   ████████████████████████████
█████████████████████████████      Stop     ███████████████████████████▌
 ▀████████████████████████████             ███████████████████████████▌
  ██████████████████████████████         █████████████████████████████
  ████████████        ████████████████████████████        ███████████
   ███████████   -    ████████████████████████████    0   ███████████
   ███████████        ████████     /|\      ██████        ██████████
    ████████████████████████        |         ██████████████████████
     █████████████████████          |           ███████████████████
     ▀██████████████████            |             ████████████████
       ████████████████             |              ██████████████
        ███████████████<------------j------------->█████████████
         ██████████████             |              ████████████
          ▀█████████████            |             ████████████
           ▀█████████████           |            ████████████
            ▀██████████████         |         ██████████████
             █████████████████     \|/      ███████████████
              ████████████████████████████████████████████▌
              '███████████████████████████████████████████
                ████████████       █████       ██████████▌
                 ███████████   1   █████   2   ██████████
                 ███████████       █████       ██████████
                 ████████████████████████████████████████
                 ████████████████████████████████████████
                 ███████████       █████       ██████████
                 ███████████   3   █████   4   ██████████
                 ███████████       █████       ██████████
                 ████████████████████████████████████████
                 ████████████████████████████████████████
                 ███████████       █████       ██████████
                 ███████████   5   █████   6   ██████████
                 ███████████       █████       ██████████
                 ████████████████████████████████████████
                 ████████████████████████████████████████
                 ███████████       █████       ██████████
                 ███████████   7   █████   8   ██████████
                 ███████████       █████       ██████████
                 ████████████████████████████████████████
                 ████████████████████████████████████████
                 ███████████       █████       ██████████
                 ███████████   9   █████  10   ██████████
                 ███████████       █████       ██████████
                 ████████████████████████████████████████
                 ████████████████████████████████████████
                  ██████████████████████████████████████
                   ▀█████████████████████████████████▀▀`

Note

If either the gear is not set or Button 9 is not held than the robot will not move with the ROS driver.

2.4 Teleop Control (Real-Hardware)

To maneuver the robot, employ the teleop twist command:

For ROS:

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

For ROS 2:

ros2 run teleop_twist_keyboard teleop_twist_keyboard

These commands enable robot control using teleoperation twist functionalities, facilitating movement and navigation via the keyboard.

Note

Remember the gear should be 1 or higher for the robot to move, Also it is recommended that the robot moves in 0.1m/s.

2.5 Start Viz (Real-Hardware)

To observe the robot and its accessible sensors, execute the following file:

For ROS:

roslaunch rovo_viz view_robot.launch

For ROS 2:

ros2 launch rovo_viz view_robot.launch.py

This command initiates a file that provides a visual representation of the robot along with its associated sensors, allowing for convenient monitoring and assessment.

2.6 Start ROVO2 Odom Navigation (ROS1 Only)

To engage autonomous navigation, execute the subsequent launch file:

roslaunch rovo_navigation odom_navigation.launch

Important

Ensure the gear is set to 1 or higher and have the remote control nearby. To halt movement, press Button 9 on the ROVO Controller. Note that the controller takes precedence over velocity commands in the Navigation stack. Therefore, pressing Button 9 stops the robot’s movement due to its higher priority in commanding velocities.

2.7 Enable Lights (Real-Hardware)

Execute the following commands to activate the robot’s light:

For ROS:

rosservice call /rovo_base /set_light "data: true"

For ROS 2:

ros2 service call /rovo_base/set_light std_srvs/srv/SetBool data:\ true

These commands trigger the robot’s light functionality, enabling it for use.

2.8 Enable Horn (Real-Hardware)

To activate the robot’s horn, execute the following commands:

For ROS:

rosservice call /rovo_base/set_horn "data: true "

For ROS 2:

ros2 service call /rovo_base/set_horn std_srvs/srv/SetBool data :\ true

These commands trigger the robot’s horn functionality, activating it for use.

3. Quick-Start Gazebo (Simulated-Hardware)

To launch the Gazebo world simulation for the ROVO robot, use the following command:

roslaunch rovo_simulator gazebo_world.launch

This command initializes the Gazebo simulation environment for the ROVO robot, allowing you to interact with and test its functionalities within the simulated world.

3.1 Teleop Control (Simulated-Hardware)

To maneuver the robot, utilize the teleop twist command:

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

Ensure the command ‘/rovo_velocity_controller/cmd_vel’ is designated for the movement commands (cmd_vel). Adjust this command based on your system setup to enable robot control through teleoperation twist functionalities.

4. ROS Multi Machine (ROS1 Only)

Enables viewing the latency of the robot. The robot is set to the localhost by default.

4.1 MultiMachine - Host

To ensure proper communication across terminals in the robot (ideally 4-5 terminals), export the specified environment variables:

export ROS_MASTER_URI=http://192.168.126.1:11311/
export ROS_IP=192.168.126.1
export ROS_HOSTNAME=192.168.126.1

These commands enable seamless communication and coordination among the terminals within the robot.

4.2 Multimachine - Client To set up the environment variables across all terminals on your PC, use the following commands:

export ROS_MASTER_URI=http://192.168.126.1:11311/
export ROS_IP=192.168.126.52
export ROS_HOSTNAME=192.168.126.52

These commands ensure consistent communication across your PC’s terminals by defining the ROS master URI, IP address, and hostname.

4.3 Multimachine Usage To initiate on the robot:

roslaunch rovo_bringup system_startup.launch

For the user’s PC:

roslaunch rovo_viz view_robot.launch

These commands launch the necessary setups to start the robot’s functionalities on one system and enable visualization on the user’s PC.

5. Autonomous Mobile Robot Safety Guidelines

Deploying autonomous mobile robots mandates a focus on safety procedures to prevent accidents and guarantee secure operations. The subsequent guidelines delineate crucial safety measures for working with autonomous mobile robots:

5.1 Work Area Safety

⦿ Ensure the workspace is tidy and adequately illuminated. Cluttered or dimly lit environments can hinder sensor performance and navigation systems.

⦿ Refrain from deploying autonomous mobile robots in explosive settings, including areas with flammable substances like gases, liquids, or dust. The robot’s components could present hazards in such environments.

⦿ Maintain a safe distance between bystanders and unauthorized individuals during robot operation to avert interference with autonomous navigation.

5.2 Electrical Safety

⦿ Guarantee the robot’s power system complies with electrical safety standards. Conduct routine inspections and upkeep of power components to avert malfunctions.

⦿ Introduce safeguards to shield the robot from unfavorable weather conditions, like rain or damp environments.

⦿ Perform regular assessments of power cables and connections, promptly replacing any damaged components to mitigate the risk of electrical complications.

5.3 Navigation Safety

⦿ Introduce obstacle detection and avoidance systems to avert collisions with objects, individuals, or other robotic entities.

⦿ Establish and uphold safety zones within the robot’s operational vicinity to mitigate inadvertent interactions with personnel or other machinery.

⦿ Conduct periodic calibration and testing of the robot’s navigation sensors and systems to uphold precise and dependable functionality.

5.4 Emergency Response

⦿ Integrate an emergency stop mechanism to swiftly cease the robot’s operation during unforeseen circumstances or emergencies.

⦿ Clearly identify and communicate emergency stop locations across the robot’s operational vicinity.

⦿ Organize routine emergency response drills to acquaint personnel with protocols for managing unexpected situations.

5.5 Data Security and Privacy

⦿ Introduce robust cybersecurity protocols to safeguard the robot’s control systems and data against unauthorized access or tampering.

⦿ Uphold compliance with privacy regulations when acquiring, storing, or transmitting data gathered by the robot’s sensors.

⦿ Conduct regular updates of software and firmware to tackle security vulnerabilities and fortify the overall system integrity.

5.6 Human Interaction Safety

⦿ Integrate sensors and communication systems capable of detecting and responding to human presence in the robot’s proximity.

⦿ Employ visual and audible signals to effectively convey the robot’s operational status and intentions, ensuring nearby individuals are informed.

⦿ Develop precise protocols for secure human-robot collaboration, particularly in shared workspaces, to maintain safety and efficiency in operations.

5.7 Residual Risks

Although safety measures are in place, residual risks may persist, including:

⦿ Impairment of sensor functionality.

⦿ Potential collisions in crowded or dynamic environments.

⦿ Cybersecurity vulnerabilities.

⦿ Unintended human interactions due to unforeseen circumstances.

Important

Autonomous mobile robots are advanced technologies that demand proper usage to evade accidents and maintain a secure environment. Learning and diligently adhering to correct procedures are crucial. Prioritizing both quality and safety is paramount. By adhering to these safety guidelines, you actively contribute to ensuring a safe environment during the deployment of autonomous mobile robots.