Running move_base with DWA_local_planner
Hi everyone, I would like to use the navigation stack on a differential drive wheelchair to perform local path planning. Up to now I have odometry from the chair as well as a local cost map coming from sensor data. After some research, I have decided that the 'Dynamic window approach' would be ideal for my application but i cannot seem to get movebase to use DWAlocalplanner as its planning algorithm, actual, i cannot get movebase working at all. I run it within a launch file as below:
<launch>
<master auto="start"/>
<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
<param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" />
<rosparam file="$(find wheelchair_nav)/launch/costmap_common_params.yaml" command="load" ns="global_costmap" />
<rosparam file="$(find wheelchair_nav)/launch/costmap_common_params.yaml" command="load" ns="local_costmap" />
<rosparam file="$(find wheelchair_nav)/launch/local_costmap_params.yaml" command="load" />
<rosparam file="$(find wheelchair_nav)/launch/global_costmap_params.yaml" command="load" />
<rosparam file="$(find wheelchair_nav)/launch/base_local_planner_params.yaml" command="load" />
</node>
</launch>
But the terminal keeps outputting this error:
process[move_base-2]: started with pid [5257]
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
what(): boost: mutex lock failed in pthread_mutex_lock: Invalid argument
[move_base-2] process has died [pid 5257, exit code -6, cmd /opt/ros/indigo/lib/move_base/move_base __name:=move_base __log:=/home/rocky/.ros/log/fac44b2a-6d80-11e5-8d64-d30c77a21d38/move_base-2.log].
log file: /home/rocky/.ros/log/fac44b2a-6d80-11e5-8d64-d30c77a21d38/move_base-2*.log
I am not sure what is causing this error, could anyone please help? Thanks,
Thibault
Asked by Thibault_Rouillard on 2015-10-08 02:04:40 UTC
Answers
Try to set your local planner to DWA from your base_local_planner_params.yaml. So the following line in your move_base.launch should be removed:
<param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" />
instead in your base_local_planner_params.yaml put the following:
dwa: true
Although navigation stack by default uses dynamic window approach meaning that the value for dwa parameter is true if it is not set by user. For more info please take a look at base_local_planner documentation: http://wiki.ros.org/base_local_planner?distro=indigo
hope it helps
Asked by mohsen1989m on 2015-10-19 09:28:20 UTC
Comments
Thank you very, much. It worked.
Asked by Thibault_Rouillard on 2015-10-29 04:14:22 UTC
Comments
Are you compiling any parts of navigation yourself?
Asked by David Lu on 2015-10-08 18:15:41 UTC
No, i am not. With reference to the schematic in http://wiki.ros.org/navigation/Tutorials/RobotSetup. I am only running move_base with the parameters i require as shown in the launch file above.
Asked by Thibault_Rouillard on 2015-10-09 01:50:49 UTC