No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 1.0.4
License Apache License 2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/CLOBOT-Co-Ltd/clober.git
VCS Type git
VCS Version noetic-devel
Last Updated 2021-10-06
Dev Status DEVELOPED
CI status Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

This package includes launch files for navigation

Additional Links

No additional links.

Maintainers

  • clobot-git

Authors

No additional authors.

Clober Navigation

Clober may move & rotate for navigation. Make sure you are operating in a safe environment

Navigation is to move a robot from one location to a specified destination of the given environemnt. For the purpose, a map containing the geometrical information of the robots surroundings is required.

SLAM of the environment allow you to acquire a map

1. Run Navigation Nodes

1.1 Bringup Robot

  1. Run a Bringup for the Clober.
  roslaunch clober_bringup base.launch

  • This can be substituted by running a simulation node
  roslaunch clober_simulation logo_world.launch

1.2 Launch Navigation

roslaunch clober_navigation navigation.launch

2. Estimate Initial Pose

Initial Pose Estimation can be performed before Navigation to intialize AMCL parameters which are critical to Navigation quality. 1. Click 2D Pose Estimate Button on the RVIZ menu

  1. Click on the map where clober is located and drag the green arrow toward the dirction the robot is facing.

  2. Repeat step 1 and 2 to increase data precision.

  3. Launch keyboard teleoperation to further increase precision.

    rosrun teleop_twist_keyboard teleop_twist_keyboard.py

  1. Move the robot back and forth in order to narrow down the estimated location.

  2. Terminate the keyboard teleoperation(Ctrl+C) for the next navigation step.

3. Publish 2D Navigation Goal

  • On the RVIZ menu click 2D Nav Goal

  • Click on the destination and drag the green arrow toward the dirction of the robot on the map.


4. Tuning Guide

You can get more information about Navigation tuning from Basic Navigation Tuning Guide, ROS Navigation Tuning Guide by Kaiyu Zheng, Dynamic Window Approach local planner wiki.

4.1 footprint

  • Defined in clober_navigation/config/costmap_common.yaml

This parameter describes the footprint of the robot used for navigation. Composed of four [x,y] coordinates representing the four corners of the base of the robot

default:

    footprint: [[-0.202, -0.202], [-0.202, 0.202], [0.202, 0.202], [0.202, -0.202]]

4.2 inflation_radius

  • Defined in clober_navigation/config/global_costmap.yaml & clober_navigation/config/local_costmap.yaml

This parameter makes inflation area from the obstacle. Path would be planned in order that it don’t across this area. It is safe that to set this to be bigger than robot radius. For more information, please refer to the costmap_2d wiki.

default:

global_costmap.yaml: 

  inflation_radius: 0.3

local_costmap.yaml:

  inflation_radius: 0.15

4.3 cost_scaling_factor

  • Defined in clober_navigation/config/global_costmap.yaml & clober_navigation/config/local_costmap.yaml

This factor is multiplied by cost value. Because it is an reciprocal propotion, this parameter is increased, the cost is decreased.

The best path is for the robot to pass through a center of between obstacles. Set this factor to be smaller in order to far from obstacles. For more information, please refer to the costmap_2d wiki

default:

global_costmap.yaml: 

  inflation_radius: 3.0

local_costmap.yaml:

  inflation_radius: 1.5

4.4 base_global_planner

  • Defined in clober_navigation/config/move_base.yaml

This parameter allows you to select which global planner to use as a plugin for path planning

default:

    base_global_planner: navfn/NavfnROS

4.5 base_local_planner

  • Defined in clober_navigation/config/move_base.yaml

This parameter allows you to select which local planner to use as a plugin for path planning

default:

    base_local_planer: dwa_local_planner/DWAPlannerROS

4.6 max_vel_x

  • Defined in clober_navigation/config/dwa_local_planner.yaml

This factor is set the maximum value of translational velocity.

default:

    max_vel_x: 0.26

4.7 max_vel_x_backwards

  • Defined in clober_navigation/config/dwa_local_planner.yaml

Maximum absolute translational velocity of the robot while driving backwards in meters/sec.

See optimization parameter weight_kinematics_forward_drive

default:

    max_vel_x_backwards: -0.26

4.8 acc_lim_x

  • Defined in clober_navigation/config/dwa_local_planner.yaml

Maximum translational acceleration of the robot in meters/sec^2

default:

    acc_lim_x: 2.5

4.9 acc_lim_theta

  • Defined in clober_navigation/config/dwa_local_planner.yaml

Maximum angular acceleration of the robot in radians/sec^2

default:

    acc_lim_theta: 3.2

4.10 xy_goal_tolerance

  • Defined in clober_navigation/config/dwa_local_planner.yaml

Allowed final euclidean distance to the goal position in meters

default:

    xy_goal_tolerance: 0.05

4.11 yaw_goal_tolerance

  • Defined in clober_navigation/config/dwa_local_planner.yaml

Allowed final orientation error in radians

default:

    yaw_goal_tolerance: 0.17

CHANGELOG

Changelog for package clober_navigation

1.0.4 (2021-09-03)

  • add nav param
  • test nav
  • edit serial odom period
  • odom mode 0 check
  • Contributors: dev

1.0.3 (2021-08-11)

1.0.2 (2021-08-11)

  • add suntech map & nav configuration
  • Merge branch \'noetic-devel\' of https://github.com/CLOBOT-Co-Ltd/clober into noetic-devel
  • modify simulation packages for using rmf
  • Contributors: ClobotLucy, clobot-git, dev

1.0.1 (2021-07-12)

