Difference between revisions of "Running an OpenMower simulation"
Tinker0436 (talk | contribs) (Initial commit, unfinished) |
Tinker0436 (talk | contribs) m (→Running the simulation: Ca complete) |
||
Line 24: | Line 24: | ||
=== Recording a map === | === Recording a map === | ||
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. | [[File:VirtualBox enable USB.png|thumb|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 | |||
<code>roslaunch ~/OpenMower/ROS/src/open_mower_ros/open_mower/launch/sim_record_area.launch</code> | |||
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 <code>~/.ros/map.bag</code> | |||
If you want to record a new map, delete the old one, <code>rm ~/.ros/map.bag</code> | |||
=== Running the simulation === | |||
<code>roslaunch ~/OpenMower/ROS/src/open_mower_ros/open_mower/launch/sim_record_area.launch</code> | <code>roslaunch ~/OpenMower/ROS/src/open_mower_ros/open_mower/launch/sim_record_area.launch</code> | ||
[[File:Simulation running.png|thumb|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 <code>roslaunch ~/OpenMower/ROS/src/open_mower_ros/open_mower/launch/sim_record_area.launch</code> | |||
* In a new terminal run <code>rostopic echo /joy</code> | |||
* 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: <code>ls -l /dev/input/js*</code> | |||
* Try to add/adjust wichh joystick the recorder uses in sim_recorc_area.launch to use the correct joystick, see illustration. |
Revision as of 05:57, 4 June 2022
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.
- Install ROS on Ubuntu: http://wiki.ros.org/noetic/Installation/Ubuntu - use the full install
- Note: make sure that you have ROS environment set up in your terminal by
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
and log out and back in.
- Note: make sure that you have ROS environment set up in your terminal by
- Install the OpenMower software: Use the instructions here: Setting up ROS on a Raspberry Pi (intended to be the Rover -- OpenMower)
- Make sure that you have had
catkin_make
succeed (may take a few tries, often 4 or more)
- Make sure that you have had
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
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
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.