Quantcast
Channel: ROS Answers: Open Source Q&A Forum - RSS feed
Viewing all 667 articles
Browse latest View live

How to follow a nav_msgs/path ?

$
0
0
Hello, I am using this [package](https://github.com/open-rdc/fulanghua_navigation) to publish an astroid path. I would like my robot to be able to follow this published path, I was wondering if anyone have a clue about how to approach this problem? If I would like to redefine the path to something similar to a sine wave, how would I go about that? Thank you, Aaron

How to move two robots using move base without map?

$
0
0
This is related to [this](https://answers.ros.org/question/294240/robot-is-not-moving-to-goal/) question, but i want to know how should tf tree and move base files look like if i dont need to have map? Without map, my tf tree is unconnected so i have husky1/odom -> husky1/base_link/ -> ..., and other tree husky2/odom -> husky2/base_link -> ... When i try to publish this rostopic pub /husky2/move_base_simple/goal geometry_msgs/PoseStamped '{header: {stamp: now, frame_id: "/husky2_tf/odom"}, pose: {position: {x: 1.0, y: 0.0, z: 0.0}, orientation: {w: 1.0}}}' i dont know what frame_id should be. Whatever i put, the robot never goes to its goal, it starts moving but never stops.

Global planner with taking into account the robot footprint

$
0
0
Hello all, I was wondering if it exists a *global planner* which takes into account the robot's footprint and also can be an alternative to the [navfn global_planner](http://wiki.ros.org/global_planner)? Thanks a lot,

what is the best way to connect ackermann steering with rviz?

$
0
0
Hello, I am building my own car-like robot. For the driving motor controller, I am using the SDC2130 from Roboteq. I have found this package on github called [roboteq_diff_driver](https://github.com/ecostech/roboteq_diff_driver) which is able to control two motors in a differential drive setup (subscribes to cmd_Vel, publishes to odom and broadcasts odom tf). I am trying to expand on this to include ackermann steering. **My setup:** *Driving*: modify the roboteq_diff_driver package to only listen to the linear velocity so the robot is only either going forward or backward *Steering*: I am using an arduino to control some [linear actuators](https://s3.amazonaws.com/actuonix/Actuonix+P16+Datasheet.pdf) to steer the wheels. I can subscribe to cmd_vel (more specficially, the angular velocity part) with the arduino and then control the linear actuators to meet the desired angular velocity based on ackermann geometry. So although arduino is steering the wheels correctly based on cmd_vel, I dont know how to connect this with rviz since all rviz sees is the odom tf published from the package, which in this case, is only going forward and backward. This is problematic because I am not able to use the navigation stack properly. **My question:** How do I feed steering information back in to rviz (Base_link frame) so that it considers steering? Would using an IMU solve this problem? I was thinking, am I able to use an IMU to obtain the yaw data and then use this data instead of calculating the yaw based on differential drive kinematics as demonstrated by the package (see code below) and send this information to base_link? Can someone let me know if I am on the right track or if there are any alternative way to combine steering with rviz? Below is the part of the package that handles odom publishing: void MainNode::odom_publish() { // determine delta time in seconds uint32_t nowtime = millis(); float dt = (float)DELTAT(nowtime,odom_last_time) / 1000.0; odom_last_time = nowtime; #ifdef _ODOM_DEBUG /* ROS_DEBUG("right: "); ROS_DEBUG(odom_encoder_right); ROS_DEBUG(" left: "); ROS_DEBUG(odom_encoder_left); ROS_DEBUG(" dt: "); ROS_DEBUG(dt); ROS_DEBUG(""); */ #endif // determine deltas of distance and angle float linear = ((float)odom_encoder_right / (float)encoder_cpr * wheel_circumference + (float)odom_encoder_left / (float)encoder_cpr * wheel_circumference) / 2.0; // float angular = ((float)odom_encoder_right / (float)encoder_cpr * wheel_circumference - (float)odom_encoder_left / (float)encoder_cpr * wheel_circumference) / track_width * -1.0; float angular = ((float)odom_encoder_right / (float)encoder_cpr * wheel_circumference - (float)odom_encoder_left / (float)encoder_cpr * wheel_circumference) / track_width; #ifdef _ODOM_DEBUG /* ROS_DEBUG("linear: "); ROS_DEBUG(linear); ROS_DEBUG(" angular: "); ROS_DEBUG(angular); ROS_DEBUG(""); */ #endif // Update odometry odom_x += linear * cos(odom_yaw); // m odom_y += linear * sin(odom_yaw); // m odom_yaw = NORMALIZE(odom_yaw + angular); // rad #ifdef _ODOM_DEBUG //ROS_DEBUG_STREAM( "odom x: " << odom_x << " y: " << odom_y << " yaw: " << odom_yaw ); #endif // Calculate velocities float vx = (odom_x - odom_last_x) / dt; float vy = (odom_y - odom_last_y) / dt; float vyaw = (odom_yaw - odom_last_yaw) / dt; #ifdef _ODOM_DEBUG //ROS_DEBUG_STREAM( "velocity vx: " << odom_x << " vy: " << odom_y << " vyaw: " << odom_yaw ); #endif odom_last_x = odom_x; odom_last_y = odom_y; odom_last_yaw = odom_yaw; #ifdef _ODOM_DEBUG /* ROS_DEBUG("vx: "); ROS_DEBUG(vx); ROS_DEBUG(" vy: "); ROS_DEBUG(vy); ROS_DEBUG(" vyaw: "); ROS_DEBUG(vyaw); ROS_DEBUG(""); */ #endif geometry_msgs::Quaternion quat = tf::createQuaternionMsgFromYaw(odom_yaw); if ( pub_odom_tf ) { tf_msg.header.seq++; tf_msg.header.stamp = ros::Time::now(); tf_msg.transform.translation.x = odom_x; tf_msg.transform.translation.y = odom_y; tf_msg.transform.translation.z = 0.0; tf_msg.transform.rotation = quat; odom_broadcaster.sendTransform(tf_msg); } odom_msg.header.seq++; odom_msg.header.stamp = ros::Time::now(); odom_msg.pose.pose.position.x = odom_x; odom_msg.pose.pose.position.y = odom_y; odom_msg.pose.pose.position.z = 0.0; odom_msg.pose.pose.orientation = quat; odom_msg.twist.twist.linear.x = vx; odom_msg.twist.twist.linear.y = vy; odom_msg.twist.twist.linear.z = 0.0; odom_msg.twist.twist.angular.x = 0.0; odom_msg.twist.twist.angular.y = 0.0; odom_msg.twist.twist.angular.z = vyaw; odom_pub.publish(odom_msg); }

How to get a collision-free path in a known map with move_base?

$
0
0
Hi everyone, I would like to use the global planner only to compute a **collision-free path from pose A to pose B** for a rectangular robot from a .png map (To be precise, I mean a [nav_msgs/Path Message](http://docs.ros.org/kinetic/api/nav_msgs/html/msg/Path.html)). I ran a map server using: rosrun map_server map_server map.yml where `map.yml` is: image: 1st_Floor.png resolution: 0.1 origin: [0.0, 0.0, 0.0] occupied_thresh: 0.65 free_thresh: 0.196 negate: 0 I used the information on this page: [http://wiki.ros.org/map_server](http://wiki.ros.org/map_server). Now I would like map_server to publish on a `global_costmap`, as shown there: [http://wiki.ros.org/move_base](http://wiki.ros.org/move_base), which in turn should publish on a `global_planner`. I don't really understand how to initialize `costmap_2d` and `global_planner` and what other things I should do. Can anybody tell me what I am supposed to do? Basically, I would like to do something similar to what is shown on the [global_planner documentation page](http://wiki.ros.org/global_planner).

use move_base to drive car without map and obstacle avoidance

$
0
0
Hi I am building a MIT Racecar. At this moment, I just want to test drive the car with the "2D Nav Goal" from rviz. I do not need map, planner, or obstacle avoidance. I just want the car to drive to the goal no matter what. How can I do this with move_base? THanks

move_base doesn't subscribe to scan topic

$
0
0
Hi, I'm using a rosbot and I made a map with gmapping, now I want to run amcl and move_base for autonomus movement. My problem is that local costmap is empty because move_base doesn't subscribe to laser scan topic and it doesn't mark the obstacles. launch: costmap params: common params: obstacle_range: 2.5 raytrace_range: 3.0 footprint: [[0.15,0.15],[0.15,-0.15],[-0.15,-0.15],[-0.15,0.15]] inflation_radius: 0.4 map_topic: map resolution: 0.15 subscribe_to_updates: true transform_tolerance: 0.2 obsevation_sources: laser_scan_sensor laser_scan_sensor: {sensor_frame: laser_frame, data_type: LaserScan, topic: scan, clearing: true, marking: true} local_costmap: update_frecuency: 5.0 publish_frecuency: 1.0 static_map: false rolling_window: true width: 3.0 heigth: 3.0 global_frame: odom robot_base_frame: base_link global_costmap: update_frequency: 2.5 static_map: true rolling_window: false global_frame: map robot_base_frame: base_link TrajectoryPlannerROS: max_vel_theta: 0.5 acc_lim_theta: 0.25 holonomic_robot: false meter_scoring: true xy_goal_tolerance: 0.30 yaw_goal_tolerance: 0.25 controller_frequency: 10.0 global_frame_id: map sim_time: 2.0 sim_granularity: 0.05 occdist_scale: 0.04 pdist_scale: 0.3 publish_cost_grid_pc: true dwa: true I'm using ubuntu 16 and Ros Kinetic.

Can't launch/locate nodes - but nodes exist!

$
0
0
Hi all, I'm a ROS neophyte, trying to get my Neato Botvac D80 working with ROS Indigo, following Julian Tatsch's instructions ([part 1](http://www.tatsch.it/neato-botvac-80-wifi-mod/),[part 2](http://www.tatsch.it/use-the-neato-botvac-with-ros/)). Here's what I've done so far: - Gotten an RPi Zero W set up to behave like the Hame mini-router he references. I can telnet in on port 3000 and send serial commands to make the robot play sounds, etc. - Installed ROS Indigo in an Ubuntu 14.04 LTS VM running in VirtualBox - Followed Tatsch's instructions to install other required packages, with a few modifications (had to remove the version of ros-planning/navigation that he specified; fixes to correct missing ["bullet"](https://answers.ros.org/question/220676/how-to-install-bullet-on-indigo-in-ubuntu/) and ["sdl"](https://github.com/ros-planning/navigation/issues/579); cloning [openslam_gmapping](https://github.com/ros-perception/openslam_gmapping)) - Successfully running catkin_make with no errors after the above steps (hooray!) - Sourcing my catkin workspace to the ROS_PACKAGE_PATH. Initially, I did this with echo, but I've subsequently figured out how to do it the right way (source devel/setup.bash) I'm now trying to launch the neato ros_node. Things are mostly working - a bunch of nodes (including the Neato robot node) load successfully, Rviz pops up, etc. However, I get the following two errors: ERROR: cannot launch node of type [amcl/amcl]: can't locate node [amcl] in package [amcl] ERROR: cannot launch node of type [move_base/move_base]: can't locate node [move_base] in package [move_base] What's confusing to me is that I can find both of these packages (in the ROS core directories - /opt/ros/indigo/share, I think). In the case of amcl, I can actually launch the examples in the /examples directory. So the packages are clearly there! Anyway - I've done some looking around, and answers seem to be bimodally distributed between "source your workspace" and "super complicated answer to much more involved question". I'm guessing that I'm missing something simple - either about version compatibility, or about something in build parameters. If anyone can give me any guidance on what the troubleshooting steps should be for this, I'd appreciate it very much. Thanks!

Navigation problem "Cannot connect to move_base action server"

$
0
0
Hi, I'm trying to do remote 3D mapping and navigation using Raspberry Pi 3 and XBOX Kinect 360 camera on Pioneer robot. I use my laptop as a remote station for visualization and sending 2D nav from Rviz over WiFi. I am running Ubuntu 14.04 LTS 32-bit with ROS Kinetic. Navigation stack is run on RPi3. On laptop, when I give a 2D nav goal in Rviz I get the following error: [ INFO] [1533205073.090658850]: Connecting to move_base action server... [ERROR] [1533205078.090822743]: Cannot connect to move_base action server! [ INFO] [1533205078.091473582]: rtabmap (98): Rate=1.00s, Limit=0.700s, RTAB-Map=0.1182s, Maps update=0.0389s pub=5.0023s (local map=1, WM=1) [ INFO] [1533205078.447025404]: Publishing next goal: 1 -> xyz=0.767808,-0.870866,0.000000 rpy=0.000000,0.000000,-1.453314 I aslo noticed a following warning on the robot side (RPI): [WARN] [1533120036.753731825]: Timed out waiting for transform from base_link to map to become available before running costmap, tf error: Could not find a connection between 'map' and 'base_link' because they are not part of the same tree.Tf has two or more unconnected trees I disabled robot's wheel odometry, that is RosAria's TF odom broadcaster by commenting this [line](https://github.com/amor-ros-pkg/rosaria/blob/aa8d5f7faf4b2bc57bea2c597efee1b9a79953ea/RosAria.cpp#L567) and switched to using visual RTAB-Map [rgbd odometry](http://wiki.ros.org/rtabmap_ros#rgbd_odometry). Here are my roslaunch files: [robot](https://pastebin.com/jxhGGJ0B), [client](https://pastebin.com/Lp0fNw72), move base [params](https://pastebin.com/9L4YawQj) Here are [rqt_graph](https://imgur.com/FuSPyXd), [view_frames](https://imgur.com/31uESJR) In RViz, local costmap and global costmap can't be visualized. I did check that I'm subscribing to right topics, but still I get the warning "[No map received](https://imgur.com/c1SUZ7p)" Any suggestions? Thanks!

parameter explain from move_base

$
0
0
HI, can someone explain to me what it is oscillation_timeout parameter from move_base? I can't found info of it.

stuck robot problem

$
0
0
Hi, I'm running navigation stack with a rosbot, my problem is that when my robot is close to the obstacles, it stops. This is normal, but the recovery behaviours doesn't start, this is not normal. If I go to the robot, it detects me, the local costmap updates, and it comes move again. TrajectoryPlannerROS: acc_lim_x: 1.0 acc_lim_y: 1.0 acc_lim_theta: 0.6 max_vel_x: 0.35 max_vel_theta: 0.5 min_in_place_vel_theta: 0.3 escape_vel: -0.3 xy_goal_tolerance: 0.10 yaw_goal_tolerance: 0.25 path_distance_bias: 40.0 stop_time_buffer: 0.5 holonomic_robot: false meter_scoring: true sim_time: 2.0 global_frame_id: map controller_patience: 5.0 planner_frequency: 2.0 Common params.yaml obstacle_range: 2.5 raytrace_range: 3.0 footprint: [[0.10,0.12],[0.10,-0.12],[-0.10,-0.12],[-0.10,0.12]] inflation_radius: 0.4 resolution: 0.1 use_dijkstra: false observation_sources: laser_scan_sensor laser_scan_sensor: {sensor_frame: laser_frame, data_type: LaserScan, topic: scan, clearing: true, marking: true} local_costmap: update_frequency: 5.0 publish_frequency: 1.0 static_map: false rolling_window: true height: 5.0 width: 5.0 resolution: 0.1 global_frame: odom robot_base_frame: base_link publish_cost_grid: true Sometimes, after a long time stopped, it comes move again.

How to get costmap_2d to build on top of cartographer's /map?

$
0
0
I'd like to build a costmap on top of cartographer's map instead of say, gmaping, so I can run move_base on it for navigation. How do I go about doing this/

ros_android load plugins for move_base

$
0
0
concerning this tutorial: [android_ndk_pluginlib](http://wiki.ros.org/android_ndk/Tutorials/UsingPluginlib) i set up my android robot with ros_android and everything is working so far including amcl. But i cant get the plugins to work. The plugins i need are base_local_planner/TrajectoryPlannerROS costmap2d/inflationlayer obstacle layer and static_layer. Usually i would load them by setting the according Parameters in the XML and YAML files like this: - {name: static_layer, type: 'costmap_2d::StaticLayer'} - {name: obstacle_layer, type: 'costmap_2d::ObstacleLayer'} - {name: inflation_layer, type: 'costmap_2d::InflationLayer'} but with ros_android i dont have that option. To set the parameters i use: ParameterTree params = connectedNode.getParameterTree(); params.set("move_base_node/global_costmap/plugins/name/inflation_layer", "costmap_2d/StaticLayer"); which doesn't seem to work. In the android.mk file i have included LOCAL_WHOLE_STATIC_LIBRARIES := libcostmap_2d libbase_local_planner libglobal_planner any help would be very welcome.

I use move_base and explore_lite,but robot always stuck by the wall.

$
0
0
I want to use `explore_lite` and `move_base` to explore unknow area automaticly.But my robot always stuck by the wall in this condition.(I dont know how to insert a picture,so ...) (left is wall,and the slash is my robot,head down).it will go ahead first ,and go back .Again and again. | / | / | / | / | Can you help me? Thers is my params of move_base. common_param: obstacle_range: 3.0 raytrace_range: 3.0 footprint: [[0.22, -0.22], [0.22, 0.22],[-0.22,0.22],[-0.22,-0.22]] #robot_radius: ir_of_robot inflation_radius: 0.15 observation_sources: laser_scan_sensor laser_scan_sensor: {sensor_frame: laser, data_type: LaserScan, topic: scan, marking: true, clearing: true} local_map_param.yaml local_costmap: global_frame: /odom robot_base_frame: /base_footprint update_frequency: 1.0 publish_frequency: 2.0 static_map: false rolling_window: true width: 6.0 height: 6.0 resolution: 0.025 transform_tolerance: 0.5 global_map_param.yaml: global_costmap: global_frame: /map robot_base_frame: /base_footprint update_frequency: 1.0 publish_frequency: 0.5 static_map: true rolling_window: false map_type: costmap resolution: 0.025 map_type: costmap base_local_planner_param.yaml controller_frequency: 10.0 planner_frequency: 3.0 oscillation_timeout: 10.0 oscillation_distance: 0.3 TrajectoryPlannerROS: max_vel_x: 0.25 min_vel_x: 0.05 max_vel_y: 0.0 min_vel_y: 0.0 max_vel_theta: 1.5 min_vel_theta: 1 escape_vel: -0.1 acc_lim_x: 1 acc_lim_y: 0.0 acc_lim_theta: 2 holonomic_robot: false yaw_goal_tolerance: 0.2 xy_goal_tolerance: 0.15 sim_time: 2.0 oscillation_reset_dist: 0.1

How to make move_base more stable?

$
0
0
I'm using move_base with costmap_2d and gmapping to navigate a jackal robot. It's motion is somewhat erratic at times and it takes the long way round sometimes when rotating in place. What parameters can I modify to smoothen its trajectory?

How to add automated kill switch to robot?

$
0
0
My UGV sometimes behaves erratically when navigating autonomously with move_base. It will sometimes get caught in loops when performing turns to reach a nav goal, or it will completely lose it's pose and lose its pose wrt to the ground and think it's flipped in the air (as seen in rviz). When it is behaving erratically, it can even rush a wall and try to climb it until it tips over! I'd like to add a kill condition that will monitor its odometry, speed, and acceleration and send an interrupt to move_base to shut down when this happens. What's the best way of going about this?

Navigation stack not working properly when running remotelyHi

$
0
0
Hi comunity! When I execute "move_base" node in the local machine (the robot) I do not get any errors or warnings. But, when I run that node remotely (from my PC), after getting the message "odom received!", I get persistently the same warnings: [ WARN] [1534427628.512533003]: Costmap2DROS transform timeout. Current time: 1534427628.5125, global_pose stamp: 1534427628.2315, tolerance: 0.2000 Could not get robot pose, cancelling reconfiguration In both cases the configuration files used are the same. My PC and the robot clocks are synchronized using ntp. Any idea what can be happening? Would increasing the tolerance be a good idea for solving the problem? Thanks in advance. Pd.: The reason why I want to execute it remotely is because the CPU consumption of the robot is over 100% and I believe that is the reason why when setting a navigation goal it gets lost...And it says: "Control loop missed its desired rate of 10.0000hz navigation... the loop actually took X.XXX seconds". Amcl works fine, so I do not think localization is the problem.

Robot gets 'stuck' in object's costmap?

$
0
0
I'm navigating a jackal robot with the move_base stack, and am experiencing an issue where the robot will veer too close to the boundary of the costmap of an obstacle when executing curved trajectories, and gets stuck oscillating back and forth trying to escape once stuck. How can I avoid this behaviour? All my move_base parameters: TrajectoryPlannerROS: # Robot Configuration Parameters acc_lim_x: 2.0 acc_lim_theta: 1.0 max_vel_x: 0.2 min_vel_x: 0.08 max_vel_theta: 1.57 min_vel_theta: -1.57 min_in_place_vel_theta: 0.314 holonomic_robot: false escape_vel: -0.25 # Goal Tolerance Parameters yaw_goal_tolerance: 0.2 xy_goal_tolerance: 0.3 latch_xy_goal_tolerance: false # Forward Simulation Parameters sim_time: 6.5 sim_granularity: 0.03 angular_sim_granularity: 0.05 vx_samples: 10 vtheta_samples: 20 controller_frequency: 20.0 # Trajectory scoring parameters meter_scoring: true # Whether the gdist_scale and pdist_scale parameters should assume that goal_distance and path_distance are expressed in units of meters or cells. Cells are assumed by default (false). occdist_scale: 0.01 #The weighting for how much the controller should attempt to avoid obstacles. default 0.01 pdist_scale: 0.5 # The weighting for how much the controller should stay close to the path it was given . default 0.6 gdist_scale: 0.6 # The weighting for how much the controller should attempt to reach its local goal, also controls speed default 0.8 heading_lookahead: 0.5 #How far to look ahead in meters when scoring different in-place-rotation trajectories heading_scoring: false #Whether to score based on the robot's heading to the path or its distance from the path. default false heading_scoring_timestep: 0.8 #How far to look ahead in time in seconds along the simulated trajectory when using heading scoring (double, default: 0.8) dwa: true #Whether to use the Dynamic Window Approach (DWA)_ or whether to use Trajectory Rollout simple_attractor: false publish_cost_grid_pc: true #Oscillation Prevention Parameters oscillation_reset_dist: 0.05 #How far the robot must travel in meters before oscillation flags are reset (double, default: 0.05) escape_reset_dist: 0.2 escape_reset_theta: 0.2 map_type: costmap origin_z: 0.0 z_resolution: 1 z_voxels: 2 obstacle_range: 2.5 #2.5 raytrace_range: 3.0 publish_voxel_map: false transform_tolerance: 0.5 meter_scoring: true footprint: [[-0.21, -0.165], [-0.21, 0.165], [0.21, 0.165], [0.21, -0.165]] footprint_padding: 0.1 plugins: - {name: obstacles_layer, type: "costmap_2d::ObstacleLayer"} - {name: inflater_layer, type: "costmap_2d::InflationLayer"} obstacles_layer: observation_sources: scan scan: {sensor_frame: front_laser, data_type: LaserScan, topic: /scan, marking: true, clearing: true, min_obstacle_height: -2.0, max_obstacle_height: 2.0, obstacle_range: 2.5, raytrace_range: 3.0} inflater_layer: inflation_radius: 0.1 shutdown_costmaps: false controller_frequency: 10.0 controller_patience: 5.0 planner_frequency: 20.0 planner_patience: 5.0 oscillation_timeout: 5.0 oscillation_distance: 0.5 recovery_behavior_enabled: true clearing_rotation_allowed: true global_costmap: global_frame: map robot_base_frame: base_link update_frequency: 10.0 publish_frequency: 5.0 width: 40.0 height: 40.0 resolution: 0.02 origin_x: 0.0 origin_y: 0.0 static_map: true rolling_window: false plugins: - {name: static_layer, type: "costmap_2d::StaticLayer"} - {name: obstacles_layer, type: "costmap_2d::ObstacleLayer"} - {name: inflater_layer, type: "costmap_2d::InflationLayer"} local_costmap: global_frame: map robot_base_frame: base_link update_frequency: 10.0 publish_frequency: 5.0 width: 10.0 height: 10.0 resolution: 0.02 static_map: false rolling_window: true

move_base navigating robot to close to costmap?

$
0
0
I'm experiencing an issue where anytime move_base sets a trajectory for the robot to follow, it inevitably falls too close to an obstacle and ends up scraping against it, or gets stuck in an escape loop where it keeps backing out in order to avoid the obstacle but repeats the same trajectory instead of re-planning. How can I discourage this behaviour? move_base settings: TrajectoryPlannerROS: acc_lim_x: 2.0 acc_lim_theta: 1.0 max_vel_x: 0.18 min_vel_x: 0.05 max_vel_theta: 1.57 min_vel_theta: -1.57 min_in_place_vel_theta: 0.314 holonomic_robot: false escape_vel: -0.20 yaw_goal_tolerance: 0.3 xy_goal_tolerance: 0.35 latch_xy_goal_tolerance: false sim_time: 4.0 sim_granularity: 0.02 angular_sim_granularity: 0.03 vx_samples: 30 vtheta_samples: 30 controller_frequency: 20.0 meter_scoring: true occdist_scale: 0.1 pdist_scale: 0.4 gdist_scale: 0.6 heading_lookahead: 1.0 heading_scoring: false heading_scoring_timestep: 1.8 dwa: true simple_attractor: false publish_cost_grid_pc: true oscillation_reset_dist: 0.4 escape_reset_dist: 0.0 escape_reset_theta: 0.4 map_type: costmap origin_z: 0.0 z_resolution: 1 z_voxels: 2 obstacle_range: 5.5 #2.5 raytrace_range: 3.0 publish_voxel_map: false transform_tolerance: 0.5 meter_scoring: false footprint: [[-0.21, -0.165], [-0.21, 0.165], [0.21, 0.165], [0.21, -0.165]] footprint_padding: 0.045 plugins: - {name: obstacles_layer, type: "costmap_2d::ObstacleLayer"} - {name: inflater_layer, type: "costmap_2d::InflationLayer"} obstacles_layer: observation_sources: scan scan: {sensor_frame: front_laser, data_type: LaserScan, topic: /scan, marking: true, clearing: true, min_obstacle_height: -2.0, max_obstacle_height: 2.0, obstacle_range: 2.5, raytrace_range: 3.0} inflater_layer: inflation_radius: 0.06 shutdown_costmaps: false controller_frequency: 10.0 controller_patience: 5.0 planner_frequency: 20.0 planner_patience: 5.0 oscillation_timeout: 0.0 oscillation_distance: 0.5 recovery_behavior_enabled: true clearing_rotation_allowed: true global_costmap: global_frame: map robot_base_frame: base_link update_frequency: 10.0 publish_frequency: 5.0 width: 40.0 height: 40.0 resolution: 0.02 origin_x: 0.0 origin_y: 0.0 static_map: true rolling_window: false plugins: - {name: static_layer, type: "costmap_2d::StaticLayer"} - {name: obstacles_layer, type: "costmap_2d::ObstacleLayer"} - {name: inflater_layer, type: "costmap_2d::InflationLayer"} local_costmap: global_frame: map robot_base_frame: base_link update_frequency: 10.0 publish_frequency: 5.0 width: 10.0 height: 10.0 resolution: 0.02 static_map: false rolling_window: true

unexpected robot behaviour with navigationstack

$
0
0
Hello everybody, i have some problems again and hope someone can help me. Following scenario: - I have a robot platform, diff-drive with laser scanner mounted pointing forward - i have already recorded a map with slam (g-mapping i guess was the one i used in the end) - i have set up the navigation-stack with move_base like described [here](http://wiki.ros.org/navigation/Tutorials/RobotSetup) - i can see everything in rviz (map, cost map, base, laser scans) - i can set a goal in rviz and (most of the time) get a nice looking path I'm pretty sure the move_base package is quiet powerful, but now comes the weird thing: the robot doesn't follow the path at all. It seems like it is ignoring the path at all and trying to find a way to the goal of it's own with horrible results. Something like: - turning 180deg and driving in the opposite direction. Or, - instead of just passing straight through some obstacles in front of it, turn 270deg and than heading directly towards one of them. Or - ignoring the curve in the plan at the very beginning and just drive the first 1.5meters straight, than make the 90deg turn that has summed up in order to follow the rest of the path One idea i had is that this might be the escape sequences that the move_base-node provides. So i tried to switch them off. The base is still doing point turns and also driving backwards. So, before i start programming my own node that takes the path (list of stamped points) and calculate the velocity commands for x/theta, is anybody here experienced enough for being able to make a guess based on the "files" above what might cause this behavior? Thanks for everybody taking the time for reading this. ------------------------------------------------ Lets start with the shortened .launch file: And here are the .yaml files - unfortunately they are all separate in the tutorial and i don't know if i can mix them all together in one big file (especially since two of them are loaded with a name space tag): [costmap_common_params.yaml] map_type: costmap observation_sources: laser_scan transform_tolerance: 0.25 obstacle_range: 5.0 raytrace_range: 5.0 inflation_radius: 0.25 xy_goal_tolerance: 0.05 yaw_goal_tolerance: 0.25 footprint: [ [0.50, 0.35], [-0.30, 0.35], [-0.30, -0.35], [0.50, -0.35] ] laser_scan: { sensor_frame: laser_link, data_type: LaserScan, topic: /mp470/laser_scan, marking: true, clearing: true } [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: 4.0 height: 4.0 resolution: 0.1 [global_costmap_params.yaml] global_costmap: global_frame: /map robot_base_frame: base_link update_frequency: 5.0 publish_frequency: 2.0 static_map: true rolling_window: false [base_local_planner_params.yaml] TrajectoryPlannerROS: acc_lim_x: 0.1 acc_lim_theta: 0.25 max_vel_x: 0.1 min_vel_x: 0.1 max_vel_theta: 0.75 min_vel_theta: -0.75 min_in_place_vel_theta: 0.1 escape_vel: -0.05 holonomic_robot: false yaw_goal_tolerance: 0.2 xy_goal_tolerance: 0.3 latch_xy_goal_tolerance: false #pdist_scale: 11.0 have rad this on some other post but doesn't help at all #gdist_scale: 0.5 [move_base_params.yaml] controller_frequency: 10.0 planner_frequency: 0.5 recovery_behaviour_enabled: false recovery_behavior_enabled: false clearing_rotation_allowed: false
Viewing all 667 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>