Hi!
I have a tracked robot which I would like to turn into an autonomous one
I'm thinking about adding GPS waypoint navigation. The first step for that I think is going to be implementing navigation stack. I'm fairly new to ROS, so I would appreciate each and any suggestion on what to use and how to use it.
I have IMU and GPS connected to the robot, and willing to buy additional sensors as well, if needed
↧
How to run navigation stack on a tracked vehicle?
↧
Reach closer position to goal with obstacle in the middle
Hi everyone,
My problem is the following: I'm working in a project in which a robot has to perform several activities and while navigating it is possible that an object appears in the way. I want it to stop in front of the object and sometimes that happens if the global planner plans. But if the robot can see that the path is blocked from some distance the global planner doesn't even plan, which means that the robot doesn't move at all from a far distance, which is not what I want.
I tried to initialize a fake costmap so that I could plan without the observations of the lasers, but that didn't work out. Tried to configure local and local costmaps.
details:I'm using a front and rear hokuyo for localization and obstacle avoidance, move base, dwa and ros planner.
Any one has any idea how to solve this?
update:

In this image, the red circle is the goal I want to reach, the green arrow is pointing to my robot(bunch of TF's) and the blue arrow is pointing to my non-mapped object. Global costmaps in light grey, local costmaps in colors.
So, in this situation, if I give the goal to the robot it won't even plan because the goal is unreachable. What I want is to get as close to the object as possible. For example, I tried to plan and choose the first reachable position close to the object, but I can't even get a plan to the goal.
Thanks in advance.
↧
↧
hector_navigation on ROS Kinetic
Anyone was able to run hector_navigation on ROS Kinetic?
When I try to compile it I got an error that the costmap_2d package is not install, then I clone [ROS Navigation stack](https://github.com/ros-planning/navigation).
After that, I got the following error:
` CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find Bullet (missing: BULLET_DYNAMICS_LIBRARY
BULLET_COLLISION_LIBRARY BULLET_MATH_LIBRARY BULLET_SOFTBODY_LIBRARY
BULLET_INCLUDE_DIR) `
As far as I know bullets engine package has been deprecated and ROS navigation stack also has support for ROS Kinetic (version 1.14.2)
As you can see in the in the map_server package of the ROS Navigaton stack repository, it needs the bullet library ( https://github.com/ros-planning/navigation/blob/kinetic-devel/map_server/CMakeLists.txt)
How can I get the bullets package to overcome this issue?
↧
Pass known map to ROS navigation stack.
Hi there, I've been using the ros navigation stack with the turtlebot, but right now it's doing SLAM and constructing the map as it goes, is there a way to pass a known map to the map_server? Any tips or examples on how to do so?
↧
API call for determine new map position
Hi,
Other than using standard trig - is there an API call that give the data below say will return the new position to pass to the navigation stack if I command the robot to move 0.5 meters backwards:
position:
x: 1.95812040039
y: 1.32759493657
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.702802831861
w: 0.71138469166
Thanks
Mark
↧
↧
How to use two different navigation stack packages?
Hey guys,
I'm pretty new to ros and i need to implement a new navigation stack for one robot. I have three robots running in a simulation and for one robot i need a customized navigation stack, but for the other two robots i need the normal navigation stack.
I tried to get the navigation stack from github and rename it, but i recognized that i have to change every namespace (packages, cmake and even node names in the source code). This is really frustrating.
Does anyone know a better, cleaner way to do so? Or even has a fully renamed navigation stack package? :)
↧
Robot rotates around a point instead of navigating to Goal Position when using the navigation stack
Hello,
I have a custom robot with 2 wheels, a camera, and a laser rangefinder. I am trying to localize the robot using amcl.
I had everything set up. When rviz was launched I would define the initial 2D pose estimate and the used to define the 2d Nav Goal in RViz as well.
However, I implemented a basic node to publish to the topic so that I could have the robot move to the goal directly. When I run that node, RViz displays the correct path to the goal. But the robot starts moving forward and after a while (usually around the same spot) it starts to rotate around a single point for some reason.
I am not sure why that's the case. It works fine when I try to run it via RViz but not via the node. The code I am working with for the node -
#include
#include
#include
#include
typedef actionlib::SimpleActionClient MoveBaseClient;
int main(int argc, char** argv) {
ros::init(argc, argv, node_name);
// create the action client
// true causes the client to spin its own thread
MoveBaseClient ac("move_base", true);
// Wait 60 seconds for the action server to become available
ROS_INFO("Waiting for the move_base action server");
ac.waitForServer(ros::Duration(5));
ROS_INFO("Connected to move base server");
// Send a goal to move_base
move_base_msgs::MoveBaseGoal goal;
goal.target_pose.header.frame_id = "map";
goal.target_pose.header.stamp = ros::Time::now();
goal.target_pose.pose.position.x = 0.995;
goal.target_pose.pose.position.y = -2.996;
goal.target_pose.pose.orientation.w = 1;
ac.sendGoal(goal);
// Wait for the action to return
ac.waitForResult();
if (ac.getState() == actionlib::SimpleClientGoalState::SUCCEEDED)
ROS_INFO("You have reached the goal!");
else
ROS_INFO("The base failed for some reason");
return 0;
}
I run the above using `rosrun package_name node_name`
This is what it looks like right now. The robot started to rotate instead of following the green path.

↧
Issues with custom robot amcl in Rviz/Gazebo
Hello,
I am following a basic tutorial and I created my own robot in Gazebo and Rviz, and added laser and camera sensors to it. I then utilized a map from Clearpath to try and localize this robot using AMCL.
There are a few issues I am running across that I am unable to fix as of now.
1. The robot when I launch in RViz needs to be set to the "odom" fixed frame, however the map requires the "map" to function. If I select "odom" then the actual map in RViz shuffles about a point (jittery motion). If I select "map" then the robot seems to be jittering about. I am not entirely sure how to fix that. This doesn't happen in Gazebo so I am assuming this doesn't contribute to any errors. But any suggestions on what I am missing or understanding incorrectly?
2. As soon as I run the launch file for the amcl (which loads the map, and starts amcl node, and the move_base node with the config params), I load it up in RViz and then select "2D pose estimate" and point the arrow towards a particular path in the map from the robot. I am attaching an image below. The green circle is where the robot starts and the red arrow underneath is the "2D pose estimate I set". As you can see, as soon as I did that, the costmap depicts it as if the area is blocked off. I select the "2D Nav Goal" and set it as per the Red arrow you can see on the left side. Since as per the costmap the area in front of the robot is blocked, it decides to take the path opposite of it to try to reach the goal. I am trying to understand why this is happening and how to rectify it. Is it any specific parameter somewhere that I need to tweak or I am initializing something incorrectly?

3. After the robot decided to take the other route (much longer) I get the following result after a while (I am running this off of a virtual machine unfortunately so the robot movement is slow, can't speed that up somehow). I have marked areas similar to the image above to give an idea. The robot is now located here and is still trying to find its way around.
https://imgur.com/a/FhB61
And I get the following errors/warnings -
> [ERROR] [1510033498.355228432, 2137.605000000]: None of the points of the global plan were in the local costmap, global plan points too far from robot> [ WARN] [1510033498.369760487, 2137.609000000]: The origin for the sensor at (-0.49, -0.43) is out of map bounds. So, the costmap cannot raytrace for it.> [ WARN] [1510033500.647048940, 2138.619000000]: The origin for the sensor at (-0.49, -0.46) is out of map bounds. So, the costmap cannot raytrace for it.> [ WARN] [1510033507.102539142, 2141.625000000]: The origin for the sensor at (4.69, 0.95) is out of map bounds. So, the costmap cannot raytrace for it.> [ERROR] [1510033526.597402587, 2147.620000000]: None of the 279 first of 279 (279) points of the global plan were in the local costmap and free> [ERROR] [1510033526.597706226, 2147.620000000]: None of the points of the global plan were in the local costmap, global plan points too far from robot
And the actual position of the Robot in Gazebo doesn't match with the one shown in Rviz. The robot is still moving but the position is way off in RViz vs Gazebo.
https://imgur.com/a/X14Q3
I am trying to figure out **how to identify the problem here** and **how to go about fixing and improving it**. Would appreciate any help to learn this better. Thank you!
P.S. - There are several issues with this editor when I tried posting. Where can I report those? I couldn't upload all the images in one go. I couldn't add proper tags. I couldn't scroll in the text editor at all. Would like to report those.
↧
How to calculate localization error for a robot moving in a custom map using amcl and navigation stack?
I have a robot simulated in gazebo and rviz along with a map. I can use amcl to have it localized and move to a specific spot in the map.
But, how can I guage how accurate the localization is over the course of the robot's navigations? Is there a way to calculate that?
My robot has only camera and a laser rangefinder as sensors and nothing else. And when it reaches the goal it seems to be the exact position.
How do I figure out how well or poorly the localization did?
↧
↧
Robot rotates around a point instead of navigating to Goal Position when working with amcl
Hello,
I have a custom robot with 2 wheels, a camera, and a laser rangefinder. I am trying to localize the robot using amcl.
I had everything set up. When rviz was launched I would define the initial 2D pose estimate and the used to define the 2d Nav Goal in RViz as well.
However, I implemented a basic node to publish to the topic so that I could have the robot move to the goal directly. When I run that node, RViz displays the correct path to the goal. But the robot starts moving forward and after a while (usually around the same spot) it starts to rotate around a single point for some reason.
I am not sure why that's the case. It works fine when I try to run it via RViz but not via the node. The code I am working with for the node -
#include
#include
#include
#include
typedef actionlib::SimpleActionClient MoveBaseClient;
int main(int argc, char** argv) {
ros::init(argc, argv, node_name);
// create the action client
// true causes the client to spin its own thread
MoveBaseClient ac("move_base", true);
// Wait 60 seconds for the action server to become available
ROS_INFO("Waiting for the move_base action server");
ac.waitForServer(ros::Duration(5));
ROS_INFO("Connected to move base server");
// Send a goal to move_base
move_base_msgs::MoveBaseGoal goal;
goal.target_pose.header.frame_id = "map";
goal.target_pose.header.stamp = ros::Time::now();
goal.target_pose.pose.position.x = 0.995;
goal.target_pose.pose.position.y = -2.996;
goal.target_pose.pose.orientation.w = 1;
ac.sendGoal(goal);
// Wait for the action to return
ac.waitForResult();
if (ac.getState() == actionlib::SimpleClientGoalState::SUCCEEDED)
ROS_INFO("You have reached the goal!");
else
ROS_INFO("The base failed for some reason");
return 0;
}
I run the above using `rosrun package_name node_name`
This is what it looks like right now. The robot started to rotate instead of following the green path.

↧
When working with amcl why does the robot try to move closer to the wall in an open area rather than navigating more towards the goal?
For example, the following

The robot is closer to the wall instead of following the path to the goal (green line).
I have noticed that happen all the time. Why is that so? Is there a particular parameter that influences this? As soon as the robot gets close to the wall it gets better at navigating straight to the goal I think. Or is it something related to amcl algorithm(s)?
Here is the robot shortly after reaching close to wall and then moving towards the goal again.

What causes such a pattern/behavior?
**Update Based on Comment:**
Here are some of the config/params I am working with.
move_base node
costmap_common_params.yaml
map_type: costmap
origin_z: 0.0
z_resolution: 1
z_voxels: 2
obstacle_range: 2.5
raytrace_range: 3.0
publish_voxel_map: false
transform_tolerance: 0.5
meter_scoring: true
robot_radius: 0.3
inflation_radius: .6
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: hokuyo, data_type: LaserScan, topic: /robot/laser/scan, marking: true, clearing: true}
global_costmap_params.yaml
global_costmap:
global_frame: map
robot_base_frame: chassis
update_frequency: 10.0
publish_frequency: 5.0
width: 40.0
height: 40.0
resolution: 0.05
origin_x: -20.0
origin_y: -20.0
static_map: true
rolling_window: false
local_costmap_params.yaml
local_costmap:
global_frame: map
robot_base_frame: chassis
update_frequency: 10.0
publish_frequency: 5.0
width: 10.0
height: 10.0
resolution: 0.05
static_map: false
rolling_window: true
base_local_planner_params.yaml
TrajectoryPlannerROS:
max_vel_x: 0.5
min_vel_x: 0.1
max_vel_theta: 1.5
min_in_place_vel_theta: 0.314
acc_lim_theta: 20.0
acc_lim_x: 10.0
acc_lim_y: 5.0
holonomic_robot: false
↧
How to incorporate moveable sensor (Lidar) into navigation stack
I am building a robot which will move using ros navigation stack with move_base. I am using Lidar Lite 2 Laser Rangefinder to detect obstacles and for mapping as well. I have two questions regarding the use of this lidar.
1. Shall I use LaserScan (in obstacle_layer) or Range message data (in RangeSensorLayer) to put obstacles into the costmap. I am confused because generally Lidar is considered as a Laser sensor so it should be providing data in LaserScan format. But this specific lidar is providing range data.
2. I am using a motor to rotate this lidar to cover 180 degrees of scan area. How can I let my obstacle layer know the current position of lidar so that the obstacle point is inserted at the correct place in the costmap. In my robot's urdf, I can add this sensor at one frame and it will be fixed to that place according to the urdf. Is there any method to resolve this issue ?
↧
The simplest way to explore the environment to find a target and return to base
What is the simplest way to autonomously explore the environment in a room avoiding obstacles, find a target (based on vision) and return at the original starting position? Detecting the target using vision is not necessary part of the question but I included it to explain the overall scope of the project.
I have a working differential drive robot with a LIDAR sensor and a camera, so the question refers more to what is the best / simplest navigation stack I can use?
I am going thru Navigation Stack tutorials but there are many options and I was hoping to get some practical advice
Are there any good examples in python?
↧
↧
local path wont follow global path ROS
Hello everyone,
last week i managed to localize my robot in my self created map.
After localization im trying to use move base and the navigation stack.
At the moment my robot can compute a global map path but the local path
is very noisy and is not following the global path.
My setup:
4 Wheel drive robot
Im publishing /map with mapserver
im using laser_scan_matcher and amcl for map->odom->base_footprint->baselink->laser (rplidar)
In addition im trying to use an Imu. My Arduino programm publishes Imu/data_raw & with imu filter Imu/data
I took the Pose information from /amcl/pose topic and the linear_acceleration.x/y and angular.z from Imu and
publish them together to /odom topic.
So my /odom takes information from:
pose = amcl/pose
twist = Imu/data
With my described setup my local path is appearing and dissapearing over time and it isnt following my global path which is pretty fine.
Thank you!
↧
Implement obstacle avoidance methods and local navigation (move_base)
Hello,
I would like to implement obstacle avoidance methods in Turtlebot2 (Velocity obstacles, VFH+. APF,...).
And I do not know if I have to use pluginlib and do as D. Lu did. That is, implement the interface named nav_core::BaseLocalPlanner and do planning in computeVelocityCommands method [1].
Or maybe, it requires to do something else such as modifying costmap_2d [2], add PoseStamped ?
So, does somebody may advise me on what should I do first, since I am a beginner using ROS ?
[1] https://github.com/DLu/simple_local_planner
[2] http://wiki.ros.org/costmap_2d
↧
Roomba 400 navigation stack setup
Hello!
I'm using [create_autonomy](http://wiki.ros.org/create_autonomy) driver for my roomba 400 on kinetic, and I want to set up the navigation stack (especially move_base to send goals to the robot and navigate in rviz). The ca_driver running on Raspberry, the gmapping, map server on the PC.
I'm following the [navigation stack tutorial](http://wiki.ros.org/navigation/Tutorials/RobotSetup), and as described in it, first, I need to create a package with the following dependencies:
catkin_create_pkg my_robot_name_2dnav move_base my_tf_configuration_dep my_odom_configuration_dep my_sensor_configuration_dep
How should I need to fill up the dependencies on which device (RPI or PC) once the ca_driver itself publish a /tf and a /odom topic when I starting it with the following launch:
roslaunch ca_driver roomba_400.launch
Maybe if anyone successfully deployed the navigation stack, can send me a sample/example launch file or project?
↧
Roomba 400 AMCL launch file error
Hello!
I'm using room 400 with the create_autonomy driver. I set up the navigation stack, AMCL and so on, as described in the following launch file. I created a map and used with the map server, also run gslam as the tutorial described.
I created the package, witch containst the launc file with the following command:
catkin_create_pkg piros_2dnav move_base
When I tried to run the launch file (whitch based on the tutorials and turtlebot docs) I received the following console error message:
core service [/rosout] found
process[amcl-1]: started with pid [22888]
process[move_base-2]: started with pid [22889]
[ INFO] [1522842405.749090573]: Using plugin "static_layer"
[ INFO] [1522842405.763204034]: Requesting the map...
[ INFO] [1522842405.985357466]: Resizing costmap to 4000 X 4000 at 0.050000 m/pix
[ INFO] [1522842406.122298682]: Received a 4000 X 4000 map at 0.050000 m/pix
[ INFO] [1522842406.131703346]: Using plugin "obstacle_layer"
[ INFO] [1522842406.151662398]: Subscribed to Topics: laser_scan_sensor
[ INFO] [1522842406.224796288]: Using plugin "inflation_layer"
terminate called after throwing an instance of 'XmlRpc::XmlRpcException'
[move_base-2] process has died [pid 22889, exit code -6, cmd /opt/ros/kinetic/lib/move_base/move_base __name:=move_base __log:=/home/ezredes/.ros/log/6886f124-37ed-11e8-a09c-240a64281697/move_base-2.log].
log file: /home/ezredes/.ros/log/6886f124-37ed-11e8-a09c-240a64281697/move_base-2*.log
In the /home/ezredes/.ros/log/6886f124-37ed-11e8-a09c-240a64281697/ folder there aren't any log file with name move_base-2.log. What does this error actually means? Whats wrong with my launch file?

↧
↧
Setting up move_base / Navigation Stack
Hi,
I was following the [tutorial](http://wiki.ros.org/navigation/Tutorials/RobotSetup) to set up the Nav Stack on a robot, but at the end I got pretty bad results in Rviz. Somehow I got the scans to be accumulated on the screen, and the particles were not moving good.
I just mapped on wall of the room for performance and speed purposes. The particles got initialized well, but the center of the robot didn't.

When I moved around the scans got accumulated, not like the turtlebot_navigation tutorial.

This is something I would expect to have

What I might be doing wrong?
↧
Costmap2DROS transform timeout
hi ,
i'm trying to use the navigation stack on my own robot , it's seems that on rviz the amcl can't locate the robot and i get this warning :

here is my tf tree :

how can i fix this warning ?
↧
Dwb local planner
According to the D. Lu's [github page](https://github.com/locusrobotics/robot_navigation/tree/master/dwb_local_planner) and his [video conference](https://vimeo.com/236487972), Dwb local planner seems to be a good alternative to the standard navigation implementation.
Yet I wonder if anyone has tried it and if it is easier to use than the standard approach.
Currently, I am a little confused since M. Lu advises me to check the standard [navigation stack](http://wiki.ros.org/turtlebot_navigation)
https://answers.ros.org/question/286987/implement-obstacle-avoidance-methods-and-local-navigation-move_base/
↧