ROS Autonomous Programmable IPS Robot Support Page

Autonomous IPS Overview

The primary components of a mobile autonomous robot are positioning, obstacle detection, navigation, and control. In order for all these components to work together effectively in an autonomous project, pre-planning is necessary. Choosing the correct sensors to supply positioning or obstacle detection, given the platform’s environment, will make navigation and control implementation a much smoother process.

What is IPS?

Indoor navigation positioning system (IPS) is like a GPS for indoor environments designed to provide high-precision location data to autonomous robots. An IPS system consists of at least two stationary beacons, one or more mobile beacons, software interface, and a central modem. Together, the system creates a global coordinate frame automatically. The IPS provides the robot's current location precisely to +-2cm and the software interface provides the way-points that the robot travels. The modem uses radio-frequency to communicate to the beacons.

Chassis

This robot has a tracked chassis. The tank treads allow for maximum contact with the ground, even on uneven surfaces.

Odroid-XU4

This is the brain of the robot. It is running Ubuntu 16.04 which allows us to use ROS. All the processing on the robot happens here. All the sensors on the robot are connected to the Odroid. Based on the data received from the sensors, it sends packets to the Roboteq motor controller which controls the motion of the robot. Learn more about the Roboteq Motor Controller.

Picture

Marvel Mind IPS

odroid.jpg

The High Precision Indoor Navigation System (Complete Set) is a system of stationary ultrasonic beacons connected by radio interface in ISM band. The kit consists of one mobile beacon (installed on the robot), four stationary beacons (mounted on walls or ceiling) and one modem (connected to a laptop running the dashboard software). Location of the mobile beacon is calculated based on the propagation delay of ultrasonic signal to a set of stationary ultrasonic beacons using trilateration. This information is then passed on to the Odroid, helping in the localization process of the robot.


You can visit their homepage and upgrade to the latest firmware. Otherwise, you can download the default firmware. Otherwise, you can download the default firmware from here. If you need to increase the coverage area, you can add more stationary beacons to the network.

Scanse Sweep LIDAR

Sweep is a scanning LIDAR sensor designed to bring powerful 360-degree sensing capabilities to everyone for an affordable price. It is a 2D LIDAR which lets the robot perform obstacle detection and avoidance. Sweep scans for objects around the robot and returns the co-ordinate points of these objects to the Odroid. Odroid then uses this information to decide if there is an obstacle in its course and should do something to avoid it. Sweep has a ROS package that you can find  here. For more information about this LIdar, please visit their  website.


The integration of both the sensors grants complete autonomy to the robot. All the user needs to do is set waypoints and the robot will start moving from one point to the other. Buying this robot gives you access to the source code that makes it all function. It is a basic code that implements complete autonomy in simple ways. However, you will be able to implement your own algorithms if you want a more sophisticated approach to autonomy.

ROS

ROS is a Linux based meta operating system for your robot with a massive open source community. Its flexibility allows compatibility with many standalone Linux machines such as the Nvidia Jetson products, Odroid, Raspberry Pi etc. For developers or hobbyists, ROS provides low level device control, tools, and libraries for obtaining, building, writing, and running code.


Here, we’re using custom ROS nodes to find the location of the robot using the MVM IPS and to detect obstacles using the Scanse Sweep LIDAR and then autonomously avoid that obstacle. You get the source code for all these ROS nodes as a part of the complete package when you buy the Programmable Autonomous IPS Robot. You can then choose to use these nodes, modify them to implement an improved autonomous behavior or completely change the way the system works.


You can learn more about ROS from  here or visit our  ROS Autonomous Control Package webpage.

How-To Use The IPS Robot

  1. Connect Marvelmind IPS modem to a computer running Marvelmind Dashboard software via USB
    1. Note: Updating the IPS beacon and modem firmware is not recommended! The robot is tuned and tested using the provided hardware and changing the IPS firmware may prevent the robot from working as intended.
  2. Mount all the stationary beacons on the wall or the ceiling, making sure they have line of sight with at least two other stationary beacons.
  3. On the Dashboard, click on ‘Freeze map’ to freeze the location of the stationary beacons. You can also change some parameters on Dashboard to get the desired alignment of the stationary beacons.
  4. Turn the robot ON. As soon as the robot is switched ON, it will start looking for waypoints.
  5. On the dashboard, right click on the ‘device number’ that corresponds to the mobile beacon and then click on ‘Setup Movement Path’. Select ‘set path on map’ and then click on the map at points that you want to set as waypoints. Once you select all the desired waypoints, click on ‘Start’.
  6. Now the Robot receives all the waypoints and it starts moving towards its first target waypoint, avoiding any obstacles it encounters in its path.
    1. Note : If the robot is not moving, try pressing the ‘START’ button on your gamepad. This button enables autonomous mode. If the robot is stuck somewhere and you need to drive it out of that position, or you just want to drive the robot manually, just press ‘BACK’ button on your gamepad. This enables the manual drive mode of the robot. You will now be able to drive the robot using the analog sticks of the gamepad.

The integration of the IPS and the LIDAR grants complete autonomy to the robot. All the user needs to do is set waypoints and the robot will start moving from one point to the other.