Coder Social home page Coder Social logo

multiple_turtlebots_real_world's Introduction

Launching two turtlebots under namespaces with navigation stack [solved]

This repository contains the launch files to launch a (real-world) turtlebot under a namespace. (Which is a key step towards launching multiple turtlebots all sharing a single master. This part would also be added.) It is similar in spirit to this repository, where the same was done for the simulation in Stage simulator.

As a side note, running multiple turtlebots under the same master can (according to experiences of others) result in the performance issues. (The alternative solution would be that each TurtleBot runs its own master and that certain topics are shared using multimaster_fkie or something similar. (In this solution too it is good, though not necessary, to have robots under namespaces).

Many thanks for the help in setting this up and debugging to amiller27 and baeckermeister.

multiple_turtlebots_real_world's People

Contributors

amiller27 avatar ivan-gavran avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

multiple_turtlebots_real_world's Issues

Solved it ! Turtlebot with Laserscanner

Hi. I ran into the same Problem and after two day found a solution :)
First thing is, Frame_ids (generally) of the map from map_server must be "map" NOT "/map", because leading slash is removed by tf2. (see Migration guide, tf_prefix...).
In my Launch-files I did not use param tf_prefix at top-Level and I also did not use the Group tag with Namespace. Is set ROS_NAMESPACE in bashrc.
For Frame_ids I set it like this (example of amcl.launch)

<arg name="odom_frame_id"   default="$(env ROS_NAMESPACE)/odom"/>
<arg name="base_frame_id"   default="$(env ROS_NAMESPACE)/base_footprint"/>
<arg name="global_frame_id" default="map"/>

same in move_base:

<arg name="odom_frame_id"   default="$(env ROS_NAMESPACE)/odom"/>
<arg name="base_frame_id"   default="$(env ROS_NAMESPACE)/base_footprint"/>
<arg name="global_frame_id" default="map"/>
<arg name="odom_topic" default="odom" />
<arg name="laser_topic" default="scanInverted" />
<arg name="custom_param_file" default="$(find daniels)/param/dummy.yaml"/>

and in laserscan-Launch:

<node name="sick_tim571_2050101" pkg="sick_tim" type="sick_tim551_2050001" respawn="false">
   <param name="frame_id" type="str" value="$(env ROS_NAMESPACE)/laser" />
</node>
<node pkg="tf" type="static_transform_publisher" name="sick_tf" args="0 0 0 0 0 0 $(env ROS_NAMESPACE)/plate_top_link $(env ROS_NAMESPACE)/laser 100"/>

for Robot state Publisher

<node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher">
    <param name="publish_frequency" type="double" value="5.0" />
    <param name="tf_prefix" type="string" value="$(env ROS_NAMESPACE)"/>
  </node>

and for kobuki_node:

<node pkg="nodelet" type="nodelet" name="mobile_base" args="load kobuki_node/KobukiNodelet mobile_base_nodelet_manager">
    <rosparam file="$(find kobuki_node)/param/base.yaml" command="load"/>
    <param name="device_port" value="$(arg serialport)" />
    <param name="odom_frame" value="$(env ROS_NAMESPACE)/odom" />
    <param name="base_frame" value="$(env ROS_NAMESPACE)/base_footprint" />
    <remap from="mobile_base/odom" to="odom"/>

Update: Also check that there are no leading slashes in frame_ids in the move_base param-files

Did this help you ?

this is the tf-tree:

frames.pdf

I have the same problem!

Hi gergia,

I am also trying to figure out the same problem as you had about namespace for multi-turtlebots.

I followed your Solved it ! Turtlebot with Laserscanner post and modified my launch files based on baeckermeister solution. And now I have the same tf-tree as you had before, the tree has robot1/odom robot1/base_footprint and robot1/base_link all linked together but without map on the top.

Could you let me know how you solve this? I would very appreciate it.

Forgot to mention, I use Ubuntu14.04 and Indigo. My camera is astra.


Now there are two map topics among all my topics , /map and /robot1/map. /robot1/map has /robot1/map_server publisher but no subscriber. /map has /robot1/amcl subscriber but no publisher.


More specifically, how do you get robot1/amcl as broadcaster between map and robot1/odom?

Dead link in README

The link to the tf tree is dead.

Currently, the attempt to launch a single robot under namespace with amcl failed. The tf tree looks like this.

Question about using this with RVIZ.

With the code as it is are you able to use the RVIZ '2D pose estimate' button to initialize the AMCL?

Given that the AMCL is working within the Namespace robot_0. Do you have to send the initial pose message on /robot_0/initialpose or /initialpose?

Thanks,
Vikrant

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.