Stage for Fuerte on 12.04 only allows 1 ranger or 1 sonar not both and/or multiple sensors
I understand that there is a ROS stage limitation of support where a robot is only allowed to have "rangers with 1 sensor only." As referenced here. As well as a rename of the Laser to rangers type, as referenced here.
Then how do I create a robot model to the specifications of my physical robot which will be compatible with ROS Stage 4.1.1? See here for breakdown of S1R. I have a mix of sonar, IR, and laser rangefinder. Currently, I would have to strip it down and only have one sensor on it, and I certainly don't want to do that. The following world code is what I am working with:
include "S1R.inc"
include "hokuyo.inc"
S1R
(
# can refer to the robot by this name
name "r0"
pose [ 1.20 2.00 0 150 ]
hokuyolaser(
color "gray"
pose [0.04 0.00 -0.11 0]
)
alwayson 1
localization "gps"
localization_origin [ 0 0 0 0 ]
laser_return 0
)
window
(
size [ 800 800 ] # in pixels
scale 150.0
# pixels per meteri
center [ 1.7 1.8 ]
rotate [ 0 0 ]
view (
show_data 1
show_laser 1
show_laser_strikes 1
show_ranger 0
show_mines 1
)
)
###########################
# OBSTACLES
###########################
define obstacle model
(
name "unknown"
color "orange"
pose [0 0 0 0]
size [0 0 0]
gui_nose 0
gui_grid 0
gui_move 1
gui_outline 0
# insensible to collision and range sensors
obstacle_return 1
laser_return 1
ranger_return 1
)
obstacle(name "1" pose [1.71 0.02 0 90.0] size [0.04 3.34 0.25] color "brown")
obstacle(name "2" pose [1.71 3.7 0 90.0] size [0.04 3.34 0.25] color "brown")
obstacle(name "3" pose [0.02 1.86 0 0.0] size [0.04 3.72 0.25] color "brown")
obstacle(name "4" pose [3.4 1.86 0 0.0] size [0.04 3.72 0.25] color "brown")
#obstacle(name "5" pose [0.66 0.18 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "6" pose [0.66 0.5 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "7" pose [1.62 0.18 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "8" pose [1.62 0.5 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "9" pose [2.26 0.22 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "10" pose [2.26 0.5 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "11" pose [2.76 0.18 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "12" pose [0.82 0.66 0 90.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "13" pose [1.78 0.66 0 90.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "14" pose [3.24 0.66 0 90.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "15" pose [0.82 1.3 0 90.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "16" pose [1.46 1.3 0 90.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "17" pose [1.46 0.98 0 90.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "18" pose [1.46 1.62 0 90.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "19" pose [1.78 1.62 0 90.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "20" pose [2.42 0.98 0 90.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "21" pose [2.26 1.46 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "22" pose [2.9 1.46 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "23" pose [1.62 1.14 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "24" pose [0.98 1.14 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "25" pose [1.74 1.14 0 0.0] size [0.04 0.28 0.25] color "red")
obstacle(name "26" pose [0.5 0.34 0 90.0] size [0.04 0.36 0.25] color "gray49")
obstacle(name "27" pose [0.18 0.66 0 90.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "28" pose [1.16 0.34 0 90.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "29" pose [1.48 0.34 0 90.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "30" pose [1.44 0.66 0 90.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "31" pose [2.1 0.66 0 90.0] size [0.04 0.36 0.25] color "gray49")
obstacle(name "32" pose [2.94 0.66 0 90.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "33" pose [0.98 0.48 0 0.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "34" pose [0.98 0.82 0 0.0] size [0.04 0.36 0.25] color "gray49")
obstacle(name "35" pose [0.66 0.8 0 0.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "36" pose [0.66 1.14 0 0.0] size [0.04 0.36 0.25] color "gray49")
obstacle(name "37" pose [0.34 1.12 0 0.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "38" pose [0.34 1.44 0 0.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "39" pose [1.14 1.62 0 90.0] size [0.04 0.36 0.25] color "gray49")
obstacle(name "40" pose [0.8 1.62 0 90.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "41" pose [0.48 1.62 0 90.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "42" pose [2.1 1.62 0 90.0] size [0.04 0.36 0.25] color "gray49")
obstacle(name "43" pose [2.44 1.62 0 90.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "44" pose [2.76 1.62 0 90.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "45" pose [2.74 0.98 0 90.0] size [0.04 0.36 0.25] color "gray49")
obstacle(name "46" pose [2.9 1.16 0 0.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "47" pose [2.26 1.16 0 0.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "48" pose [2.26 0.84 0 0.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "49" pose [1.62 1.46 0 0.0] size [0.04 0.36 0.25] color "gray49")
obstacle(name "50" pose [1.62 0.82 0 0.0] size [0.04 0.36 0.25] color "gray49")
obstacle(name "51" pose [2.76 0.5 0 0.0] size [0.04 0.36 0.25] color "gray49")
obstacle(name "52" pose [1.12 1.3 0 90.0] size [0.04 0.32 0.25] color "gray49")
obstacle(name "53" pose [1.3 1.14 0 0.0] size [0.04 0.36 0.25] color "gray49")
obstacle(name "54" pose [2.26 0.06 0 0.0] size [0.04 0.04 0.25] color "gray49")
obstacle(name "55" pose [0.34 1.85 0 0.0] size [0.04 0.42 0.25] color "gray49")
#obstacle(name "56" pose [0.34 2.2 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "57" pose [0.34 2.48 0 0.0] size [0.04 0.28 0.25] color "red")
obstacle(name "58" pose [0.34 2.89 0 0.0] size [0.04 0.54 0.25] color "gray49")
#obstacle(name "59" pose [0.18 3.18 0 90.0] size [0.04 0.28 0.25] color "red")
obstacle(name "60" pose [1.71 3.18 0 90.0] size [0.04 2.78 0.25] color "gray49")
#obstacle(name "61" pose [3.24 3.18 0 90.0] size [0.04 0.28 0.25] color "red")
obstacle(name "62" pose [2.9 1.76 0 0.0] size [0.04 0.24 0.25] color "gray49")
#obstacle(name "63" pose [2.9 2.02 0 0.0] size [0.04 0.28 0.25] color "red")
obstacle(name "64" pose [2.9 2.52 0 0.0] size [0.04 0.72 0.25] color "gray49")
#obstacle(name "65" pose [2.9 3.02 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "66" pose [1.34 2.54 0 0.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "67" pose [1.48 2.28 0 45.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "68" pose [1.74 2.18 0 90.0] size [0.04 0.28 0.25] color "red")
#obstacle(name "69" pose [0.76 2.62 0 45.0] size [0.16 0.16 0.2] color "red")
#obstacle(name "70" pose [0.66 2.18 0 0.0] size [0.16 0.16 0.2] color "red")
#obstacle(name "71" pose [0.76 2.02 0 0.0] size [0.16 0.16 0.2] color "red")
#obstacle(name "72" pose [1.72 2.58 0 45.0] size [0.16 0.16 0.2] color "red")
#obstacle(name "73" pose [2.4 2.94 0 0.0] size [0.16 0.16 0.2] color "red")
#obstacle(name "74" pose [2.52 2.35 0 45.0] size [0.16 0.16 0.2] color "red")
#obstacle(name "75" pose [2.24 1.94 0 45.0] size [0.16 0.16 0.2] color "red")
#obstacle(name "76" pose [2.54 1.34 0 0.0] size [0.16 0.16 0.2] color "red")
obstacle(name "77" pose [0.28 3.59 0 0.0] size [0.08 0.18 0.13] color "brown")
obstacle(name "78" pose [0.54 3.59 0 0.0] size [0.08 0.18 0.13] color "brown")
obstacle(name "79" pose [0.8 3.59 0 0.0] size [0.08 0.18 0.13] color "brown")
obstacle(name "80" pose [1.06 3.59 0 0.0] size [0.08 0.18 0.13] color "brown")
obstacle(name "81" pose [1.32 3.59 0 0.0] size [0.08 0.18 0.13] color "brown")
obstacle(name "82" pose [1.58 3.59 0 0.0] size [0.08 0.18 0.13] color "brown")
obstacle(name "83" pose [1.84 3.59 0 0.0] size [0.08 0.18 0.13] color "brown")
obstacle(name "84" pose [2.1 3.59 0 0.0] size [0.08 0.18 0.13] color "brown")
obstacle(name "85" pose [2.36 3.59 0 0.0] size [0.08 0.18 0.13] color "brown")
obstacle(name "86" pose [2.62 3.59 0 0.0] size [0.08 0.18 0.13] color "brown")
obstacle(name "87" pose [2.88 3.59 0 0.0] size [0.08 0.18 0.13] color "brown")
obstacle(name "88" pose [3.14 3.59 0 0.0] size [0.08 0.18 0.13] color "brown")
obstacle(name "89" pose [0.05 3.59 0 0.0] size [0.02 0.18 0.13] color "brown")
obstacle(name "90" pose [3.37 3.59 0 0.0] size [0.02 0.18 0.13] color "brown")
Below is the S1R.inc file code, and the Hokuyo.inc used is the one that comes with the ROS Stage in /opt/ros/fuerte/stacks/stage/share/stage/worlds$
# Desc: definition file for SyRoTek S1R robot
# Author: Jan Chudoba
# Date: 2009-01-21
# Last update: 2009-01-22
define s1r_front_ir ranger (
alwayson 1
scount 2
spose[0] [ 0.078 0.0335 -0.1 0.03] # front left
spose[1] [ 0.078 -0.0335 0 0.03] # front right
sview [0.05 0.35 2] # [min max fov]
ssize [0.04 0.01]
)
define s1r_base_ir ranger (
alwayson 1
scount 3
spose[0] [ -0.020 0.063 90 0.07] # left
spose[1] [ -0.020 -0.063 -90 0.07] # right
spose[2] [ -0.078 0 180 ] # rear
sview [0.05 0.35 2] # [min max fov]
ssize [0.04 0.01]
)
define s1r_base_sonar ranger (
alwayson 1
scount 3
spose[0] [ -0.020 0.063 90 ] # left
spose[1] [ -0.020 -0.063 -90 ] # right
spose[2] [ -0.078 0 180 ] # rear
sview [0.05 5.0 50] # [min max fov]
ssize [0.04 0.01]
)
define s1r_frontsensor_ir ranger (
alwayson 1
scount 3
spose[0] [ 0.039 0.039 45 ] # left
spose[1] [ 0.055 0 0 ] # center
spose[2] [ 0.039 -0.039 -45 ] # rear
sview [0.05 0.35 2] # [min max fov]
ssize [0.04 0.01]
)
define s1r_frontsensor_sonar ranger (
alwayson 1
scount 3
spose[0] [ 0.039 0.039 45 ] # left
spose[1] [ 0.055 0 0 ] # center
spose[2] [ 0.039 -0.039 -45 ] # rear
sview [0.05 5.0 50] # [min max fov]
ssize [0.04 0.01]
)
define S1R position
(
# localization "odom"
# odom_error [0.0 0.01 0.0 0.01 0.0 0.01]
color "blue"
size [ 0.174 0.162 0.18]
origin [0 0 0 0]
# gui_nose 1
mass 2.0
# drive "diff"
block(
points 8
point[7] [ 0.087 0.045 ]
point[6] [ 0.087 -0.045 ]
point[5] [ 0.050 -0.081 ]
point[4] [-0.050 -0.081 ]
point[3] [-0.087 -0.045 ]
point[2] [-0.087 0.045 ]
point[1] [-0.050 0.081 ]
point[0] [ 0.050 0.081 ]
z [0 0.06]
)
block(
points 8
point[7] [ 0.075 0.030 ]
point[6] [ 0.075 -0.030 ]
point[5] [ 0.024 -0.059 ]
point[4] [-0.062 -0.059 ]
point[3] [-0.074 -0.050 ]
point[2] [-0.074 0.050 ]
point[1] [-0.062 0.059 ]
point[0] [ 0.024 0.059 ]
z [0.13 0.18]
)
# block(
# points 6
# point[5] [ 0.024 -0.059 ]
# point[4] [-0.062 -0.059 ]
# point[3] [-0.074 -0.050 ]
# point[2] [-0.074 0.050 ]
# point[1] [-0.062 0.059 ]
# point[0] [ 0.024 0.059 ]
# z [0.06 0.13]
# )
s1r_front_ir()
s1r_base_ir()
s1r_base_sonar()
s1r_frontsensor_ir()
s1r_frontsensor_sonar()
)
Asked by paresh471 on 2012-07-09 01:57:44 UTC
Comments