ros-planning / navigation_tutorials Goto Github PK
View Code? Open in Web Editor NEWTutorials about using the ROS Navigation stack.
Tutorials about using the ROS Navigation stack.
Hi,I have problem on running the roslaunch navigation_stage move_base_multi_robot.launch.
ros kinetic
the issuse is like this:
[ WARN] [1588174911.499353540, 5.100000000]: Timed out waiting for transform from robot_0/base_link to robot_0/map to become available before running costmap, tf error: canTransform: target_frame robot_0/map does not exist.. canTransform returned after 0.1 timeout was 0.1.
[ WARN] [1588174911.500381703, 5.100000000]: Timed out waiting for transform from robot_1/base_link to robot_1/map to become available before running costmap, tf error: canTransform: target_frame robot_1/map does not exist.. canTransform returned after 0.1 timeout was 0.1.
Hello, I want to know whether it can merge multi-robot's maps? Or just try to control different robots?
I'm pretty sure none of these build_depend
s are necessary:
Due to fixes on stage (stage_ros) coordinate systems, poses of map and robots in .world files are wrong, and is not possible to set a goal because laser frames appears out of map. I have been working with multi-robot example and these are the lines that I fixed in willow-pr2-multi.world file (uncommented lines are the corrected positions):
#pose [ -26.300 29.200 0 90.000 ]
pose [ 29.200 26.300 0 0 ]
...
#pr2( pose [ -21.670 47.120 0 28.166 ] name "pr2_0" color "blue")
#pr2( pose [ -21.670 48.120 0 28.166 ] name "pr2_1" color "green")
#block( pose [ -24.269 48.001 0 180.000 ] color "red")
pr2( pose [ 47.120 21.670 0 28.166 ] name "pr2_0" color "blue")
pr2( pose [ 48.120 21.670 0 28.166 ] name "pr2_1" color "green")
block( pose [ 48.001 24.269 0 180.000 ] color "red")
I suposse that all .world files need to be fixed.
Thanks.
O.S : Linux Ubuntu 22.04 LTS (x86)
ROS2 - Humble Hawksbill
Followed the Keep Out filter tutorial from
https://docs.nav2.org/tutorials/docs/navigation2_with_keepout_filter.html
and saw this error while launching
$ ros2 launch nav2_costmap_filters_demo costmap_filter_info.launch.py params_file:=`pwd`/src/navigation2_tutorials/nav2_costmap_filters_demo/params/keepout_params.yaml mask:=`pwd`/src/navigation2_tutorials/nav2_costmap_filters_demo/maps/keepout_mask.yaml use_composition:=True
[ERROR] [launch]: Caught exception in launch (see debug for traceback): Caught multiple exceptions when trying to load file of format [py]:
- ImportError: cannot import name 'NotEqualsSubstitution' from 'launch.substitutions' (/opt/ros/humble/lib/python3.10/site-packages/launch/substitutions/__init__.py)
- InvalidFrontendLaunchFileError: The launch file may have a syntax error, or its format is unknown
Made it work doing this changes to python launcher:
import os
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
from nav2_common.launch import RewrittenYaml
def generate_launch_description():
# Get the launch directory
costmap_filters_demo_dir = get_package_share_directory('mss_keepout_filter')
# Create our own temporary YAML files that include substitutions
lifecycle_nodes = ['filter_mask_server', 'costmap_filter_info_server']
# Parameters
namespace = LaunchConfiguration('namespace')
use_sim_time = LaunchConfiguration('use_sim_time')
autostart = LaunchConfiguration('autostart')
params_file = LaunchConfiguration('params_file')
mask_yaml_file = LaunchConfiguration('mask')
# Declare the launch arguments
declare_namespace_cmd = DeclareLaunchArgument(
'namespace',
default_value='',
description='Top-level namespace')
declare_use_sim_time_cmd = DeclareLaunchArgument(
'use_sim_time',
default_value='true',
description='Use simulation (Gazebo) clock if true')
declare_autostart_cmd = DeclareLaunchArgument(
'autostart', default_value='true',
description='Automatically startup the nav2 stack')
declare_params_file_cmd = DeclareLaunchArgument(
'params_file',
default_value=os.path.join(costmap_filters_demo_dir, 'params', 'keepout_params.yaml'),
description='Full path to the ROS 2 parameters file to use')
declare_mask_yaml_file_cmd = DeclareLaunchArgument(
'mask',
default_value=('/root/MecaluxFileSystem/Maps/Current/GeneralCostmap/ActiveKeepoutMap.yaml'),
description='Full path to filter mask yaml file to load')
# Make re-written yaml
param_substitutions = {
'use_sim_time': use_sim_time,
'yaml_filename': mask_yaml_file}
configured_params = RewrittenYaml(
source_file=params_file,
root_key=namespace,
param_rewrites=param_substitutions,
convert_types=True)
# Nodes launching commands
start_lifecycle_manager_cmd = Node(
package='nav2_lifecycle_manager',
executable='lifecycle_manager',
name='lifecycle_manager_costmap_filters',
namespace=namespace,
output='screen',
emulate_tty=True, # https://github.com/ros2/launch/issues/188
parameters=[{'use_sim_time': use_sim_time},
{'autostart': autostart},
{'node_names': lifecycle_nodes}])
start_map_server_cmd = Node(
package='nav2_map_server',
executable='map_server',
name='filter_mask_server',
namespace=namespace,
output='screen',
emulate_tty=True, # https://github.com/ros2/launch/issues/188
parameters=[configured_params])
start_costmap_filter_info_server_cmd = Node(
package='nav2_map_server',
executable='costmap_filter_info_server',
name='costmap_filter_info_server',
namespace=namespace,
output='screen',
emulate_tty=True, # https://github.com/ros2/launch/issues/188
parameters=[configured_params])
ld = LaunchDescription()
ld.add_action(declare_namespace_cmd)
ld.add_action(declare_use_sim_time_cmd)
ld.add_action(declare_autostart_cmd)
ld.add_action(declare_params_file_cmd)
ld.add_action(declare_mask_yaml_file_cmd)
ld.add_action(start_lifecycle_manager_cmd)
ld.add_action(start_map_server_cmd)
ld.add_action(start_costmap_filter_info_server_cmd)
return ld
last release was Jan 2012. My commits since then (just fixing world files) have not surfaced. So the launch files in navigation_stage are broken with the last release, but fixed on groovy-devel.
@hershwg: maybe this is for you?
When i launch the move_base_multi_robot launch fife, i receive this error
"The origin for the sensor at (9.74, 15.63, 0.15) is out of map bounds. So, the costmap cannot raytrace for it."
in groovy, one can
rosrun stage stageros
in hydro, that is
rosrun stage_ros stageros
This breaks launch files which use stage.
Files in https://github.com/ros-planning/navigation_tutorials/tree/groovy-devel/navigation_stage/launch need to be updated.
Originally reported here: ros-planning/navigation#101
When i try to run the launch file: move_base_fake_localization_2.5cm.launch, there are 2 issues:
The map is not synchronized such as follow:
I searched online that we should edit the origin of the map but I couldn't find out where to do so. Couldn't find a map.yaml file in the navigation repo too.
The stage window doesn't show up when I launch the file.
p/s: I'm using ROS kinetic and cloned the tutorial from indigo-devel.
Thanks.
Hello,
I am wondering, what does the following line mean in the simple navigation goals code?
goal.target_pose.pose.orientation = tf::createQuaternionMsgFromYaw(M_PI);
thank you,
Aaron
Dear navigation_tutorials friends,
As far as we know, the navigation stack requires a given goal in order to start a navigation. We were wondering if the stack allows robot automatically explore its surrounding and mapping. (such as greedy frontier exploration).
Since we are new on ros-planning/navigation pkgs, hope to hear your expertise on the issue.
Thanks,
-- Luke
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.