Navigation stack and stage

classic Classic list List threaded Threaded
23 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Navigation stack and stage

Narasimhan
I have created a new tutorial regarding the use of stage with navigation stack Navigation stack and stage. Any feedback and questions are welcome.
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

nitinDhiman
I tried same tutorial on Cturtle. I got following error:


/ros-tutorials/ros_tutorials/awesomeros$ /opt/ros/cturtle/stacks/simulator_stage/stage/bin/stageros world/willow.world
 [Loading world/willow.world]
err: Loading pose. Need a vector of length 4: found 3.
 (/opt/ros/cturtle/stacks/simulator_stage/stage/build/Stage-3.2.2-Source/libstage/model.cc Load)


I donot have knowledge about Stage. Anyone tried it on Cturtle?
thanks
nitin
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

Narasimhan
Box turtle uses stage 3.0 but u have stage 3.2.2 . so maybe there is some minor syntax changes. try adding an extra parameter to pose in the .world file as the error suggests.
i tried pose [21 19 0] in the willow.world file and no error. i tried increasing the parameters to 4 like pose [21 19 90 0] and still no error(the robot was rotated by 90 degrees). infact i tried more than 5 parameters and less than 3 parameters but yet there were no error.
u can try out this tutorial and reply if it works SimulatingOneRobot
 
nitinDhiman wrote
I tried same tutorial on Cturtle. I got following error:


/ros-tutorials/ros_tutorials/awesomeros$ /opt/ros/cturtle/stacks/simulator_stage/stage/bin/stageros world/willow.world
 [Loading world/willow.world]
err: Loading pose. Need a vector of length 4: found 3.
 (/opt/ros/cturtle/stacks/simulator_stage/stage/build/Stage-3.2.2-Source/libstage/model.cc Load)


I donot have knowledge about Stage. Anyone tried it on Cturtle?
thanks
nitin
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

Raphael Favier
Dear Narasimhan,

Thanks for this tutorial, it is a very nice entry point for beginners like me.

I followed it brainlessly:
I think you forgot to add the creation of move_base.xml.
This triggered an error when running robot.launch (that includes move_base.xml)
I solved it by using the one from RobotSetup (http://www.ros.org/wiki/navigation/Tutorials/RobotSetup) and just modified the package name in it.

Also:
At section 5, you make the user kill both roscore and stage.
After that, at section 10, you make the user run rviz and announce that
Now our stage and navigation setup is ready. set goals in rviz and watch the robot move.
I know this is minor, but you did not say the user to actually launch robot.launch before that. So he might find himself with just rviz opened.

Finally:
Could you elaborate on section 10? (Problems and troubleshooting)
In particular Play with the params.yaml files to reduce the probability of such occurrences.
It would be nice to have a gross explanation on how to tune those parameters.
A bit like the guides you can find on how to tune mechanical controllers (you see this => do that).
i know they are explained in the navigation stack documentation, but a practical guide to navigation parameters would be very very very useful :)

Once again, thanks for this tutorial

Raphael
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

Narasimhan
Hey man i'm extremely sorry for the slips(just shows how amateurish i am). now i've added the move_base.xml to the tutorial. also i forgot to paste the command to launch. i have also added that. thanks for pointing them out. about the params, the links that i have suggested clearly explains what each one does. but beyond that i also don't know.
for example if u increase the inflation_radius(in costmap_common_params.yaml) you certainly reduce the probability of colliding with the obstacles. but u'r robot won't move between closely spaced obstacles. but what i said could be easily interpreted if u read the links. my knowledge is limited to what is said in those links.
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

Raphael Favier
I will dig deeper in the documentation you refer to then.

Glad I could help. :)
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

nitinDhiman
In reply to this post by Narasimhan
Thanks Narasimhan,
I tried stage tutorial http://www.ros.org/wiki/simulator_stage/Tutorials/SimulatingOneRobot.
But I am not getting any Laser data drawing on stage. Also Teleop is not working. No response to any key :(
No warning or error repoted on console.


nitin
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

Narasimhan
SimulatingOneRobot was written by the makers of ROS. so if it doesn't work then ur ROS is not installed properly or ur OS has conflict with ROS. i can't help u. wait for some experts to reply
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

nitinDhiman
I have been successful in installing Stage and teleop_base. Output for laser can be viewed when enabled in "View" menu option.

However, I am not able to make rviz working. It is compiled without any warning. On following instructions mentioned in http://www.ros.org/wiki/simulator_stage/Tutorials/SimulatingOneRobot,  I gets a Global status Warning: No tf data. Actual error, Fixed Frame[/odom] does not exist.
So I do not have any visualization outcome. Hope to resolve it soon as well :)

nitin
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

Narasimhan
try checking and unchecking tf in rviz(as suggested in my tutorial). that usually resolves such problems
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

nitinDhiman
Hi,
I am trying this tutorial on Boxturtle installed using deb packages on Debian Squeeze. I am having few errors:

 nitin@tangri:/tmp/ros_tutorial/awesomeros$ roslaunch awesomeros robot.launch
