Skip to content

Commit 54fa731

Browse files
committed
update diffbot_description: add gpu arg for laser xacro macro (#27)
1 parent c04e633 commit 54fa731

File tree

3 files changed

+40
-26
lines changed

3 files changed

+40
-26
lines changed

diffbot_description/config/diffbot/sensors.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
gpu_laser:
1+
laser:
22
mass: 0.1 # Motor mass in Kg
33
radius: 0.015 # Wheel radius in m
44
length: 0.01 # Wheel length in m, considering is as a cylinder
@@ -9,4 +9,6 @@ gpu_laser:
99
dz: 0.04
1010
angular_range:
1111
min: -3.1415
12-
max: 3.1415
12+
max: 3.1415
13+
color: Gazebo/Grey
14+
enable_gpu: false

diffbot_description/urdf/diffbot.urdf.xacro

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@
6262
</xacro:motor>
6363

6464
<!-- Sensors -->
65-
<xacro:gpu_laser prefix="rplidar" parent_link="base_link"
65+
<xacro:laser prefix="rplidar" parent_link="base_link"
6666
sensor_prop="${sensor_prop}">
67-
</xacro:gpu_laser>
67+
</xacro:laser>
6868

6969
<!-- Gazebo -->
7070
<xacro:gazebo_ros_control robotNamespace="/diffbot">

diffbot_description/urdf/include/common_sensors.xacro

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,25 @@
11
<?xml version="1.0"?>
22
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
33

4-
<xacro:macro name="gpu_laser" params="prefix parent_link sensor_prop ">
4+
5+
<xacro:macro name="laser" params="prefix parent_link sensor_prop enable_gpu:=true">
56

67
<xacro:property name="mesh"
7-
value="${sensor_prop['gpu_laser']['mesh']}"/>
8+
value="${sensor_prop['laser']['mesh']}"/>
9+
10+
<xacro:if value="${enable_gpu}">
11+
<xacro:property name="plugin_name" value="libgazebo_ros_gpu_laser.so"/>
12+
<xacro:property name="laser_type" value="gpu_ray"/>
13+
</xacro:if>
14+
<xacro:if value="${not enable_gpu}">
15+
<xacro:property name="plugin_name" value="libgazebo_ros_laser.so"/>
16+
<xacro:property name="laser_type" value="ray"/>
17+
</xacro:if>
818

9-
<link name="${prefix}_gpu_laser_link">
19+
<link name="${prefix}_laser_link">
1020
<xacro:if value="${mesh != '' }" >
1121
<visual>
12-
<origin xyz="0 0 0" rpy="0 0 0"/>
22+
<origin xyz="0 0 0" rpy="0 0 ${pi}"/>
1323
<geometry>
1424
<mesh filename="package://${package_name}/meshes/sensors/${mesh}" />
1525
</geometry>
@@ -20,47 +30,48 @@
2030
<visual>
2131
<origin xyz="0 0 0" rpy="0 0 0"/>
2232
<geometry>
23-
<cylinder radius="${sensor_prop['gpu_laser']['radius']}" length="${sensor_prop['gpu_laser']['length']}"/>
33+
<cylinder radius="${sensor_prop['laser']['radius']}" length="${sensor_prop['laser']['length']}"/>
2434
</geometry>
2535
<material name="red"/>
2636
</visual>
2737
</xacro:if>
2838
<collision>
2939
<origin xyz="0 0 0" rpy="0 0 0"/>
3040
<geometry>
31-
<cylinder radius="${sensor_prop['gpu_laser']['radius']}" length="${sensor_prop['gpu_laser']['length']}"/>
41+
<cylinder radius="${sensor_prop['laser']['radius']}" length="${sensor_prop['laser']['length']}"/>
3242
</geometry>
3343
</collision>
34-
<xacro:cylinder_inertia m="${sensor_prop['gpu_laser']['mass']}"
35-
r="${sensor_prop['gpu_laser']['radius']}"
36-
l="${sensor_prop['gpu_laser']['length']}"
44+
<xacro:cylinder_inertia m="${sensor_prop['laser']['mass']}"
45+
r="${sensor_prop['laser']['radius']}"
46+
l="${sensor_prop['laser']['length']}"
3747
o_xyz="0 0 0"
3848
o_rpy="0 0 0" />
3949
</link>
4050
<gazebo reference="${prefix}_laser_link">
41-
<material>Gazebo/Grey</material>
51+
<material>${sensor_prop['laser']['color']}</material>
4252
</gazebo>
4353

44-
<joint name="${prefix}_gpu_laser_joint" type="fixed">
54+
<joint name="${prefix}_laser_joint" type="fixed">
4555
<parent link="${parent_link}"/>
46-
<child link="${prefix}_gpu_laser_link"/>
47-
<origin xyz="${sensor_prop['gpu_laser']['dx']} ${sensor_prop['gpu_laser']['dy']} ${sensor_prop['gpu_laser']['dz']}" rpy="0 0 0"/>
56+
<child link="${prefix}_laser_link"/>
57+
<origin xyz="${sensor_prop['laser']['dx']} ${sensor_prop['laser']['dy']} ${sensor_prop['laser']['dz']}" rpy="0 0 ${pi}"/>
4858
<axis xyz="0 1 0" />
4959
</joint>
5060

5161
<!-- hokuyo gazebo references -->
52-
<gazebo reference="${prefix}_gpu_laser_link">
53-
<sensor type="gpu_ray" name="head_hokuyo_sensor">
62+
<gazebo reference="${prefix}_laser_link">
63+
<!-- type is either gpu_laser or laser -->
64+
<sensor type="${laser_type}" name="head_hokuyo_sensor">
5465
<pose>0 0 0 0 0 0</pose>
5566
<visualize>true</visualize>
56-
<update_rate>40</update_rate>
67+
<update_rate>12</update_rate>
5768
<ray>
5869
<scan>
5970
<horizontal>
60-
<samples>720</samples>
71+
<samples>360</samples>
6172
<resolution>1</resolution>
62-
<min_angle>${sensor_prop['gpu_laser']['angular_range']['min']}</min_angle>
63-
<max_angle>${sensor_prop['gpu_laser']['angular_range']['max']}</max_angle>
73+
<min_angle>${sensor_prop['laser']['angular_range']['min']}</min_angle>
74+
<max_angle>${sensor_prop['laser']['angular_range']['max']}</max_angle>
6475
</horizontal>
6576
</scan>
6677
<range>
@@ -78,9 +89,10 @@
7889
<stddev>0.01</stddev>
7990
</noise>
8091
</ray>
81-
<plugin name="gazebo_ros_head_hokuyo_controller" filename="libgazebo_ros_gpu_laser.so">
82-
<topicName>/${robot_name}/scan</topicName>
83-
<frameName>${prefix}_gpu_laser_link</frameName>
92+
<!-- plugin_name is either libgazebo_ros_laser.so or libgazebo_ros_gpu_laser.so-->
93+
<plugin name="gazebo_ros_head_hokuyo_controller" filename="${plugin_name}">
94+
<topicName>/diffbot/scan</topicName>
95+
<frameName>${prefix}_laser_link</frameName>
8496
</plugin>
8597
</sensor>
8698
</gazebo>

0 commit comments

Comments
 (0)