1.0.0 (2021-07-12)

  • Initial Clober package

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/navigation.launch
      • map_file [default: $(find clober_navigation)/maps/map.yaml]
      • open_rviz [default: true]
  • launch/amcl.launch
      • scan_topic [default: scan]
      • map_topic [default: map]
      • global_frame [default: map]
      • odom_frame [default: odom]
      • base_frame [default: base_link]
      • initial_pose_x [default: 0.0]
      • initial_pose_y [default: 0.0]
      • initial_pose_z [default: 0.0]
      • initial_pose_a [default: 0.0]
  • launch/move_base.launch

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged clober_navigation at Robotics Stack Exchange

No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.2.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/CLOBOT-Co-Ltd/clober.git
VCS Type git
VCS Version foxy-devel
Last Updated 2022-03-21
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

clober navigation packages

Additional Links

No additional links.

Maintainers

  • clobot-git

Authors

No additional authors.

Clober Navigation

1. Install Nav2 pakcage

sudo apt-get install ros-foxy-nav2*

2. Install Groot

2.1. Install BehaviorTree.CPP Package

original source : https://github.com/BehaviorTree/BehaviorTree.CPP

sudo apt-get install libzmq3-dev libboost-dev

2.2. Install Groot in ROS2

original source : https://github.com/BehaviorTree/Groot

mkdir -p groot_ws/src
cd groot_ws/src
git clone https://github.com/BehaviorTree/Groot.git
cd ..
colcon build --symlink-install

3. Run Clober (Simulation)

3.1. Launch Simulation World

export GAZEBO_MODEL_PATH=${GAZEBO_MODEL_PATH}:~/clober_ws/src/clober/clober_simulation/models

source /opt/ros/foxy/setup.bash
source ~/clober_ws/install/setup.bash
ros2 launch clober_simulation clober_world.launch.py

4. Launch Navigation

source /opt/ros/foxy/setup.bash
source ~/clober_ws/install/setup.bash
ros2 launch clober_navigation bringup.launch.py

4.1. Set Initialpose

Click "2D Pose Estimate", and set estimation to the approximate location of robot on the map.

4.2. Set Goal

Click "2D Goal Pose", and set goal to any free space on the map.

4.3. Waypoint Mode

To Start the Waypoint Mode, click "Waypoint mode" on the bottom left. Click "Navigation2 Goal", and set the waypoint goals to any free space on the map. Than, click "Start Navigation" on the bottom left.

5. Launch Groot

cd groot_ws/build/groot
./Groot

5.1. Start Monitor

Select "Monitor", and click "START". Click "Connect" on the left side of the Groot, than you can see the Behavior Tree!

6. Tuning Guide

6.1. Set Navigation2 Parameters

Navigation2 stack has many parameters to change the performances. If you want to improve the navigation's performances, tune the followed basic parameters in the /param/clober_params.yaml. You can get more information about Navigation2's parameters from Navigation2 Configuration Guide.

6.1.1. min_x_veloticy_threshold

  • This parameter sets the linear velocity to 0.0 if the odometry values below this threshold(m/s). #### 6.1.2. min_theta_velocity_threshold
  • This parameter sets the angular velocity to 0.0 if the odometry values below this threshold(rad/s). #### 6.1.3. min_vel_x
  • This parameter sets the minimum value of linear velocity(m/s). #### 6.1.4. max_vel_x
  • This parameter sets the maximum value of linear velocity(m/s). #### 6.1.5. max_vel_theta
  • This parameter sets the maximum value of angular velocity(rad/s). #### 6.1.6. acc_lim_x
  • This parameter sets the maximum value of linear acceleration(m/s^2). #### 6.1.7. acc_lim_theta
  • This parameter sets the maximum value of angular acceleration(rad/s^2). #### 6.1.8. sim_time
  • This parameter sets the time to simulate ahead by(s).
  • If this parameter is too low, it can't pass the narrow area, and too high, it can't rotate rapidly. #### 6.1.9. critics
  • List of critic plugins to use. These critic plugins decide the controller's behavior according to the each critic's parameters.
  • The information of these critics get from Navigation2 Configuration Guide - DWB Controller's Trajectory Critics #### 6.1.10. required_movement_radius
  • This parameter is used to check the navgation progress.
  • This parameter sets the minimum amount a robot must move to be progressing to goal(m). #### 6.1.11. movement_time_allowance
  • This parameter is used to check the navgation progress
  • This parameter set the maximum amount of time a robot has to move the minimum radius(s). #### 6.1.12. xy_goal_tolerance
  • This parameter is used to check the goal state.
  • This parameter sets the value of tolerance to meet goal completion criteria(m). #### 6.1.13. yaw_goal_tolerance
  • This parameter is used to check the goal state.
  • This parameter sets the value of tolerance to meet goal completion criteria(rad). #### 6.1.14. resolution
  • This parameter sets the resolution of 1 pixel of the costmap(m). #### 6.1.15. robot_radius
  • This parameter sets the robot's radius.
  • If this parameter is too smaller than the robot's radius, it occurs collision, and too larger, it occurs inefficient path planning. #### 6.1.16. inflation_radius
  • This parameter sets the radius to inflate costmap around lethal obstacles.
  • This parameter should be set larger than the robot_radius

6.2. Set Navigation2 Behavior Tree

Behavior Tree Navigator module implements the NavigateToPos task interface. This based the Behavior Tree and the Navigation2 provies the plugins for navigation. To make a BehaviorTree.xml file, you can customize the Navigator based on the BT. You can get more information about Navigation2's plugins for BT from Navigation2 Configuration Guide - Behavior Tree XML Nodes

CHANGELOG

Changelog for clober_navigation pacakage ^^^^^^^^^^^^^^^^^^^^^^^

0.1.0 (2021-06-18)

  • add initial clober_navigation pacakage

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged clober_navigation at Robotics Stack Exchange

No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.