Running an OpenMower simulation

From Open Mower Wiki
Jump to navigation Jump to search

Introduction

You can test the OpenMower software stack yourself by running a simulation where you can record a map and then have it mowed.

It's a bit rough around the edges, but it's a good way to see the software in action without hardware.

This mini-HOWTO is meant to save you a bit of detective work and get you started, not to be a comprehensive guide to the simulation.

Prerequisites

You need the OpenMower software on a platform that has a graphical interface for rviz to be able to run and show the map. Ubuntu 20 is a good choice, possibly on VM, VirtualBox is an excellent choice, if you do not already have a running Ubuntu 20 desktop environment.

You need to have a game controller for controlling the simulated bot.

Making sure the OpenMower environment is sourced

Whenever you are doing anything in a terminal with OpenMower, you need to make sure that ROS knows your OpenMower workspace.

In every terminal that you use: source ~/OpenMower/ROS/devel/setup.sh

Running the simulation

Recording a map

Enable USB ports on VirtualBox

Attach your joystick to a USB port. If you are on a VirtualBox, make sure that the USB port is mapped into your Ubuntu environment (see illustration).

Open a terminal and execute

roslaunch ~/OpenMower/ROS/src/open_mower_ros/open_mower/launch/sim_record_area.launch

This will launch rviz where you can see the Rover and the map.

Use your joystick to record a map and a base. On my gamepad, the btns are

  • 1 - enable movement
  • 2 - start path recording
  • 4 - end path recording
  • 3 - register base

Then exit rviz and the map will be recorded in ~/.ros/map.bag

If you want to record a new map, delete the old one, rm ~/.ros/map.bag

Running the simulation

roslaunch ~/OpenMower/ROS/src/open_mower_ros/open_mower/launch/sim_record_area.launch

OpenMower simulation running

This will launch rviz with the map and rqt_reconfigure where you can control various parameters of the simulation.

You will need to press manual_start_mowing in rqt_reconfigure to start the simulation. You will probably need to zoom out, find your area and then zoom in again on that in rviz.

Diagnostics / debugging / issues

Joystick

Your joystick needs to be transmitting messages on the topic /joy. To test that it does:

  • Run roslaunch ~/OpenMower/ROS/src/open_mower_ros/open_mower/launch/sim_record_area.launch
  • In a new terminal run rostopic echo /joy

You should see messages from the joystick streaming on screen. Test that pressing buttons etc. is reflected in the messages.

If not:

  • Check which joysticks your Ubuntu installation knows: ls -l /dev/input/js*
  • Try to add/adjust wichh joystick the recorder uses in sim_recorc_area.launch to use the correct joystick, see illustration.
Which joystick to use