Download

Nodes – Mapping Application Example

Before describing how to visualize the map, it’s worth understanding the nodes in the Mapping: Husky demo flow that is provided in MOV.AI Flow™, as described below.

The following describes the nodes that comprise this mapping flow in order to demonstrate how easy it is to use MOV.AI’s flows and nodes to map out your robot’s environment.

Note – In this way, we hope to entice you to use MOV.AI Flow to build your own flows or to take existing flows and modify them for your own needs.

The MOV.AI Flow user interface provides a rich variety of selectable options for building and customizing any flow, such as the ability to drag-and-drop ready-made nodes into your flow (that provide functionality) and to drag-and-draw connections between nodes (that enable you to define message communication between nodes and sub flows).

When you drag-and-draw a connection between the output port of one node and the input port of another (or vice versa) they must both be sending/receiving the same message type. If not, then the connection line between them is displayed yellow and an bright yellow error message is displayed. Hovering over the yellow line connecting between the notes, displays the mismatch of the message types.

These options are demonstrated below.

This flow has the same Start node as the husky Sim drivers node (of the Simple Navigation flow that was described in The Nodes of the Simple Navigation Flow) and it also has an additional four nodes that are not in that flow, as follows.

ekf odom

The ekf_odom node receives information from the IMU (Inertial Measurement Unit) sensor on the robot and from the robot’s odometry (such as its wheels’ rotation) from the Ignition Gazebo simulator. The ekf odom node uses this information to precisely calculate how much the robot has moved away from where it started in order to more precisely estimate its new position in the world.

The ekf odom node has two lines connecting it to the husky sim drivers node –

  • The husky sim drivers node has an output IMU port that provides the ekf odom node with the robot’s acceleration, velocity and so on.
  • The husky sim drivers node has an additional output odometry port that provides the ekf odom node with the robot’s odometry, such as the number of turns of the robot’s wheels.

The information from both these connections is used to approximate the robot’s position relative to where it started.

Note – This node is also used in the autonomous navigation flow, which is described in A Robot Navigating Autonomously.

gmapping

The gmapping node is responsible for SLAM (Simultaneous Localization And Mapping). It is based on a pure ROS node named gmapping.

This node takes the LiDAR scan and creates the map that is shown in RViz. In this way, the map is continuously updated while the robot moves around and transmits its data. RViz visualizes this information as the white, green and colored parts of the RViz map, as described on Learning About Robot Localization.

This node also performs localization, which is the prediction of the robot’s actual position on the map.