... logging to /home/nitin/.ros/log/8897cb0a-8bfc-11df-ac0c-00248119e15c/roslaunch-tangri-26243.log

Traceback (most recent call last):
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/__init__.py", line 198, in main
    p.start()
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/parent.py", line 217, in start
    self._start_infrastructure()
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/parent.py", line 180, in _start_infrastructure
    self._load_config()
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/parent.py", line 106, in _load_config
    self.config = roslaunch.config.load_config_default(self.roslaunch_files, self.port)
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/config.py", line 371, in load_config_default
    loader.load(f, config, verbose=verbose)
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py", line 662, in load
    self._load_launch(launch, ros_config, is_core=core, filename=filename, verbose=verbose)
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py", line 637, in _load_launch
    self._recurse_load(ros_config, launch.childNodes, self.root_context, None, is_core, verbose)
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py", line 610, in _recurse_load
    default_machine = self._include_tag(tag, context, ros_config, default_machine, is_core, verbose)
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py", line 564, in _include_tag
    default_machine, is_core, verbose)
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py", line 590, in _recurse_load
    n = self._node_tag(tag, context.child(''), ros_config, default_machine, verbose=verbose)
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py", line 357, in _node_tag
    self._rosparam_tag(t, param_ns, ros_config, verbose=verbose)
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py", line 198, in _rosparam_tag
    cmd, ns, file, param = self.opt_attrs(tag, context, (XmlLoader.ROSPARAM_OPT_ATTRS))
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py", line 165, in opt_attrs
    return [self.resolve_args(tag_value(tag,a), context) for a in attrs]
  File "/opt/ros/boxturtle/ros/tools/roslaunch/src/roslaunch/xmlloader.py", line 146, in resolve_args
    return roslib.substitution_args.resolve_args(args, context=context.resolve_dict, resolve_anon=self.resolve_anon)
  File "/opt/ros/boxturtle/ros/core/roslib/src/roslib/substitution_args.py", line 105, in resolve_args
    resolved = resolved[0:idx-len(arg)] + roslib.packages.get_pkg_dir(args[0]) + resolved[idx:]
  File "/opt/ros/boxturtle/ros/core/roslib/src/roslib/packages.py", line 213, in get_pkg_dir
    raise InvalidROSPkgException("Cannot locate installation of package %s: %s. ROS_ROOT[%s] ROS_PACKAGE_PATH[%s]"%(package, rperr.strip(), ros_root, ros_package_path))
InvalidROSPkgException: Cannot locate installation of package test2: [rospack] couldn't find package [test2]. ROS_ROOT[/opt/ros/boxturtle/ros] ROS_PACKAGE_PATH[/opt/ros/boxturtle/stacks:/tmp/ros_tutorial]

It is reporting non-availability of pkg test2. I just updated move_base.xml  to path of required files. On launching again, navfn_yaml is not found. Here is the output:

nitin@tangri:/tmp/ros_tutorial/awesomeros$ roslaunch awesomeros robot.launch
... logging to /home/nitin/.ros/log/8897cb0a-8bfc-11df-ac0c-00248119e15c/roslaunch-tangri-26262.log

error loading <rosparam> tag:
        file does not exist [navfn_params.yaml]
XML is <rosparam command="load" file="navfn_params.yaml"/>

Am I missing something?

Also about running this tutorial on Cturtle (installed for deb), has anyone updated world file for stage. I do not have knowledge about stage. I had tried augmenting pose values with extra argument is not helping. Result is a blank window!

Thanks
nitin

Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

nitinDhiman
Hi,

I got this example working (partialy) on Boxturtle installed using debs on Debian Squeeze, with use of following move_base.xml file:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
<launch>
  <master auto="start"/>

 

 

  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <rosparam file="$(find awesomeros)/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find awesomeros)/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find awesomeros)/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find awesomeros)/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find awesomeros)/base_local_planner_params.yaml" command="load" />
  </node>
</launch>

----------------------------------------------------------------------------------------------------------------------------------------------------------------
This is an adaptation from  http://www.ros.org/wiki/navigation/Tutorials/RobotSetup. I do not have understanding of all things here. Here are some of  the observations:

a. Map visible on rviz is not registered with same co-ordinates as in stage. Navigation goal given using rviz do not correspond to same location on stage map.
b. A list of continuous warnings which are:
  x. Control loop missed its desired update rate .........
  y.   [ WARN] 1819.600000000: Map update loop missed its desired rate of 5.0000Hz... the loop actually took 0.3000 seconds
 z. [ WARN] 1819.100000000: Costmap2DROS transform timeout. Current time: 1819.1000, global_pose stamp: 1818.7000, tolerance: 0.3000

c. Warning on launching stage - inflaction radius is less than inscribed and circumscribed radi of robot.
d. Origin of sensor is out of map bounds. So, the cost map cannot ray trace for it.
e. Sometimes in rviz::
     Static Map: No transform from [map] to [/odom]

One more peculiar observation is regarding cpu usages. When both stage and rviz are running cpu's load is around 60% but as rviz is killed, cpu load peaks to around 95%.

Are these observations normal??
I had still not been able to work it out on Cturtle.

regards
Nitin


Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

