Hi
Good morning everyone!!
I hope my question/query is not duplicated. If it is, I am really really sorry. I tried checking the answers similiar to my query but I couldn't find it. Any help would be highly appreciated.
I have a customized robot which I am trying to move it autonomously in my workshop. I am using amcl and move-base algorithm.
**The problem is when I am watching on rviz, its perfectly moving and planning path. But my customized robot is not even moving more than few centimeters.**
I am using:
(1) **ROS Kinetic**
(2) **Ubuntu 16.04 LTS on Jetson TX2**
(3) **RP Lidar A1**
(4) **Arduino UNO for sending motor command via STM32F0-Discorvery board (CAN bus) to RoboteQ motor controller**.
I am getting this warning messages
[ WARN] [1520556177.779801584]: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.5349 seconds
[ WARN] [1520556178.214556518]: Control loop missed its desired rate of 5.0000Hz... the loop actually took 0.5679 seconds
This is my cmd_vel plot:
https://www.dropbox.com/s/x67lhcx2qf97h2o/cmd_vel.png?dl=0
Here are my launch files and configuration files:
(1) navigate.launch
2) amcl.launch
3) move_base.launch
4) laser.launch
5) costmap_common_params.yaml
# Customized for ArloBot
max_obstacle_height: 0.60 # assume something like an arm is mounted on top of the robot
obstacle_range: 2.5
raytrace_range: 3.0
footprint: [[-0.45, -0.35], [-0.45, 0.35], [0.45,0.35], [0.45,-0.35]] # if the robot is not circular
inflation_radius: 0.50 # max. distance from an obstacle at which costs are incurred for planning paths.
cost_scaling_factor: 5 # exponential rate at which the obstacle cost drops off (default: 10)
# voxel map configuration; z-voxels 0 are filled by bumpers and 1 by laser scan (kinect)
map_type: voxel
origin_z: 0.0
z_resolution: 0.2
z_voxels: 2
publish_voxel_map: false
observation_sources: scan bump
#observation_sources: scan
# scan: {data_type: LaserScan, topic: scan, marking: true, clearing: true, min_obstacle_height: 0.25, max_obstacle_height: 0.35}
scan: {sensor_frame: laser, data_type: LaserScan, topic: /scan, marking: true, clearing: true, min_obstacle_height: 0.0, max_obstacle_height: 3}
# Can we just set up two of these here?
bump: {data_type: PointCloud2, topic: mobile_base/sensors/bumper_pointcloud, marking: true, clearing: false, min_obstacle_height: 0.0, max_obstacle_height: 0.15}
6) global_costmap_params.yaml
global_costmap:
global_frame: /map
robot_base_frame: /base_link
update_frequency: 1.0
publish_frequency: 0.5
static_map: true
transform_tolerance: 0.5
7) local_costmap_params.yaml
local_costmap:
global_frame: odom
robot_base_frame: /base_link
update_frequency: 5.0
publish_frequency: 2.0
static_map: false
rolling_window: true
width: 50.0
height: 50.0
resolution: 0.05
transform_tolerance: 0.5
plugins:
- {name: static_map, type: "costmap_2d::StaticLayer"}
- {name: obstacles, type: "costmap_2d::VoxelLayer"}
publish_frequency: 1.0
obstacles:
observation_sources: base_scan
base_scan: {data_type: LaserScan, sensor_frame: laser, clearing: true, marking: true, topic: /scan}
8) base_local_planner_params.yaml
TrajectoryPlannerROS:
# Robot Configuration Parameters
max_vel_x: 0.3
min_vel_x: 0.1
max_vel_theta: 1.0
min_vel_theta: -1.0
min_in_place_vel_theta: 0.6
acc_lim_x: 0.5
acc_lim_theta: 1.0
# Goal Tolerance Parameters
yaw_goal_tolerance: 0.3
xy_goal_tolerance: 0.5
# Forward Simulation Parameters
sim_time: 1.0
vx_samples: 15
vtheta_samples: 20
# Trajectory Scoring Parameters
meter_scoring: true
pdist_scale: 0.0
gdist_scale: 0.8
occdist_scale: 0.01
heading_lookahead: 0.325
dwa: true
# Oscillation Prevention Parameters
oscillation_reset_dist: 0.05
# Differential-drive robot configuration
holonomic_robot: false
max_vel_y: 0.5
min_vel_y: 0.0
acc_lim_y: 0.0
vy_samples: 1
9) dwa_local_planner_params.yaml
DWAPlannerROS:
# Robot Configuration Parameters - Kobuki
max_vel_x: 0.5 # 0.55
min_vel_x: 0.0
max_vel_y: 0.5 # diff drive robot
min_vel_y: 0.0 # diff drive robot
max_trans_vel: 0.5 # choose slightly less than the base's capability
min_trans_vel: 0.1 # this is the min trans velocity when there is negligible rotational velocity
trans_stopped_vel: 0.1
# Warning!
# do not set min_trans_vel to 0.0 otherwise dwa will always think translational velocities
# are non-negligible and small in place rotational velocities will be created.
max_rot_vel: 5.0 # choose slightly less than the base's capability
min_rot_vel: 0.4 # this is the min angular velocity when there is negligible translational velocity
rot_stopped_vel: 0.4
acc_lim_x: 1.0 # maximum is theoretically 2.0, but we
acc_lim_theta: 2.0
acc_lim_y: 0.0 # diff drive robot
# Goal Tolerance Parameters
yaw_goal_tolerance: 0.3 # 0.05
xy_goal_tolerance: 0.15 # 0.10
# latch_xy_goal_tolerance: false
# Forward Simulation Parameters
sim_time: 1.0 # 1.7
vx_samples: 15 # 3
vy_samples: 1 # diff drive robot, there is only one sample
vtheta_samples: 20 # 20
# Trajectory Scoring Parameters
path_distance_bias: 32.0 # 32.0 - weighting for how much it should stick to the global path plan
goal_distance_bias: 10.0 # 24.0 - wighting for how much it should attempt to reach its goal
occdist_scale: 0.01 # 0.01 - weighting for how much the controller should avoid obstacles
forward_point_distance: 0.325 # 0.325 - how far along to place an additional scoring point
stop_time_buffer: 0.2 # 0.2 - amount of time a robot must stop in before colliding for a valid traj.
scaling_speed: 0.25 # 0.25 - absolute velocity at which to start scaling the robot's footprint
max_scaling_factor: 0.2 # 0.2 - how much to scale the robot's footprint when at speed.
# Oscillation Prevention Parameters
oscillation_reset_dist: 0.05 # 0.05 - how far to travel before resetting oscillation flags
# Debugging
publish_traj_pc : true
publish_cost_grid_pc: true
global_frame_id: odom
# Differential-drive robot configuration - necessary?
# holonomic_robot: false
10) move_base_params.yaml
# Move base node parameters. For full documentation of the parameters in this file, please see
#
# http://www.ros.org/wiki/move_base
#
shutdown_costmaps: false
controller_frequency: 5.0
controller_patience: 3.0
planner_frequency: 1.0
planner_patience: 5.0
oscillation_timeout: 10.0
oscillation_distance: 0.2
# local planner - default is trajectory rollout
base_local_planner: "dwa_local_planner/DWAPlannerROS"
↧