Skip to content

Commit

Permalink
udpate the config doc
Browse files Browse the repository at this point in the history
  • Loading branch information
puru07 committed Oct 23, 2020
1 parent f32e7b6 commit 8c56791
Show file tree
Hide file tree
Showing 7 changed files with 115 additions and 56 deletions.
Original file line number Diff line number Diff line change
@@ -1,79 +1,99 @@
Config Paramaters
.. _mission_executive:

======================================
Config : Mission Executive
======================================

Mission Executive Config Parameters
----------------------------------------

Below is a brief of the parameters in the Mission Executive Config file.


**1. map_frame**
1. map_frame
--------------------------------------------------

This parameter stores the map frame id.

**2. robot_frame**
2. robot_frame
--------------------------------------------------

This parameter stores the robot frame id.

**3. loop_frequency**
3. loop_frequency
--------------------------------------------------

The frequency at which the mission_executive node runs.

**4. max_time_lag**
4. max_time_lag
--------------------------------------------------

Maximum time in which the feedback should be recieved by the controller action server during the controlling state.

**5. decay**
5. decay
--------------------------------------------------

The factor by which the velocity of the robot is decreased if the feedback lag from the controller action server passes the set threshhold (``max_time_lag``).

**6. planner**
6. planner
--------------------------------------------------

The planner name. User can chose between ``NavfnPlanner`` and ``genroute``

**7. controller**
7. controller
--------------------------------------------------

The controller name. User can chose between ``mw_maxl_planner``, ``trajectory_planner``, ``teb_local_planner`` and ``pure_pursuit_controller``

**8. plan_topic**
8. plan_topic
--------------------------------------------------

The topic name at which the path consisting of waypoints is published.

**9. cmd_vel_topic**
9. cmd_vel_topic
--------------------------------------------------

The topic name at which the command velocity of the robot is published.

**10. route_topic**
10. route_topic
--------------------------------------------------

The topic name at which the route markers for visualizing the route in Rviz are published.

**11. goal_queue_topic**
11. goal_queue_topic
--------------------------------------------------

The topic name at which the goal queue markers for vizualizing the goals in Rviz are published.

**12. tf_timeout**
12. tf_timeout
--------------------------------------------------

The time threshold in which the current robot pose should be updated.

**13. max_retries**
13. max_retries
--------------------------------------------------

The maximum amount of times the controller is allowed to reset before aborting the mission.

**14. min_distance_tolerance**
14. min_distance_tolerance
--------------------------------------------------

If the robot traverses a distance lesser than the this tolerance for a time greater than the ``recovery_timeouts``, recovery will be triggered. The greater the value the more senstive the robot is to triggering recovery.

**15. min_angular_tolerance**
15. min_angular_tolerance
--------------------------------------------------

If the robot traverses an angular distance lesser than the this tolerance for a time greater than the ``recovery_timeouts``, recovery will be triggered. The greater the value the more senstive the robot is to triggering recovery.

**16. controller_reset_timeout**
16. controller_reset_timeout
--------------------------------------------------

The time threshold after which the controller is reset.

**17. recovery_timeouts i.e. recoveries**
17. recovery_timeouts i.e. recoveries
--------------------------------------------------

The timeouts for differnt types of recoveries are set in this field. The increasing order of timeouts decides the order in which recoveries will be executed. Recovery with the least timeout will be executed first and so on.

**18. goal_queue_mode**
18. goal_queue_mode
--------------------------------------------------

If ``true``, the executive will add new goals to a queue and pursue them on a one-by-one basis. If ``false``, the new goals will replace the old goal and only the latest goal will be pursued.
4 changes: 3 additions & 1 deletion docs/source/step_5b.rst → docs/source/config_pp.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
.. _pp:

=================================================
Step 5-B : Controller - Pure Pursuit Tuning Guide
Config : Controller - Pure Pursuit
=================================================

Description
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
.. _traj_planner:

=======================================================
Step 5-A : Controller - Trajectory Planner Tuning Guide
Config : Controller - Trajectory Planner
=======================================================

Overview
Expand Down
8 changes: 3 additions & 5 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,11 @@ Mowito's Navigation Stack documentation

step_5

step_5a
config_traj_planner

step_5b
config_pp

step_5c

config_yaml
config_mission_executive

rosbot_real

Expand Down
48 changes: 30 additions & 18 deletions docs/source/rosbot_real.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. _running the rosbot:

==========================
Running the Actual ROSBot
==========================
Expand All @@ -22,6 +24,8 @@ Connect To ROSBot
``hostname -I``
The output is the IP address of the ROSbot, note it down.

.. _ssh:

3. SSH into the ROSbot
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -35,7 +39,7 @@ Connect To ROSBot
4. Export ROS_IP on ROSBot
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

4.1. SSH into the ROSbot and execute the following :
4.1. :ref:`SSH<ssh>` into the ROSbot and execute the following :
``export ROS_IP=<ip address of the ROSbot>``

4.2. If you have avahi daemon running then you can instead try:
Expand All @@ -45,6 +49,8 @@ Connect To ROSBot

You have to execute the above commands every time you ssh into ROSbot to run Mowito's navigation stack.

.. _setup ground station:

5. Setup the Laptop (ground station)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -64,9 +70,9 @@ Connect To ROSBot
You have execute above two commans on each terminal of Laptop (Ground station) which you want to use for communicating to the ROSbot.


-----------------------------
-------------------------------
Setup Mowito's Stack On Robot
-----------------------------
-------------------------------

User Registration
^^^^^^^^^^^^^^^^^
Expand All @@ -84,7 +90,7 @@ We won't spam. :)
Installation Mowito Navigation Stack
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1. **SSH** into the ROSBot
1. :ref:`SSH<ssh>` into the ROSBot


