SuperDroid Robots MiniSLAM Setup, Operation, And Configuration

MiniSLAM
Setup, Operation, and Configuration
Short Description The MiniSLAM robot is an development platform designed to demonstrate the capabilities of SLAM algorithms paired with autonomous waypoint navigation.
Images shown may not be an exact representation of the robot’s features listed in this document
SuperDroid Robots, Inc Contact 224 Technology Park Lane (919) 557-9162 Fuquay Varina, NC 27526 SDR@SDRobots.com www.SuperDroidRobots.com
Revised: August 3, 2018 Page 2 of 13
Contents
Setup ............................................................................................................................................................................. 3
SYSTEM REQUIREMENTS ................................................................................................................................................ 3
FIRST TIME SETUP ......................................................................................................................................................... 3
Operation ...................................................................................................................................................................... 3
LAUNCHING ................................................................................................................................................................. 4
CONTROL ..................................................................................................................................................................... 4
VISUALIZATION ............................................................................................................................................................. 6
ADDITIONAL FEEDBACK .................................................................................................................................................. 9
Configuration Options ................................................................................................................................................ 10
NODE PARAMETERS .................................................................................................................................................... 11
CREATING/EDITING C++ PACKAGES ............................................................................................................................... 11
General Terms............................................................................................................................................................. 13
SuperDroid Robots, Inc Contact 224 Technology Park Lane (919) 557-9162 Fuquay Varina, NC 27526 SDR@SDRobots.com www.SuperDroidRobots.com
Revised: August 3, 2018 Page 3 of 13
Setup
This platform is built on the Robot Operating System (ROS). To get everything up and running, knowledge of ROS and basic Linux functions is a requirement. Generally, wiki.ros.org is an excellent source of information full of tutorials/guides for both beginners and advanced users. If you’re just getting started with ROS, it is highly recommended to complete the beginner level tutorials.
System Requirements
The following will be needed to setup and operate the MiniSLAM robot:
Computer with Ubuntu 16.04 that’s able to connect to a wireless router
NOTE: A virtual machine running Ubuntu 16.04 will also work but may require additional setup
X-input USB Gamepad
First Time Setup
Complete the steps below to setup your computer:
1. Make sure your computer has internet connection.
2. Follow this tutorial to install ROS Kinetic on your Ubuntu machine.
3. Install the joy ROS node to read values from your USB Gamepad:
4. Download the MiniSLAM_UI.zip file and extract it on your Ubuntu machine.
5. Connect the USB gamepad to your computer and confirm the Linux device name is js0:
NOTE: Go to step 6 if the device name is js0.
If the joystick is listed as something else (js1, js2, etc.) you will need to edit the launch file to point to the correct device name:
Edit the following line with the correct name:
6. Turn the robot on and connect to the on-board router (SSID: MiniSLAM). Confirm that your network
interface (usually wlan0) has been assigned an IP address.
Operation
Control and operation of this robot is performed through ROS Visualization (RViz) and the provided USB gamepad. Before proceeding, make sure the first time setup steps have been completed.
sudo apt-get install ros-kinetic-joy
ls /dev/input/
vim /path/to/MiniSLAM_UI/ui.launch
<param name=”dev” value=”/dev/input/<enter device here>”
SuperDroid Robots, Inc Contact 224 Technology Park Lane (919) 557-9162 Fuquay Varina, NC 27526 SDR@SDRobots.com www.SuperDroidRobots.com
Revised: August 3, 2018 Page 4 of 13
Launching
Follow these steps to begin operation:
1. Power on the robot and connect to the on-board router (SSID: MiniSLAM). Once the LIDAR starts
spinning, the robot boot process has finished. This usually takes around 30 seconds.
2. Launch the ROS joystick driver and RViz using launch_ui.sh located in the MiniSLAM_UI directory. If the
network interface used to connect to the robot is anything other than wlan0, it will need to be passed as an argument:
NOTE: The source command always needs to be used so ROS environment variables are set properly.
3. Confirm that RViz is able to find the mini_slam.rviz configuration file located in the MiniSLAM_UI
directory. If the display options shown below are available, everything has launched correctly:
If the above display options aren’t visible, load the configuration file manually: File->Open Config->/path/to/MIniSLAM_UI/mini_slam.rviz
Control
The MiniSLAM robot can either be operated manually or through autonomous waypoint navigation. The provided USB gamepad is used to provide manual control and for switching operation modes:
source /path/to/MiniSLAM_UI/launch_ui.sh <enter network interface here>
SuperDroid Robots, Inc Contact 224 Technology Park Lane (919) 557-9162 Fuquay Varina, NC 27526 SDR@SDRobots.com www.SuperDroidRobots.com
Revised: August 3, 2018 Page 5 of 13
NOTE: Other X input gamepads should be compatible if a Linux device name can be assigned.
Once in autonomous navigation mode, RViz is used to send waypoint goals. To send waypoint goals:
1. Select 2D Nav Goal.
2. Draw a waypoint by clicking and dragging a pose arrow on the map that consists of both position and
orientation.
Gamepad Controls
BACK
Enable Manual Mode
START
Enable Autonomous Navigation Mode
Turn
Drive
SuperDroid Robots, Inc Contact 224 Technology Park Lane (919) 557-9162 Fuquay Varina, NC 27526 SDR@SDRobots.com www.SuperDroidRobots.com
Revised: August 3, 2018 Page 6 of 13
Please take note of the following while in autonomous navigation mode:
Avoid setting waypoints on or very close to obstacles.
If there are no possible paths to a waypoint due to obstruction, the robot will abandon the current goal
and await new commands.
If waypoints are sent while in manual mode, the robot will proceed with path planning but won’t act until
it enters autonomous navigation mode.
Waypoints can be drawn in unexplored areas of the map. However, due to the computational limitations
of the BeagleBone Black, the map size is limited to 24x24 meters.
The robot will only be able to navigate around obstacles the LIDAR can see. Any obstacles below the 2D
laser scan plane are potential collision points.
The 2D SLAM positioning assumes a flat, indoor operating area. Sunlight and inclines/declines will result
in position drift and errors in map data.
Visualization
The mini_slam.rviz configuration file comes with several data visualization features in the form of RViz displays. This file includes, but not limited to, the following ROS message displays:
LaserScan
o Raw LIDAR output from the YDLIDAR G4 LIDAR driver node o Published by ydlidar_node
Map
o 2D map generated by the SLAM node using raw laser scan data and positioning
SuperDroid Robots, Inc Contact 224 Technology Park Lane (919) 557-9162 Fuquay Varina, NC 27526 SDR@SDRobots.com www.SuperDroidRobots.com
Revised: August 3, 2018 Page 7 of 13
o Published by hector_mapping
Global Costmap
o Map of inflated static obstacles used for global path planning o Published by move_base
Local Costmap
o Map of inflated static and dynamic obstacles used for local path planning
SuperDroid Robots, Inc Contact 224 Technology Park Lane (919) 557-9162 Fuquay Varina, NC 27526 SDR@SDRobots.com www.SuperDroidRobots.com
Revised: August 3, 2018 Page 8 of 13
o Published by move_base
Global Path
o Calculated path to the goal using global costmap data o Published by move_base
SuperDroid Robots, Inc Contact 224 Technology Park Lane (919) 557-9162 Fuquay Varina, NC 27526 SDR@SDRobots.com www.SuperDroidRobots.com
Revised: August 3, 2018 Page 9 of 13
Local Path
o Calculated path to the edge of the rolling window using local costmap data o Published by move_base
Additional Feedback
Output from every ROS topic is accessible through the command line without having to ssh into the BeagleBone. To do so, open a terminal, source the network configuration using the correct network device, and execute the echo command:
source /path/to/MiniSLAM_UI/init_network.sh <network interface>
rostopic echo <topic name>
SuperDroid Robots, Inc Contact 224 Technology Park Lane (919) 557-9162 Fuquay Varina, NC 27526 SDR@SDRobots.com www.SuperDroidRobots.com
Revised: August 3, 2018 Page 10 of 13
The graph above shows all active topic advertisements and subscriptions during runtime. Any of these can be echoed to view the corresponding ROS messages. In addition, the following topics are inactive but can be useful:
/roboteq_driver/batt o Should be monitored from time to time for robot battery voltage readings. If the readings are
consistently in the 22 Volt range, power off the robot and charge the batteries.
/roboteq_driver/encoders
o Raw encoder values. Converted to position and velocity for the /roboteq_driver/wheelOdom
topic.
For a full list of the available topics execute the following command during runtime:
Configuration Options
This platform has multiple configuration options in the form of ROS parameters, adding new ROS packages, or editing and rebuilding the current packages. Before making any changes, it is highly recommended to create a new git branch inside the mini_slam_bot directory. To ssh into the BeagleBone Black, connect to the router, open a terminal, and execute:
rostopic list
ssh -Y ubuntu@192.168.10.160
SuperDroid Robots, Inc Contact 224 Technology Park Lane (919) 557-9162 Fuquay Varina, NC 27526 SDR@SDRobots.com www.SuperDroidRobots.com
Revised: August 3, 2018 Page 11 of 13
The password is temppwd.
Node Parameters
Almost every node has parameters that can be changed without the need to rebuild. Below is a table of nodes, their parameter locations, and a reference for parameter descriptions:
ROS Node
Parameter File Path
(~/ = /home/ubuntu/)
Reference Material
Notes
roboteq_driver
~/mini_slam_bot/launch/mini_slam.lau nch
See mini_slam.launch
These parameters shouldn’t be changed unless there’s a change
in hardware.
ydlidar_node
~/mini_slam_bot/launch/mini_slam.lau nch
https://github.com/EAIB OT/ydlidar
See GitHub README for parameter descriptions.
hector_mapping
~/mini_slam_bot/launch/mini_slam.lau nch
http://wiki.ros.org/hect or_mapping
move_base
~/mini_slam_bot/launch/navigation/m ove_base.launch
~/mini_slam_bot/launch/navigation/pa rams/costmap_common_params.yaml
~/mini_slam_bot/launch/navigation/pa rams/global_costmap_params.yaml
~/mini_slam_bot/launch/navigation/pa rams/local_costmap_params.yaml
~/mini_slam_bot/launch/navigation/pa rams/teb_local_planner_params.yaml
http://wiki.ros.org/mov e_base http://wiki.ros.org/teb_l ocal_planner
Highly recommended to read through the package information and tutorials before changing these parameters.
Creating/Editing C++ Packages
The platform is setup with a catkin build system to build/rebuild ROS packages from source. If you are not familiar with building ROS packages in a catkin workspace, read through this tutorial. To create a new package:
1. Create a new ROS catkin package in the existing catkin workspace:
2. Add source code to the /home/ubuntu/mini_slam_bot/catkin_ws/src/<package_name>/src/ directory.
cd /home/ubuntu/mini_slam_bot/catkin_ws/src/
catkin_create_pkg <package_name> [depend1] [depend2] …
SuperDroid Robots, Inc Contact 224 Technology Park Lane (919) 557-9162 Fuquay Varina, NC 27526 SDR@SDRobots.com www.SuperDroidRobots.com
Revised: August 3, 2018 Page 12 of 13
3. Edit the CMakeLists.txt to detail how you want your package built and add information to package.xml.
These files will be located one level below the package directory. DO NOT edit the CMakeLists.txt located in the catkin_ws/src/ directory.
4. To compile a package and install:
A couple of notes:
You only need to complete step 4 when editing a package.
If a package requires interfacing with the BeagleBone IO, you may need to change the pin multiplexers
and compile the device tree overlay. The device overlay source is in /home/ubuntu/overlays.
cd /home/ubuntu/mini_slam_bot/catkin_ws/
./catkin_install.bash <package_name>
SuperDroid Robots, Inc Contact 224 Technology Park Lane (919) 557-9162 Fuquay Varina, NC 27526 SDR@SDRobots.com www.SuperDroidRobots.com
Revised: August 3, 2018 Page 13 of 13
General Terms
1. SuperDroid Robots, Inc is not responsible for special incidental or consequential damages resulting from any
warranty or under any legal theory, including, but not limited to lost profits, downtime, goodwill, damage to, or replacement equipment or property, or any cost of recovering, reprogramming, or reproducing any data stored. ANY LIABILITY SHALL BE LIMITED TO REPLACEMENT OF DEFECTIVE PARTS. SuperDroid Robots, Inc. is further not responsible for any personal damages, including, but not limited to bodily and health damages resulting from any use of our products.
2. SuperDroid Robots, Inc. makes no representations as to the fitness of its products for specific uses. ANY
IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE IS HEREBY EXCLUDED.
3. Agreements shall be construed in accordance with the laws of the State of North Carolina, and the rights and
obligations created hereby shall be governed by the laws of North Carolina.
4. In the event a dispute or controversy arises, such dispute or controversy (including claims of default) shall be
brought in the courts of Wake County, North Carolina and the plaintiff hereby agrees to this choice of venue.
Loading...