Robotics StackExchange | Archived questions

Robot rotating non stop when running navigation stack

I am using Raspbeery Pi3B+ with ubuntu os to run ROS. Sick_tim571 LiDAR sensor the moving base is self-build moving robot with DC motors. The problem is when i trying to use the 2D Nav Goal, the robot will move around 50% of the path shown in rviz but it will start to rotate when its around halfway through the path.

When i run my launch file this error appears(SOLVED):

[ WARN] [1544687487.798549003]: MessageFilter [target=map LaserScan ]: Dropped 100.00% of messages so far. Please turn the [ros.costmap_2d.message_notifier] rosconsole logger to DEBUG for more information.

[ WARN] [1544687487.798549003]: MessageFilter [target=odom LaserScan ]: Dropped 100.00% of messages so far. Please turn the [ros.costmap_2d.message_notifier] rosconsole logger to DEBUG for more information.

My launch file is as the following:

<launch>

<include file="$(find sick_tim)/launch/sick_tim571_2050101.launch"/>

<include file="$(find laser_scan_matcher)/demo/demo.launch"/>

<include file="$(find amcl)/examples/amcl_.launch"/>

<include file="$(find move_base)/launch/move_base.launch"/>

<include file="$(find simple_drive)/launch/cmd_vel_mux.launch"/>
<include file="$(find simple_drive)/launch/simple_drive.launch"/>

<node pkg="rviz" type="rviz" name="rviz" args="$find(rviz)/default.rviz"/>

<node pkg="teleop_twist_keyboard" type="teleop_twist_keyboard.py" name="teleop" output="screen"/>

</launch>

So everything is working fine without the movebase, but when i trying to perform navigation by including movebase, the warning stated above appears. If I use the 2D Nav Goal function in rviz the path willl be drawn on the map, but the robot will not be moving and the error below will appear.(SOLVED)

[ WARN] [1544687754.149898641]: Control loop missed its desired rate of 20.0000Hz... the loop actually took 0.1006 seconds

My tf frame: World -> Map -> Odom -> Base_link -> Laser

When i rostopic echo scan:

---
header: 
  seq: 4199
  stamp: 
    secs: 1544687555
    nsecs: 162579592
  frame_id: "laser"
angle_min: -2.35619449615
angle_max: 2.35572338104
angle_increment: 0.00581718236208
time_increment: 6.17283949396e-05
scan_time: 0.0666666701436
range_min: 0.0500000007451
range_max: 25.0
ranges: [...]
intensities: [...]
---

When i change rqt_logger_level to Debug, this is what it shows(SOLVED):

[DEBUG] [1544689027.853988728]: MessageFilter [target=map LaserScan ]: Removed oldest message because buffer is full, count now 50 (frame_id=laser, stamp=1544689024.459589)
[DEBUG] [1544689027.854872894]: MessageFilter [target=map LaserScan ]: Added message in frame laser at time 1544689027.793, count now 50
[DEBUG] [1544689027.857701592]: MessageFilter [target=odom LaserScan ]: Removed oldest message because buffer is full, count now 50 (frame_id=laser, stamp=1544689024.459589)
[DEBUG] [1544689027.858688207]: MessageFilter [target=odom LaserScan ]: Added message in frame laser at time 1544689027.793, count now 50

Edit 1: I have change the sensor_frame in costmap_common_params.yaml from LaserScan to laser. The MessageFilter error does not exsit anymore, but the Control loop error still exist.

Edit 2: I have changed the controller_frequency' to 2Hz and it solved thecontrol loop` error.

Asked by rui on 2018-12-24 03:02:26 UTC

Comments

Answers

Check out this answer. You can also try changing (reducing) the controller_frequency parameter.

Asked by pavel92 on 2019-01-02 07:59:12 UTC

Comments

I have reduced the controller_frequency to 10Hz or 5Hz or 3Hz its still not working. The robot will just spin on the spot with the control loop error. My transform_tolerance is set to 1.0.

Asked by rui on 2019-01-07 22:21:40 UTC