Useful/example launch files, URDF models, and Gazebo support

790 views
Skip to first unread message

Reed Hedges

unread,
Jul 14, 2015, 9:49:40 AM7/14/15
to ros-sig...@googlegroups.com

 

Hi everyone,

 

I’ve been doing a small amount of work to gather together in one place some example configuration and launch files useful with Pioneer and other AMR robots, and also have been trying to create some good base URDF models, mostly based on the great existing models. 

 

If you want to test what we have so far, see https://github.com/MobileRobots/amr-ros-config

 

One thing I was recently playing with is getting the URDF models to work in Gazebo.   I think the Pioneer 3 AT base model is pretty usable.  This model is based on the original p2os P3AT model with some changes incorporated as found on the web (e.g. from Dereck and others).

 

I have started P3DX and Pioneer LX models but those are not fully defined enough to use in Gazebo, though they can be used for visualization in rviz.

 

I’d like to have a decent Seekur Jr. mode at some point as well, and eventually the others too.

 

The robot models are in an amr_robots_description package in a description subdirectory (browse at https://github.com/MobileRobots/amr-ros-config/tree/master/description)

 

Some launch files useful when using Gazebo are in amr_robots_gazebo package (see https://github.com/MobileRobots/amr-ros-config/tree/master/gazebo to  browse).

 

Some other launch files and config files for rviz and rqt are in amr_robots_launchfiles (browse at https://github.com/MobileRobots/amr-ros-config/tree/master/launch)

 

I haven’t yet started building URDF models that combine these base robots with sensors or other accessories, that would be helpful to have.

 

If anyone would like to try out any of these please send feedback, or if you want to work on improving stuff relevant to your robot systems or work please do so, discuss here or use the github issue tracker or pull requests.

 

Let me know what you think or if you have any suggestions or comments,

 

Thanks

 

Reed

Tahir Mahmood

unread,
Aug 11, 2015, 3:42:58 AM8/11/15
to ros-sig-pioneer
Although my question is not relevant to your post but i am replying and also sorry if you are ........ I am new to ROS and currently trying to move P3AT in ROS. I have successfully spawn P3DX by a tutorial (http://wiki.lofarolabs.com/index.php/Moving_The_Pioneer_3-DX_In_Gazebo). Now I want to use its mover.py publishing topic cmd_vel to use for P3AT's Pioneer3AT/cmd_vel subscriber but don't know where to change file or how to write a file which do this job.
thanks in advance

Reed Hedges

unread,
Aug 11, 2015, 2:28:41 PM8/11/15
to ros-sig-pioneer
Hi Tahir,

Make sure you are running all of the components with no errors.

Once you have launched Gazebo and the control nodes using that launch file, check what topics are available. I noticed that mover.py sends commands to "cmd_vel" topic, so make sure that appears under exactly that name.

I have not tried out any of those launch files or code but its nice to see some roscontrol configuration for Gazebo available, that's nice. I don't know if Rafael is on this list, maybe he has more advice?

You can also find more general discussion about using Gazebo and controlling robots in it on the ROS and Gazebo "answers"/support websites.



Reed


--
Reed Hedges
Research Support and Software
Adept Technology Inc. - Mobile Robots
reed....@adept.com

http://www.mobilerobots.com - http://www.adept.com

For documentation and support, visit http://robots.mobilerobots.com
________________________________________
From: ros-sig...@googlegroups.com [ros-sig...@googlegroups.com] On Behalf Of Tahir Mahmood [tahi...@gmail.com]
Sent: Tuesday, August 11, 2015 3:42 AM
To: ros-sig-pioneer
Subject: [ros-sig-pioneer] Re: Useful/example launch files, URDF models, and Gazebo support
--
http://www.ros.org/wiki/sig/robots/Pioneer

Tahir Mahmood

unread,
Aug 12, 2015, 3:01:06 AM8/12/15
to ros-sig-pioneer
Dear Sir
Thanks for your help. I have studied how mover.py publishes geometry messages, but i don't know how to subscribe to these messages (by changing P3AT files) to move the robot
Message has been deleted
Message has been deleted

jugesh...@gmail.com

unread,
Dec 17, 2016, 11:51:37 AM12/17/16
to ros-sig-pioneer
Hi,

I installed the amr-ros-package and followed the instructions from this video (https://www.youtube.com/watch?v=Yp92L6mc58A). I get an error on launching any robot model. Please help.

>> roslaunch example-pioneer3at-terrainworld.launch

... logging to /home/jugesh/.ros/log/15f356f8-c478-11e6-9b61-0c8bfdc0e6e4/roslaunch-vine-4230.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

xacro: Traditional processing is deprecated. Switch to --inorder processing!
To check for compatibility of your document, use option --check-order.
For more infos, see http://wiki.ros.org/xacro#Processing_Order
xacro.py is deprecated; please use xacro instead
started roslaunch server http://vine:(URL removed)/

SUMMARY
========

PARAMETERS
* /robot_description: <?xml version="1....
* /rosdistro: kinetic
* /rosversion: 1.12.6
* /use_sim_time: True

NODES
/
gazebo (gazebo_ros/gzserver)
gazebo_gui (gazebo_ros/gzclient)
robot_state_publisher (robot_state_publisher/robot_state_publisher)
spawn_urdf (gazebo_ros/spawn_model)

auto-starting new master
process[master]: started with pid [4244]
ROS_MASTER_URI=http://localhost:(URL removed)

setting /run_id to 15f356f8-c478-11e6-9b61-0c8bfdc0e6e4
process[rosout-1]: started with pid [4257]
started core service [/rosout]
process[spawn_urdf-2]: started with pid [4266]
process[robot_state_publisher-3]: started with pid [4281]
process[gazebo-4]: started with pid [4283]
process[gazebo_gui-5]: started with pid [4290]
Gazebo multi-robot simulator, version 7.0.0
Copyright (C) 2012-2016 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

[ INFO] [1481993073.233291424]: Finished loading Gazebo ROS API Plugin.
[Msg] Waiting for master.
[ INFO] [1481993073.233867943]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[Msg] Connected to gazebo master @ http://(URL removed)
[Msg] Publicized address: (URL removed)
[ INFO] [1481993073.543633090, 0.022000000]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1481993073.571790030, 0.049000000]: Physics dynamic reconfigure ready.
[ WARN] [1481993073.757803900, 0.150000000]: GazeboRosSkidSteerDrive Plugin (ns = sim_p3at/) missing <covariance_x>, defaults to 0.000100
[ WARN] [1481993073.757846497, 0.150000000]: GazeboRosSkidSteerDrive Plugin (ns = sim_p3at/) missing <covariance_y>, defaults to 0.000100
[ WARN] [1481993073.757858121, 0.150000000]: GazeboRosSkidSteerDrive Plugin (ns = sim_p3at/) missing <covariance_yaw>, defaults to 0.010000
[ INFO] [1481993073.757897942, 0.150000000]: Starting GazeboRosSkidSteerDrive Plugin (ns = sim_p3at/)!
[spawn_urdf-2] process has finished cleanly
log file: /home/jugesh/.ros/log/15f356f8-c478-11e6-9b61-0c8bfdc0e6e4/spawn_urdf-2*.log
Error [Param.cc:451] Unable to set value [-nan -nan -nan] for key[size]
gzclient: /build/ogre-1.9-mqY1wq/ogre-1.9-1.9.0+dfsg1/OgreMain/src/OgreNode.cpp:630: virtual void Ogre::Node::setScale(const Ogre::Vector3&): Assertion `!inScale.isNaN() && "Invalid vector supplied as parameter"' failed.
Aborted (core dumped)
[gazebo_gui-5] process has died [pid 4290, exit code 134, cmd /opt/ros/kinetic/lib/gazebo_ros/gzclient __name:=gazebo_gui __log:=/home/jugesh/.ros/log/15f356f8-c478-11e6-9b61-0c8bfdc0e6e4/gazebo_gui-5.log].
log file: /home/jugesh/.ros/log/15f356f8-c478-11e6-9b61-0c8bfdc0e6e4/gazebo_gui-5*.log

r.om...@gmail.com

unread,
Jun 19, 2017, 7:38:20 AM6/19/17
to ros-sig-pioneer
Hello Reed,

Great work you are doing with the AMR robots.

I am using the models for the Pioneer 3AT from your repository and so far it works on gazebo.

However, I have found an issue that I can't seem to resolve. When launching the Pioneer 3AT in the gazebo simulation, the robot seems quite jumpy. It jumps even if it is not moving. It jumps even if it is upside-down. At first I thought that it was in my world definition. So I used the one you provide, the jumpy behavior persists.

Can you give me some pointers in how to find the reason of this?

BTW: I have also tried including the model from gazebo models (when inside gazebo gui) and that model does not jumps as the one in your repository.

This is the code I'm using for launching the Pioneer 3AT.


<launch>

<env name="GAZEBO_MODEL_PATH" value="$GAZEBO_MODEL_PATH:$(find amr_robots_gazebo)/models" />
<env name="GAZEBO_RESOURCE_PATH" value="$GAZEBO_RESOURCE_PATH:$(find amr_robots_gazebo)/models" />

<arg name="paused" default="false"/>
<arg name="use_sim_time" default="true"/>
<arg name="gui" default="true"/>
<arg name="headless" default="false"/>
<arg name="debug" default="false"/>
<arg name="verbose" default="true"/>
<arg name="world" default="$(find amr_robots_gazebo)/models/heightmaps/heightmap1.world" />
<arg name="urdf" default="$(find amr_robots_description)/urdf/pioneer3at.urdf" />

<param name="robot_description" command="$(find xacro)/xacro.py $(arg urdf)" />

<arg name="x" default="0"/>
<arg name="y" default="0"/>
<arg name="z" default="0.4"/>
<arg name="roll" default="0.012000"/>
<arg name="pitch" default="0.008080"/>
<arg name="yaw" default="-1.432684"/>

<node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model"
args="-param robot_description -urdf -model pioneer3at_robot
-x $(arg x) -y $(arg y) -z $(arg z)
-R $(arg roll) -P $(arg pitch) -Y $(arg yaw)" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />


<!-- set use_sim_time flag -->
<group if="$(arg use_sim_time)">
<param name="/use_sim_time" value="true" />
</group>

<!-- set command arguments -->
<arg unless="$(arg paused)" name="command_arg1" value=""/>
<arg if="$(arg paused)" name="command_arg1" value="-u"/>
<arg unless="$(arg headless)" name="command_arg2" value=""/>
<arg if="$(arg headless)" name="command_arg2" value="-r"/>
<arg unless="$(arg verbose)" name="command_arg3" value=""/>
<arg if="$(arg verbose)" name="command_arg3" value="--verbose"/>
<arg unless="$(arg debug)" name="script_type" value="gzserver"/>
<arg if="$(arg debug)" name="script_type" value="debug"/>

<!-- start gazebo server-->
<node name="gazebo" pkg="gazebo_ros" type="$(arg script_type)" respawn="false" output="screen"
args="$(arg command_arg1) $(arg command_arg2) $(arg command_arg3) $(arg world)" />

<!-- start gazebo client -->
<group if="$(arg gui)">
<node name="gazebo_gui" pkg="gazebo_ros" type="gzclient" respawn="false" output="screen"/>
</group>

</launch>


Thanks in advance.
Reply all
Reply to author
Forward
0 new messages