Narasimhan
i have updated the tutorial. actually i was working on the package called test2 and just copied the move_base.xml file without remembering that it contains reference to test2. i'm extremely sorry for the inconvenience. hopefully ur problems a and d would have been resolved now.  problem e i have already addressed it in troubleshooting part of the tutorial.
warnings that u have listed in b can be suppressed by decreasing the frequency in local_costmap_params.yaml file(i think its due to calculations involved and the pc is not able to update it ie the pc can't complete the calculations within the time specified).

the warning in c can be avoided by increasing the inflation radius costmap_common_params.yaml. refer costmap_2d if u don't know why the warning is displayed.

i hope ur problems are resolved.
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

Narasimhan
regarding the cpu usage. stage does consume lot of cpu. u might find this useful cpu usage.
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

nitinDhiman
Thanks Narasimhan,
I went through the steps again and got the following:

nitin@debian:/opt/ros/boxturtle/ros_tutorials$ roslaunch awesomeros robot.launch
... logging to /home/nitin/.ros/log/6063d75e-8ddd-11df-b52d-0022680fe838/roslaunch-debian-23983.log

error loading <rosparam> tag:
        file does not exist [/opt/ros/boxturtle/ros_tutorials/awesomeros/navfn_params.yaml]
XML is <rosparam command="load" file="$(find awesomeros)/navfn_params.yaml"/>


It is probably, tutorial do not instruct to create navfn_params.yaml file.  I am not aware about functionality this file enables but if I remove the following line:

 <rosparam file="$(find awesomeros)/navfn_params.yaml" command="load" />

from move_base.xml, example works very well.  Probably you can include some explanation on this as well.

I can visualized much better on my laptop than my desktop although both have identical setups, which ros proves are not! :)
Also stage cosuming cpu increases on my laptop as well. I will dig deeper into it.

Thanks
nitin
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

Narasimhan
i've added navfn_params.yaml to the tutorial. It just sets the tolerance for NavfnROS(yet to explore it myself). i think now the tutorial is complete( atleast without errors). thanks for helping out.
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

Eitan Marder-Eppstein
Narasimhan,

The "transform_tolerance" parameter actually applies only to Costmap2DROS objects (http://www.ros.org/wiki/costmap_2d#Coordinate_frame_and_tf_parameters) and not to NavfnROS. Much older versions of NavfnROS required the transform_tolerance parameter, which is probably how you ended up finding a navfn_params.yaml file, but the tutorial would be more correct if the navfn_params.yaml file was left out altogether or if it was used to set the "allow_unknown" parameter which is the only parameter read by NavfnROS - http://www.ros.org/wiki/navfn#Parameters. For now, I've changed the tutorial to set the "allow_unknown" parameter to its default value as it might be useful for people to see how they could set parameters on the NavfnROS object.

Hope all is well,

Eitan

On Mon, Jul 12, 2010 at 6:16 PM, Narasimhan <[hidden email]> wrote:

i've added navfn_params.yaml to the tutorial. It just sets the tolerance for
NavfnROS(yet to explore it myself). i think now the tutorial is complete(
atleast without errors). thanks for helping out.
--
View this message in context: http://ros-users.122217.n3.nabble.com/Navigation-stack-and-stage-tp939323p962002.html
Sent from the ROS-Users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
ros-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/ros-users
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users


_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

Narasimhan
k. thanks for editing. i didnt find transform_tolerance in navfn. thats why i was not sure why it was there. transform tolerance is also present in base_local_planner_params.yaml. As there is no such parameter in base_local_planner i guess it was also a part of the older version. So can i remove that also.
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

Eitan Marder-Eppstein
Narasimhan,

You're correct that the transform_tolerance parameter is also not used by the TrajectoryPlannerROS and can be removed from base_local_planner_params.yaml. I think that you've been pulling configuration files from the move_base_stage package which is out of date. For example configuration files that are up to date, you should look in the navigation_stage package off of which you've linked your tutorial. The package will only work for CTurtle because the world file format for stage has changed, but all of the navigation specific configuration files should be correct.

Hope this helps,

Eitan

On Tue, Jul 13, 2010 at 6:06 AM, Narasimhan <[hidden email]> wrote:

k. thanks for editing. i didnt find transform_tolerance in navfn. thats why i
was not sure why it was there. transform tolerance is also present in
base_local_planner_params.yaml. As there is no such parameter in
http://www.ros.org/wiki/base_local_planner base_local_planner  i guess it
was also a part of the older version. So can i remove that also.
--
View this message in context: http://ros-users.122217.n3.nabble.com/Navigation-stack-and-stage-tp939323p963304.html
Sent from the ROS-Users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
ros-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/ros-users
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users


_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: Navigation stack and stage

Narasimhan
Hi Eitan Marder-Eppstein it's an irony that though my tutorial comes under navigation_stage. i installed ros_pkg_tutorials in june and u created the pkg in july. so i didn't install it till now. Ur files are much more explanatory than the move_base_stage files. probably u can edit the tutorial. i won't be around for a few days/months. so u are free to edit the tutorial to keep it updated and also help others who post here for queries. thanks
12