Skip to content

Navigation

Aurora Tijerina edited this page Apr 23, 2020 · 39 revisions

Navigation

Actual State Overview

Navigation is still in the process of being interconnected to the main engine and the base control unit.

Requirements

ROS Package dependencies

Navigation diagram

Nav_Diagram

Robot Setup

Setting up transforms

For frame transforms between sensor streams, base frame and odometry we use a URDF robot model powered by the Robot State Publisher package.

Getting a map

We decided to use Hector Slam's mapping package because it can provide a map accurately without the need of odometry.

[WIP] Navigation stack

The robot will run following the ROS navigation stack guide.
At the moment, we have this core transform tree implemented:

Transform diagram

TODO: Goal Set

We still have to set an intermediate node that processes the information sent from the Navigation Action Server and releases the /goal topic.

[WIP] Action Server Algorithm

This is the actual action server algorithm that is being used, it receives a string and looks for its PoseStamped value in a JSON. For more details of the code visit the navigation action code.

Navigation Action Server

def __init__(self, name):
        self._action_name = name
        # Initialize Navigation Action Server
        self._as = actionlib.SimpleActionServer(self._action_name, actionlib_tutorial.msg.navServAction, execute_cb=self.execute_cb, auto_start = False)
        self._as.start()

Base Control

Short description of the programming module

[Code section title]

if(x=y){
    return "they are the same"
}else{
    return "they are different"
}

if(x=y){ return "they are the same" }else{ return "they are different" }

[Code section title]

Additional modifications and improvements

Additional modifications or things to improve.

References/Support links