2. Create mowito directory
Expand Down Expand Up @@ -122,7 +128,7 @@ Installation of Mowito Rosbot Package
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mowito Rosbot package simply contains the necessary launch files and config files, which Mowito team create for easy deployment on ROSbot.

1. **SSH** into the ROSBot
1. :ref:`SSH<ssh>` into the ROSBot

2. clone the Mowito ROSbot package into the mowito_ws

Expand Down Expand Up @@ -155,14 +161,15 @@ During this phase, for navigation the robot, you can use two methods
Method 1 : Manual Navigation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Step 0 : SSH into the rosbot and on it source the workspace**
Step 0 : :ref:`SSH<ssh>` into the rosbot and on it source the workspace
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``ssh husarion@husarion.local``

``source ~/mowito_ws/devel/setup.bash``

**Step 1 : Launch the sim_mw_mapping node**

Step 1 : Launch the sim_mw_mapping node
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. With Mowito Mapping (default)

``roslaunch mowito_rosbot run_mw_mapping.launch``
Expand All @@ -171,11 +178,11 @@ Method 1 : Manual Navigation

``roslaunch mowito_rosbot run_mw_mapping.launch cartographer:=true``

3. With Slamtoolbox

**Step 2 : Launch the remote control for providing commands to the bot**
.. 3. With Slamtoolbox
in another terminal, **ssh in into rosbot** and run the following command :
Step 2 : Launch the remote control for providing commands to the bot
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
in another terminal, :ref:`SSH<ssh>` in into rosbot and run the following command :

``rosrun teleop_twist_keyboard teleop_twist_keyboard``

Expand All @@ -186,8 +193,8 @@ Method 2 : Autonomous Navigation
Here, the robot will explore the map based on the goal destination provided by the user on RViz.


Step 0 : SSH into the rosbot and on it source the workspace
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Step 0 : :ref:`SSH<ssh>` into the rosbot and on it source the workspace
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``ssh husarion@husarion.local``

Expand All @@ -211,7 +218,7 @@ Step 1 : Launch the Mowito Navigation without Map
Step 2: Provide Goal
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Open another terminal, export ROS_MASTER_URI and ROS_IP and then start rviz
Open another terminal, export :ref:`ROS_MASTER_URI and ROS_IP<setup ground station>` and then start rviz

``rviz``

Expand Down Expand Up @@ -258,8 +265,8 @@ the map (pgm and yaml) is saved in the home directory with the name mymap.pgm a
Navigation - With Map
-----------------------------------

Step 0 : SSH into ROSBot and Source the workspace
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step 0 : :ref:`SSH<ssh>` into ROSBot and Source the workspace
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``source <path_to_mowito_ws>/devel/setup.bash``

Expand Down Expand Up @@ -315,10 +322,15 @@ Step 2 : Run the Mowito's Navigation Stack
Step 3 : Give the goals
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

In another terminal, export the ROS_MASTER_URI and ROS_IP, source ros and start rviz:
In another terminal, export the :ref:`ROS_MASTER_URI and ROS_IP<setup ground station>`, source ros and start rviz:

``rviz``

In the rviz, click on the second top panel, click on the nav goal option, and click on the displayed map to give goal to the robot.


-------------------------------------
Configuring Navigation Stack
-------------------------------------

Check out our :ref:`documentation on configuring Mowito Navigation Stack<config>` on a robot.
17 changes: 15 additions & 2 deletions docs/source/step_1.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
==============================================
Step 1 : Choosing a Bot for Simulation
Step 1 : Choosing a Bot
==============================================

The following Bot are currently compatible with the Mowito Navigation Stack.
----------------------------
For Simulation
----------------------------

Mowito provide packages for the simulation of following robots:

1) ROSbot

Expand All @@ -12,3 +16,12 @@ The following Bot are currently compatible with the Mowito Navigation Stack.

4) Jackal

----------------------------
For Real Robot testing
----------------------------

Although Mowito's navigaion stack can work on multiple kind of wheeled robots, we currently provide documentation for the following robots:

1) :ref:`ROSbot<running the rosbot>`

You can adapt the steps and launch files for your own robot or contact Mowito (puru@mowito.in) to create custom launch files for your robot.
28 changes: 20 additions & 8 deletions docs/source/step_5.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,26 @@
==============================
Step 5 : Tuning Bot Parameters
==============================

This section shall provide a guide on how to tune the Trajectory Planner, the Pure Pursuit Controller and the Teb Local Planner.
.. _config:

Pleae refer the following sections for more details.
=======================================
Step 5 : Configuring Bot Parameters
=======================================

1) Part 5-A : Controller - Trajectory Planner Tuning Guide
One of the good things about Mowito's Navigation stack is that you can easily configure it for different situations. You can find the configuration files in the config folder of the mowito packages for the respective robots:

2) Part 5-B : Controller - Pure Pursuit Tuning Guide
1. ROSbot - ``mowito_ws/src/mowito_rosbot/config``
2. Turtlebot - ``mowito_ws/src/mowito_turtlebot/mowito_turtlebot/config``
3. Husky - ``mowito_ws/src/husky/mowito_husky/config``
4. Jackal - ``mwowito_ws/src/mowito_jackal/mowito_jackal/config``


The following pages will get into more details about different config files, and how can they be used for your purpose.

We will be focussing on configuring:

1. Controller - MaxL Controller
2. Controller - :ref:`Trajectory Planner<traj_planner>`
3. Cotnroller - :ref:`Pure Pursuit<pp>`
4. :ref:`Mission Executive<mission_executive>`
5. Costmap

3) Part 5-C : Controller - Teb Local Planner Tuning Guide

0 comments on commit 8c56791

Please sign in to comment.