clober_navigation package from clober repoclober clober_bringup clober_description clober_navigation clober_serial clober_simulation clober_slam clober_teleop clober_tools |
|
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
Additional Links
Maintainers
- clobot-git
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
- 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.
-
Click
2D Pose Estimate
Button on the RVIZ menu -
Click on the map where clober is located and drag the green arrow toward the dirction the robot is facing.
-
Repeat step 1 and 2 to increase data precision.
-
Launch keyboard teleoperation to further increase precision.
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
-
Move the robot back and forth in order to narrow down the estimated location.
-
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 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
Package Dependencies
Deps | Name |
---|---|
roslint | |
catkin | |
amcl | |
move_base | |
costmap_2d | |
costmap_converter | |
base_local_planner | |
teb_local_planner | |
map_server |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
clober |
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
Services
Plugins
Recent questions tagged clober_navigation at Robotics Stack Exchange
clober_navigation package from clober repoclober_bringup clober_description clober_navigation clober_serial clober_simulation clober_slam |
|
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
Additional Links
Maintainers
- clobot-git
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 for clober_navigation pacakage \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^
0.1.0 (2021-06-18)
- add initial clober_navigation pacakage
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_lint_auto | |
ament_lint_common |