Skip to content

vinihernech/ros-mapping-microservice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ros-mapping-microservice

About

Microservice for automatic mapping of environments using mobile robots with differential traction. This microservice uses an interface between ROS and a Programmable Intelligent Space based on computer vision. Mapping is done using a SLAM algorithm available in ROS HectorSLAM.

Programmable Intelligent Space (PIS)

The mapping is performed within an intelligent space, so the exploration points that the robot will navigate are in the PIS reference. A python script stores the robot's initial pose and a transformation is done to convert the points in the PIS reference frame to the map's reference frame. The map's frame of reference is defined by the robot's initial pose.

ROS

In the ROS part, a launch file initializes HectorSLAM with the settings chosen by the user. These settings consist of map size, resolution and something like that, and these are available in the Deployment file.

Dependences

Is-reconstruction: Estimate the 3D poses of the ArUco Markers.

ROS-master: Provides naming and registration services to the rest of the nodes in the ROS system.

Usage

Streams:

Name ⇒ Input Output ⇒ Description
IsRosMapping 📨 topic: IsRosMapping.{robot_id}.MappingRequest
💎 schema: MappingRequest
📨 topic: move_base/goal
💎 schema: MoveBaseGoal
It receives exploration points in the PIS referential and sends them to the ROS navigation stack.

Map saver

The map is automatically saved at the end of the process on an NFS server available on the main cluster.

Configuration ⚙️

The behavior of the microservice can be customized by passing a YAML configuration file.

An example configuration file can be found in etc/config/config.yaml and etc/config/hector_config/hector_params.yaml.

Kubernetes k8s

Make sure you have kubectl installed and the right ~/.kube/config file to be able to interact with the cluster.

Deploy the stream application:

kubectl apply -f etc/k8s/deployment.yaml

The .yaml file describes two things:

  • a deployment;
  • a configmap;

A deployment is a way to run our application and guarantee that an N number of replicas will be running. The configmap allows load the options you desires when deploying into the kubernetes platform. See more about deployment and confimap.

Example

An example of use is shown in examples/client.py.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors