add apm
This commit is contained in:
133
Controllers/Packages/cititruck_description/CHANGELOG.rst
Executable file
133
Controllers/Packages/cititruck_description/CHANGELOG.rst
Executable file
@@ -0,0 +1,133 @@
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Changelog for package cititruck_description
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
1.1.7 (2023-01-20)
|
||||
------------------
|
||||
* Don't set cmake_policy CMP0048
|
||||
* Contributors: Martin Günther
|
||||
|
||||
1.1.6 (2022-06-02)
|
||||
------------------
|
||||
* URDF: Downsize inertia box, move to lower back
|
||||
* URDF: Pull out inertia properties
|
||||
* URDF: Update masses according to data sheet
|
||||
* URDF: Add mir_250
|
||||
* Add arg mir_type to launch files and urdfs
|
||||
* Add mir_250 meshes
|
||||
* URDF: Make wheels black
|
||||
* Add mir_100_v1.urdf.xacro for backwards compatibility
|
||||
* Rename mir_100 -> mir
|
||||
* Refactor URDF to prepare for MiR250 support
|
||||
* Gazebo: Don't manually specify wheel params for diffdrive controller
|
||||
* Simplify mir_100 collision mesh further
|
||||
* Contributors: Martin Günther
|
||||
|
||||
1.1.5 (2022-02-11)
|
||||
------------------
|
||||
* Remove xacro comment to work around xacro bug
|
||||
Since xacro 1.14.11, xacro now also evaluates expressions in comments
|
||||
and throws an error if the substition argument is undefined. In xacro
|
||||
1.14.12, this error was changed to a warning.
|
||||
This commit removes that warning.
|
||||
Workaround for https://github.com/ros/xacro/issues/309 .
|
||||
* xacro: drop --inorder option
|
||||
In-order processing became default in ROS Melodic.
|
||||
* Add gazebo_plugins to dependency list (`#103 <https://github.com/DFKI-NI/mir_robot/issues/103>`_)
|
||||
This is needed for the ground truth pose via p3d plugin.
|
||||
* Contributors: Martin Günther, moooeeeep
|
||||
|
||||
1.1.4 (2021-12-10)
|
||||
------------------
|
||||
* Replace gazebo_plugins IMU with hector_gazebo_plugins
|
||||
* Use cylinders instead of STLs for wheel collision geometries
|
||||
Fixes `#99 <https://github.com/DFKI-NI/mir_robot/issues/99>`_.
|
||||
* mir_debug_urdf.launch: Fix GUI display
|
||||
* Contributors: Martin Günther
|
||||
|
||||
1.1.3 (2021-06-11)
|
||||
------------------
|
||||
* Merge branch 'melodic-2.8' into noetic
|
||||
* Rename tf frame and topic 'odom_comb' -> 'odom'
|
||||
This is how they are called on the real MiR since MiR software 2.0.
|
||||
* Contributors: Martin Günther
|
||||
|
||||
1.1.2 (2021-05-12)
|
||||
------------------
|
||||
* Fix laser scan frame_id with gazebo_plugins 2.9.2
|
||||
* Contributors: Martin Günther
|
||||
|
||||
1.1.1 (2021-02-11)
|
||||
------------------
|
||||
* Add prepend_prefix_to_laser_frame to URDF and launch files
|
||||
Fixes `#65 <https://github.com/DFKI-NI/mir_robot/issues/65>`_.
|
||||
* Add tf_prefix to URDF and launch files
|
||||
* Fix typo in robot_namespace
|
||||
* Add missing 'xacro:' xml namespace prefixes
|
||||
Macro calls without 'xacro:' prefix are deprecated in Melodic and will
|
||||
be forbidden in Noetic.
|
||||
* Contributors: Martin Günther
|
||||
|
||||
1.1.0 (2020-06-30)
|
||||
------------------
|
||||
* Initial release into noetic
|
||||
* Contributors: Martin Günther
|
||||
|
||||
1.0.6 (2020-06-30)
|
||||
------------------
|
||||
* Update to non-deprecated robot_state_publisher node
|
||||
* Set cmake_policy CMP0048 to fix warning
|
||||
* Contributors: Martin Günther
|
||||
|
||||
1.0.5 (2020-05-01)
|
||||
------------------
|
||||
* Switch from Gazebo GPU laser to normal laser plugin
|
||||
The GPU laser plugin has caused multiple people problems before, because
|
||||
it is not compatible with all GPUS: `#1 <https://github.com/DFKI-NI/mir_robot/issues/1>`_
|
||||
`#32 <https://github.com/DFKI-NI/mir_robot/issues/32>`_
|
||||
`#46 <https://github.com/DFKI-NI/mir_robot/issues/46>`_
|
||||
`#52 <https://github.com/DFKI-NI/mir_robot/issues/52>`_
|
||||
The normal laser plugin directly uses the physics engine, so it doesn't
|
||||
depend on any specific GPU. Also, it doesn't slow down the simulation
|
||||
noticeably (maybe 1-2%).
|
||||
* Contributors: Martin Günther
|
||||
|
||||
1.0.4 (2019-05-06)
|
||||
------------------
|
||||
* Add legacyModeNS param to gazebo_ros_control plugin
|
||||
This enables the new behavior of the plugin (pid_gains parameter are now
|
||||
in the proper namespace).
|
||||
* re-added gazebo friction parameters for the wheels (`#19 <https://github.com/DFKI-NI/mir_robot/issues/19>`_)
|
||||
* Contributors: Martin Günther, niniemann
|
||||
|
||||
1.0.3 (2019-03-04)
|
||||
------------------
|
||||
* Merge pull request `#16 <https://github.com/DFKI-NI/mir_robot/issues/16>`_ from niniemann/add-prefix-argument-to-configs
|
||||
Add prefix argument to configs
|
||||
* removed prefix from plugin frameName in sick urdf
|
||||
The gazebo plugins automatically use tf_prefix, even if none is set
|
||||
(in that case it defaults to the robot namespace). That's why we can
|
||||
remove the prefix from the plugins configuration, assuming that the
|
||||
robot namespace will be equal to the prefix.
|
||||
* adds $(arg prefix) to a lot of configs
|
||||
This is an important step to be able to re-parameterize move base,
|
||||
the diffdrive controller, ekf, amcl and the costmaps for adding a
|
||||
tf prefix to the robots links
|
||||
* workaround eval in xacro for indigo support
|
||||
* adds tf_prefix argument to imu.gazebo.urdf.xacro
|
||||
* Add TFs for ultrasound sensors
|
||||
* Contributors: Martin Günther, Nils Niemann
|
||||
|
||||
1.0.2 (2018-07-30)
|
||||
------------------
|
||||
|
||||
1.0.1 (2018-07-17)
|
||||
------------------
|
||||
* gazebo: Remove leading slashes in TF frames
|
||||
TF2 doesn't like it (e.g., robot_localization).
|
||||
* Contributors: Martin Günther
|
||||
|
||||
1.0.0 (2018-07-12)
|
||||
------------------
|
||||
* Initial release
|
||||
* Contributors: Martin Günther
|
||||
31
Controllers/Packages/cititruck_description/CMakeLists.txt
Executable file
31
Controllers/Packages/cititruck_description/CMakeLists.txt
Executable file
@@ -0,0 +1,31 @@
|
||||
cmake_minimum_required(VERSION 3.5.1)
|
||||
project(cititruck_description)
|
||||
|
||||
find_package(catkin REQUIRED COMPONENTS
|
||||
roslaunch
|
||||
)
|
||||
|
||||
###################################
|
||||
## catkin specific configuration ##
|
||||
###################################
|
||||
catkin_package()
|
||||
|
||||
#############
|
||||
## Install ##
|
||||
#############
|
||||
|
||||
# Mark other files for installation (e.g. launch and bag files, etc.)
|
||||
install(DIRECTORY
|
||||
config
|
||||
launch
|
||||
meshes
|
||||
rviz
|
||||
urdf
|
||||
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
|
||||
)
|
||||
|
||||
#############
|
||||
## Testing ##
|
||||
#############
|
||||
|
||||
roslaunch_add_file_check(launch)
|
||||
@@ -0,0 +1,4 @@
|
||||
# Publish all joint states -----------------------------------
|
||||
joint_state_controller:
|
||||
type: joint_state_controller/JointStateController
|
||||
publish_rate: 50
|
||||
55
Controllers/Packages/cititruck_description/config/steerdrive_controller.yaml
Executable file
55
Controllers/Packages/cititruck_description/config/steerdrive_controller.yaml
Executable file
@@ -0,0 +1,55 @@
|
||||
# -----------------------------------
|
||||
mobile_base_controller:
|
||||
type : "steer_drive_controller/SteerDriveController"
|
||||
rear_wheel: '$(arg prefix)steer2sd_wheel_joint'
|
||||
front_steer: '$(arg prefix)base2steer_joint'
|
||||
publish_rate: 41.2 # this is what the real MiR platform publishes (default: 50)
|
||||
# These covariances are exactly what the real MiR platform publishes
|
||||
pose_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
|
||||
twist_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
|
||||
enable_odom_tf: false
|
||||
|
||||
# Wheel separation and diameter. These are both optional.
|
||||
# diff_drive_controller will attempt to read either one or both from the
|
||||
# URDF if not specified as a parameter.
|
||||
# We don't set the value here because it's different for each MiR type (100, 250, ...), and
|
||||
# the plugin figures out the correct values.
|
||||
wheel_separation : 1.3268
|
||||
wheel_radius : 0.125
|
||||
|
||||
# Wheel separation and radius multipliers
|
||||
wheel_separation_multiplier: 1.0 # default: 1.0
|
||||
wheel_radius_multiplier : 1.0 # default: 1.0
|
||||
|
||||
# Steer position angle multipliers for fine tuning.
|
||||
steer_pos_multiplier : 1.0
|
||||
|
||||
# Velocity commands timeout [s], default 0.5
|
||||
cmd_vel_timeout: 0.25
|
||||
|
||||
# frame_ids (same as real MiR platform)
|
||||
base_frame_id: $(arg prefix)base_footprint # default: base_link
|
||||
odom_frame_id: $(arg prefix)odom # default: odom
|
||||
|
||||
# Velocity and acceleration limits
|
||||
# Whenever a min_* is unspecified, default to -max_*
|
||||
linear:
|
||||
x:
|
||||
has_velocity_limits : true
|
||||
max_velocity : 1.5 # m/s
|
||||
min_velocity : -1.5 # m/s
|
||||
has_acceleration_limits: true
|
||||
max_acceleration : 3.0 # m/s^2
|
||||
min_acceleration : -3.0 # m/s^2
|
||||
has_jerk_limits : false
|
||||
max_jerk : 5.0 # m/s^3
|
||||
angular:
|
||||
z:
|
||||
has_velocity_limits : true
|
||||
max_velocity : 2.0 # rad/s
|
||||
min_velocity : -2.0
|
||||
has_acceleration_limits: true
|
||||
max_acceleration : 1.5 # rad/s^2
|
||||
min_acceleration : -1.5
|
||||
has_jerk_limits : false
|
||||
max_jerk : 2.5 # rad/s^3
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<launch>
|
||||
<arg name="robot_type" default="demo" doc="" />
|
||||
<arg name="tf_prefix" default="" doc="tf_prefix to be used by gazebo plugins and in the robot's urdf etc." />
|
||||
<arg name="gui" default="false" />
|
||||
|
||||
<!-- load cititruck URDF -->
|
||||
<include file="$(find cititruck_description)/launch/upload_cititruck_urdf.launch">
|
||||
<arg name="tf_prefix" value="$(arg tf_prefix)" />
|
||||
<arg name="robot_type" value="$(arg robot_type)" />
|
||||
</include>
|
||||
|
||||
<node if="$(arg gui)" name="joint_state_publisher" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" />
|
||||
<node unless="$(arg gui)" name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
|
||||
|
||||
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
|
||||
|
||||
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find cititruck_description)/rviz/cititruck_description.rviz" required="true" />
|
||||
</launch>
|
||||
5
Controllers/Packages/cititruck_description/launch/debug.launch
Executable file
5
Controllers/Packages/cititruck_description/launch/debug.launch
Executable file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<launch>
|
||||
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find cititruck_description)/rviz/cititruck_description.rviz" required="true" />
|
||||
</launch>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" ?>
|
||||
<launch>
|
||||
<arg name="robot_type" default="demo" doc="" />
|
||||
<arg name="tf_prefix" default="" doc="TF prefix to use for all of the cititruck's TF frames"/>
|
||||
|
||||
<param name="robot_description" command="$(find xacro)/xacro $(find cititruck_description)/urdf/cititruck.urdf.xacro robot_type:=$(arg robot_type) tf_prefix:=$(arg tf_prefix)" />
|
||||
</launch>
|
||||
89
Controllers/Packages/cititruck_description/meshes/HDL32E_base.dae
Executable file
89
Controllers/Packages/cititruck_description/meshes/HDL32E_base.dae
Executable file
File diff suppressed because one or more lines are too long
89
Controllers/Packages/cititruck_description/meshes/HDL32E_scan.dae
Executable file
89
Controllers/Packages/cititruck_description/meshes/HDL32E_scan.dae
Executable file
File diff suppressed because one or more lines are too long
136
Controllers/Packages/cititruck_description/meshes/asus_camera_simple.dae
Executable file
136
Controllers/Packages/cititruck_description/meshes/asus_camera_simple.dae
Executable file
@@ -0,0 +1,136 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
|
||||
<asset>
|
||||
<contributor>
|
||||
<author>Stefan Kohlbrecher</author>
|
||||
<authoring_tool>Blender 2.70.5 commit date:2014-06-04, commit time:10:44, hash:fc1c763</authoring_tool>
|
||||
</contributor>
|
||||
<created>2014-06-11T13:30:44</created>
|
||||
<modified>2014-06-11T13:30:44</modified>
|
||||
<unit name="meter" meter="1"/>
|
||||
<up_axis>Z_UP</up_axis>
|
||||
</asset>
|
||||
<library_images/>
|
||||
<library_effects>
|
||||
<effect id="Material_001-effect">
|
||||
<profile_COMMON>
|
||||
<technique sid="common">
|
||||
<phong>
|
||||
<emission>
|
||||
<color sid="emission">0 0 0 1</color>
|
||||
</emission>
|
||||
<ambient>
|
||||
<color sid="ambient">0 0 0 1</color>
|
||||
</ambient>
|
||||
<diffuse>
|
||||
<color sid="diffuse">0.007095437 0.007095437 0.007095437 1</color>
|
||||
</diffuse>
|
||||
<specular>
|
||||
<color sid="specular">0.25 0.25 0.25 1</color>
|
||||
</specular>
|
||||
<shininess>
|
||||
<float sid="shininess">50</float>
|
||||
</shininess>
|
||||
<index_of_refraction>
|
||||
<float sid="index_of_refraction">1</float>
|
||||
</index_of_refraction>
|
||||
</phong>
|
||||
</technique>
|
||||
</profile_COMMON>
|
||||
</effect>
|
||||
<effect id="Material_002-effect">
|
||||
<profile_COMMON>
|
||||
<technique sid="common">
|
||||
<phong>
|
||||
<emission>
|
||||
<color sid="emission">0 0 0 1</color>
|
||||
</emission>
|
||||
<ambient>
|
||||
<color sid="ambient">0 0 0 1</color>
|
||||
</ambient>
|
||||
<diffuse>
|
||||
<color sid="diffuse">0.512 0.512 0.512 1</color>
|
||||
</diffuse>
|
||||
<specular>
|
||||
<color sid="specular">0.4195 0.4195 0.4195 1</color>
|
||||
</specular>
|
||||
<shininess>
|
||||
<float sid="shininess">5</float>
|
||||
</shininess>
|
||||
<index_of_refraction>
|
||||
<float sid="index_of_refraction">1</float>
|
||||
</index_of_refraction>
|
||||
</phong>
|
||||
</technique>
|
||||
</profile_COMMON>
|
||||
</effect>
|
||||
</library_effects>
|
||||
<library_materials>
|
||||
<material id="Material_001-material" name="Material_001">
|
||||
<instance_effect url="#Material_001-effect"/>
|
||||
</material>
|
||||
<material id="Material_002-material" name="Material_002">
|
||||
<instance_effect url="#Material_002-effect"/>
|
||||
</material>
|
||||
</library_materials>
|
||||
<library_geometries>
|
||||
<geometry id="Cube_001-mesh" name="Cube.001">
|
||||
<mesh>
|
||||
<source id="Cube_001-mesh-positions">
|
||||
<float_array id="Cube_001-mesh-positions-array" count="168">-0.9601472 1.38267 0.3078527 -0.9601472 1.38267 -0.3013365 -0.9601472 -3.015511 -0.3013365 -0.9601472 -3.015511 0.3078527 -0.02340704 1.382557 0.3078527 -0.02330875 1.382666 -0.3013365 -0.02331 -3.015507 -0.3013365 -0.02340704 -3.015511 0.3078527 -0.02340704 -1.737524 0 -0.02340704 0.1250084 -0.165674 -0.02340704 0.05638432 0 -0.02340704 -0.09674459 0 -0.02340704 -0.1653691 -0.1656743 -0.02340704 0.1250084 0.1656737 -0.02340704 -0.1653691 0.1656738 -0.02340704 -0.4967176 -0.165674 -0.02340704 -0.5653417 0 -0.02340704 -1.268926 0 -0.02340704 -0.4967176 0.1656737 -0.02340704 -1.337551 -0.1656743 -0.02340704 -1.337551 0.1656738 -0.02340704 -1.668899 0.1656737 -0.02340704 -1.668899 -0.165674 -0.02340704 -1.503225 -0.2342988 -0.02340704 -0.3310434 0.2342985 -0.02340704 -0.3310434 -0.2342988 -0.02340704 -1.503225 0.2342985 -0.02340704 0.2906828 -0.2342988 -0.02340704 0.2906827 0.2342985 -0.02340704 0.456357 0.1656738 -0.02340704 0.5249815 0 -0.02340704 0.456357 -0.1656743 -0.1343017 0.5249815 -1.34731e-7 -0.1343017 0.456357 0.1656738 -0.1343017 0.2906827 0.2342983 -0.1343017 0.456357 -0.1656745 -0.1343011 0.1250084 0.1656737 -0.1343011 0.2906827 -0.234299 -0.1343017 0.05638402 -1.21696e-7 -0.1343011 0.1250084 -0.165674 -0.1343017 -0.09674459 -1.34731e-7 -0.1343017 -0.1653691 0.1656738 -0.1343017 -0.3310434 0.2342983 -0.1343017 -0.1653691 -0.1656745 -0.1343011 -0.4967176 0.1656737 -0.1343011 -0.3310434 -0.234299 -0.1343017 -0.565342 -1.21696e-7 -0.1343011 -0.4967176 -0.165674 -0.1343017 -1.268926 -1.34731e-7 -0.1343017 -1.337551 0.1656738 -0.1343017 -1.503225 0.2342983 -0.1343017 -1.337551 -0.1656745 -0.1343011 -1.668899 0.1656737 -0.1343011 -1.503225 -0.234299 -0.1343017 -1.737524 -1.21696e-7 -0.1343011 -1.668899 -0.165674</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#Cube_001-mesh-positions-array" count="56" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="Cube_001-mesh-normals">
|
||||
<float_array id="Cube_001-mesh-normals-array" count="321">-1 0 0 1.21024e-4 1 0 1 -7.84187e-5 1.8932e-4 1 -1.00075e-4 4.14522e-5 1 -1.34163e-4 -5.55722e-5 1 -2.47756e-5 1.61396e-4 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0.9999989 -2.84171e-7 0.001454412 1 5.79847e-5 1.39987e-4 1 3.83854e-5 1.59349e-4 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 -1 -6.26192e-6 0 0 -1 0 0 1 2.48287e-7 -0.9238793 -0.3826841 -4.21495e-7 -0.9238796 0.3826832 -1.63916e-6 -0.3826835 0.9238796 0 0.3826856 0.9238786 -2.76314e-6 0.9238795 0.3826837 -1.90774e-6 0.9238794 -0.3826838 1.61387e-6 -0.3826832 -0.9238796 0 0.3826839 -0.9238793 0 -0.9238793 -0.3826841 -7.02491e-7 -0.9238796 0.3826833 -1.73282e-6 -0.3826835 0.9238796 0 0.3826858 0.9238786 -2.90364e-6 0.9238795 0.3826838 -2.06292e-6 0.9238793 -0.3826838 1.61387e-6 -0.3826834 -0.9238796 0 0.3826839 -0.9238793 -9.93149e-7 -0.9238784 -0.3826862 -1.68598e-6 -0.9238788 0.3826854 -1.73282e-6 -0.3826839 0.9238794 4.21498e-7 0.3826863 0.9238784 -3.74662e-7 0.9238781 0.3826869 4.19961e-7 0.9238781 -0.382687 1.61387e-6 -0.3826839 -0.9238794 4.1138e-7 0.3826843 -0.9238792 -1 0 0 4.70811e-6 1 1.78857e-4 1 0 0 0.9999989 0 0.001466631 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 6.91998e-5 2.86637e-5 1 0 0 1 0 0 1 0 0 1 0 0 4.07189e-6 -1 0 0 0 -1 0 0 1 4.64941e-7 -0.9238792 -0.3826842 -4.21495e-7 -0.9238796 0.3826832 -1.54548e-6 -0.3826834 0.9238796 -1.87332e-6 0.3826846 0.9238791 0 0.9238802 0.3826822 0 0.9238798 -0.3826827 0 -0.3826841 -0.9238793 1.61387e-6 0.3826848 -0.923879 5.89085e-7 -0.9238792 -0.3826845 -3.27829e-7 -0.9238796 0.3826835 -1.63915e-6 -0.3826834 0.9238796 -1.73282e-6 0.3826848 0.923879 2.34166e-7 0.9238802 0.382682 2.48289e-7 0.9238799 -0.3826826 0 -0.3826843 -0.9238792 1.61387e-6 0.3826847 -0.923879 4.64944e-7 -0.923878 -0.382687 -4.21494e-7 -0.9238785 0.3826861 -2.01381e-6 -0.3826841 0.9238792 -1.73282e-6 0.3826851 0.9238789 9.83494e-7 0.9238784 0.3826861 9.93154e-7 0.9238782 -0.3826867 -4.11378e-7 -0.382685 -0.9238789 1.61387e-6 0.382685 -0.9238789 1 0 0 1 0 0 1 3.1476e-6 1.30378e-6 1 5.40047e-7 1.30378e-6 1 3.68764e-6 0 1 -8.90277e-6 0 1 0 0 1 0 0 1 3.1476e-6 1.30378e-6 1 5.40047e-7 1.30378e-6 1 3.68764e-6 0 1 -8.90277e-6 0 1 0 0 1 0 0 1 3.14761e-6 1.30378e-6 1 3.14761e-6 1.30378e-6 1 0 0 1 -8.90269e-6 0</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#Cube_001-mesh-normals-array" count="107" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<vertices id="Cube_001-mesh-vertices">
|
||||
<input semantic="POSITION" source="#Cube_001-mesh-positions"/>
|
||||
</vertices>
|
||||
<polylist material="Material_001-material" count="89">
|
||||
<input semantic="VERTEX" source="#Cube_001-mesh-vertices" offset="0"/>
|
||||
<input semantic="NORMAL" source="#Cube_001-mesh-normals" offset="1"/>
|
||||
<vcount>3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
|
||||
<p>2 0 0 0 1 0 1 1 0 1 4 1 31 2 27 2 5 2 5 3 30 3 31 3 5 4 29 4 30 4 4 5 29 5 5 5 23 6 27 6 25 6 7 7 28 7 4 7 7 8 21 8 26 8 9 9 25 9 27 9 28 10 14 10 13 10 19 11 25 11 15 11 24 12 20 12 18 12 23 13 6 13 5 13 23 14 22 14 6 14 6 15 8 15 7 15 18 16 17 16 16 16 17 17 15 17 16 17 13 18 11 18 10 18 11 19 9 19 10 19 7 20 8 20 21 20 3 21 6 21 7 21 6 22 1 22 5 22 7 23 0 23 3 23 32 24 29 24 33 24 31 25 32 25 35 25 27 26 35 26 37 26 9 27 37 27 39 27 10 28 39 28 38 28 36 29 10 29 38 29 33 30 28 30 34 30 34 31 13 31 36 31 40 32 14 32 41 32 12 33 40 33 43 33 25 34 43 34 45 34 15 35 45 35 47 35 16 36 47 36 46 36 44 37 16 37 46 37 41 38 24 38 42 38 42 39 18 39 44 39 48 40 20 40 49 40 19 41 48 41 51 41 23 42 51 42 53 42 22 43 53 43 55 43 8 44 55 44 54 44 52 45 8 45 54 45 49 46 26 46 50 46 50 47 21 47 52 47 0 48 2 48 3 48 1 49 4 49 5 49 29 50 4 50 28 50 27 51 23 51 5 51 28 52 7 52 26 52 25 53 9 53 12 53 14 54 28 54 24 54 25 55 19 55 23 55 20 56 24 56 26 56 8 57 6 57 22 57 17 58 18 58 20 58 15 59 17 59 19 59 11 60 13 60 14 60 9 61 11 61 12 61 6 62 3 62 2 62 1 63 6 63 2 63 0 64 7 64 4 64 29 65 32 65 30 65 32 66 31 66 30 66 35 67 27 67 31 67 37 68 9 68 27 68 39 69 10 69 9 69 10 70 36 70 13 70 28 71 33 71 29 71 13 72 34 72 28 72 14 73 40 73 11 73 40 74 12 74 11 74 43 75 25 75 12 75 45 76 15 76 25 76 47 77 16 77 15 77 16 78 44 78 18 78 24 79 41 79 14 79 18 80 42 80 24 80 20 81 48 81 17 81 48 82 19 82 17 82 51 83 23 83 19 83 53 84 22 84 23 84 55 85 8 85 22 85 8 86 52 86 21 86 26 87 49 87 20 87 21 88 50 88 26 88</p>
|
||||
</polylist>
|
||||
<polylist material="Material_002-material" count="18">
|
||||
<input semantic="VERTEX" source="#Cube_001-mesh-vertices" offset="0"/>
|
||||
<input semantic="NORMAL" source="#Cube_001-mesh-normals" offset="1"/>
|
||||
<vcount>3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
|
||||
<p>32 89 33 89 35 89 33 90 34 90 35 90 34 91 37 91 35 91 34 92 39 92 37 92 34 93 36 93 39 93 36 94 38 94 39 94 40 95 41 95 43 95 41 96 42 96 43 96 42 97 45 97 43 97 42 98 47 98 45 98 42 99 44 99 47 99 44 100 46 100 47 100 48 101 49 101 51 101 49 102 50 102 51 102 50 103 53 103 51 103 50 104 52 104 53 104 52 105 55 105 53 105 52 106 54 106 55 106</p>
|
||||
</polylist>
|
||||
</mesh>
|
||||
</geometry>
|
||||
</library_geometries>
|
||||
<library_controllers/>
|
||||
<library_visual_scenes>
|
||||
<visual_scene id="Scene" name="Scene">
|
||||
<node id="Cube" name="Cube" type="NODE">
|
||||
<matrix sid="transform">0.04101324 0 0 0 0 0.04101324 0 0.03664687 0 0 0.04101324 0 0 0 0 1</matrix>
|
||||
<instance_geometry url="#Cube_001-mesh">
|
||||
<bind_material>
|
||||
<technique_common>
|
||||
<instance_material symbol="Material_001-material" target="#Material_001-material"/>
|
||||
<instance_material symbol="Material_002-material" target="#Material_002-material"/>
|
||||
</technique_common>
|
||||
</bind_material>
|
||||
</instance_geometry>
|
||||
</node>
|
||||
</visual_scene>
|
||||
</library_visual_scenes>
|
||||
<scene>
|
||||
<instance_visual_scene url="#Scene"/>
|
||||
</scene>
|
||||
</COLLADA>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Controllers/Packages/cititruck_description/meshes/forklift_body.stl
Executable file
BIN
Controllers/Packages/cititruck_description/meshes/forklift_body.stl
Executable file
Binary file not shown.
BIN
Controllers/Packages/cititruck_description/meshes/forklift_forks.stl
Executable file
BIN
Controllers/Packages/cititruck_description/meshes/forklift_forks.stl
Executable file
Binary file not shown.
152
Controllers/Packages/cititruck_description/meshes/kinect_v2.dae
Executable file
152
Controllers/Packages/cititruck_description/meshes/kinect_v2.dae
Executable file
@@ -0,0 +1,152 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
|
||||
<asset>
|
||||
<contributor>
|
||||
<author>Stefan Kohlbrecher</author>
|
||||
<authoring_tool>Blender 2.62.1 r44749</authoring_tool>
|
||||
</contributor>
|
||||
<created>2012-03-09T23:01:39</created>
|
||||
<modified>2012-03-09T23:01:39</modified>
|
||||
<unit name="meter" meter="1"/>
|
||||
<up_axis>Z_UP</up_axis>
|
||||
</asset>
|
||||
<library_effects>
|
||||
<effect id="Material-effect">
|
||||
<profile_COMMON>
|
||||
<technique sid="common">
|
||||
<phong>
|
||||
<emission>
|
||||
<color sid="emission">0 0 0 1</color>
|
||||
</emission>
|
||||
<ambient>
|
||||
<color sid="ambient">0.01 0.01 0.01 1</color>
|
||||
</ambient>
|
||||
<diffuse>
|
||||
<color sid="diffuse">0.008869297 0.008869297 0.008869297 1</color>
|
||||
</diffuse>
|
||||
<specular>
|
||||
<color sid="specular">0.5 0.5 0.5 1</color>
|
||||
</specular>
|
||||
<shininess>
|
||||
<float sid="shininess">50</float>
|
||||
</shininess>
|
||||
<index_of_refraction>
|
||||
<float sid="index_of_refraction">1</float>
|
||||
</index_of_refraction>
|
||||
</phong>
|
||||
</technique>
|
||||
<extra>
|
||||
<technique profile="GOOGLEEARTH">
|
||||
<double_sided>1</double_sided>
|
||||
</technique>
|
||||
</extra>
|
||||
</profile_COMMON>
|
||||
<extra><technique profile="MAX3D"><double_sided>1</double_sided></technique></extra>
|
||||
</effect>
|
||||
<effect id="Material_001-effect">
|
||||
<profile_COMMON>
|
||||
<technique sid="common">
|
||||
<phong>
|
||||
<emission>
|
||||
<color sid="emission">0.2 0.2 0.2 1</color>
|
||||
</emission>
|
||||
<ambient>
|
||||
<color sid="ambient">0.3 0.3 0.3 1</color>
|
||||
</ambient>
|
||||
<diffuse>
|
||||
<color sid="diffuse">0.64 0.64 0.64 1</color>
|
||||
</diffuse>
|
||||
<specular>
|
||||
<color sid="specular">0.839 0.839 0.839 1</color>
|
||||
</specular>
|
||||
<shininess>
|
||||
<float sid="shininess">5</float>
|
||||
</shininess>
|
||||
<index_of_refraction>
|
||||
<float sid="index_of_refraction">1</float>
|
||||
</index_of_refraction>
|
||||
</phong>
|
||||
</technique>
|
||||
<extra>
|
||||
<technique profile="GOOGLEEARTH">
|
||||
<double_sided>1</double_sided>
|
||||
</technique>
|
||||
</extra>
|
||||
</profile_COMMON>
|
||||
<extra><technique profile="MAX3D"><double_sided>1</double_sided></technique></extra>
|
||||
</effect>
|
||||
</library_effects>
|
||||
<library_materials>
|
||||
<material id="Material-material" name="Material">
|
||||
<instance_effect url="#Material-effect"/>
|
||||
</material>
|
||||
<material id="Material_001-material" name="Material.001">
|
||||
<instance_effect url="#Material_001-effect"/>
|
||||
</material>
|
||||
</library_materials>
|
||||
<library_geometries>
|
||||
<geometry id="Cube_001-mesh" name="Cube.001">
|
||||
<mesh>
|
||||
<source id="Cube_001-mesh-positions">
|
||||
<float_array id="Cube_001-mesh-positions-array" count="168">-1.497 2.613 0.4524136 -1.497 2.613 -0.4341885 -1.497 -2.613 -0.4341885 -1.497 -2.613 0.4524136 -0.02330875 3.366 0.4524136 -0.02330875 3.366 -0.4341885 -0.02931594 -3.366 -0.4341885 -0.02931594 -3.366 0.4524136 -0.02788293 -1.760094 0 -0.02618807 0.1392521 -0.165674 -0.02624928 0.07062792 0 -0.02637684 -0.07232695 0 -0.02643811 -0.1409515 -0.1656743 -0.02618807 0.1392521 0.1656737 -0.02643811 -0.1409515 0.1656738 -0.02673375 -0.4722999 -0.165674 -0.02679502 -0.5409241 0 -0.02746474 -1.291496 0 -0.02673375 -0.4722999 0.1656737 -0.02752602 -1.360121 -0.1656743 -0.02752602 -1.360121 0.1656738 -0.02782166 -1.691469 0.1656737 -0.02782166 -1.691469 -0.165674 -0.02767384 -1.525795 -0.2342988 -0.02658593 -0.3066257 0.2342985 -0.02658593 -0.3066257 -0.2342988 -0.02767384 -1.525795 0.2342985 -0.02604025 0.3049264 -0.2342988 -0.02604025 0.3049263 0.2342985 -0.02589237 0.4706006 0.1656738 -0.02583116 0.5392251 0 -0.02589237 0.4706006 -0.1656743 -0.1343017 0.5392251 -1.34731e-7 -0.1343017 0.4706006 0.1656738 -0.1343017 0.3049263 0.2342983 -0.1343017 0.4706006 -0.1656745 -0.1343011 0.1392521 0.1656737 -0.1343011 0.3049264 -0.234299 -0.1343017 0.07062768 -1.21696e-7 -0.1343011 0.1392521 -0.165674 -0.1343017 -0.07232695 -1.34731e-7 -0.1343017 -0.1409515 0.1656738 -0.1343017 -0.3066257 0.2342983 -0.1343017 -0.1409515 -0.1656745 -0.1343011 -0.4722999 0.1656737 -0.1343011 -0.3066257 -0.234299 -0.1343017 -0.5409244 -1.21696e-7 -0.1343011 -0.4722999 -0.165674 -0.1343017 -1.291496 -1.34731e-7 -0.1343017 -1.360121 0.1656738 -0.1343017 -1.525795 0.2342983 -0.1343017 -1.360121 -0.1656745 -0.1343011 -1.691469 0.1656737 -0.1343011 -1.525795 -0.234299 -0.1343017 -1.760094 -1.21696e-7 -0.1343011 -1.691469 -0.165674</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#Cube_001-mesh-positions-array" count="56" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<source id="Cube_001-mesh-normals">
|
||||
<float_array id="Cube_001-mesh-normals-array" count="321">-1 0 0 -0.4550058 0.8904885 0 0.9999996 -8.92333e-4 0 0.9999997 -8.92333e-4 0 0.9999997 -8.92336e-4 0 0.9999997 -8.92334e-4 0 0 0 1 0.9999996 -8.92334e-4 0 0.9999997 -8.92333e-4 0 0.9999996 -8.92336e-4 0 0.9999997 -8.92336e-4 0 0.9999996 -8.92334e-4 0 0.9999995 -8.92334e-4 0 0.9999997 -8.92334e-4 0 0.9999997 -8.92333e-4 0 0.9999996 -8.92334e-4 0 0.9999997 -8.92333e-4 0 0.9999996 -8.92333e-4 0 0.9999996 -8.92331e-4 0 0.9999996 -8.92331e-4 0 0.9999996 -8.92335e-4 0 -0.4564806 -0.8897334 0 0 0 -1 0 0 1 0 -0.9238792 -0.3826842 -9.10222e-7 -0.9238796 0.3826833 -2.15875e-6 -0.3826836 0.9238795 0 0.382686 0.9238785 -2.35517e-6 0.9238793 0.3826841 -2.23774e-6 0.9238793 -0.3826839 1 0 0 1 0 0 1 2.91729e-6 1.20838e-6 1 5.00532e-7 1.20838e-6 1 3.41782e-6 0 1 -8.25134e-6 0 2.16178e-6 -0.3826833 -0.9238796 0 0.3826836 -0.9238794 0 -0.9238792 -0.3826842 -8.66678e-7 -0.9238797 0.3826831 -2.2179e-6 -0.3826835 0.9238795 0 0.382686 0.9238785 -2.60867e-6 0.9238793 0.3826841 -2.50535e-6 0.9238793 -0.3826839 1 0 0 1 0 0 1 2.91729e-6 1.20838e-6 1 5.00532e-7 1.20838e-6 1 3.41782e-6 0 1 -8.25134e-6 0 2.17273e-6 -0.3826834 -0.9238795 0 0.3826836 -0.9238795 0 -0.9238793 -0.3826839 -8.75508e-7 -0.9238798 0.382683 -2.19182e-6 -0.3826834 0.9238796 0 0.382686 0.9238785 -2.14732e-6 0.9238793 0.3826841 -2.0138e-6 0.9238793 -0.3826839 1 0 0 1 0 0 1 2.91729e-6 1.20838e-6 1 2.91729e-6 1.20838e-6 1 0 0 1 -8.25134e-6 0 2.1949e-6 -0.3826834 -0.9238796 0 0.3826836 -0.9238796 -1 0 0 -0.4550058 0.8904885 0 0.9999996 -8.92333e-4 0 0.9999996 -8.92335e-4 0 0.9999996 -8.92335e-4 0 0.9999997 -8.92336e-4 0 0.9999996 -8.92336e-4 0 0.9999996 -8.92335e-4 0 0.9999997 -8.92335e-4 0 0.9999996 -8.92335e-4 0 0.9999996 -8.92334e-4 0 0.9999996 -8.92334e-4 0 0.9999996 -8.92336e-4 0 0.9999996 -8.92336e-4 0 -0.4564806 -0.8897334 0 0 0 -1 0 0 1 0 -0.9238792 -0.3826842 0 -0.9238794 0.3826837 -2.15579e-6 -0.3826836 0.9238795 -2.15874e-6 0.3826848 0.923879 0 0.9238799 0.3826828 0 0.9238799 -0.3826826 0 -0.3826846 -0.9238791 2.16177e-6 0.3826848 -0.9238789 0 -0.9238792 -0.3826842 0 -0.9238795 0.3826836 -2.21485e-6 -0.3826835 0.9238796 -2.16968e-6 0.3826848 0.923879 0 0.9238799 0.3826826 0 0.9238799 -0.3826826 0 -0.3826847 -0.9238791 2.17273e-6 0.3826848 -0.9238789 0 -0.9238794 -0.3826839 0 -0.9238796 0.3826835 -2.18877e-6 -0.3826833 0.9238795 -2.19182e-6 0.3826848 0.923879 0 0.9238798 0.3826829 0 0.9238798 -0.3826829 0 -0.3826846 -0.9238791 2.19489e-6 0.3826848 -0.9238791</float_array>
|
||||
<technique_common>
|
||||
<accessor source="#Cube_001-mesh-normals-array" count="107" stride="3">
|
||||
<param name="X" type="float"/>
|
||||
<param name="Y" type="float"/>
|
||||
<param name="Z" type="float"/>
|
||||
</accessor>
|
||||
</technique_common>
|
||||
</source>
|
||||
<vertices id="Cube_001-mesh-vertices">
|
||||
<input semantic="POSITION" source="#Cube_001-mesh-positions"/>
|
||||
</vertices>
|
||||
<polylist material="Material1" count="89">
|
||||
<input semantic="VERTEX" source="#Cube_001-mesh-vertices" offset="0"/>
|
||||
<input semantic="NORMAL" source="#Cube_001-mesh-normals" offset="1"/>
|
||||
<vcount>3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
|
||||
<p>2 0 0 0 1 0 1 1 0 1 4 1 31 2 27 2 5 2 5 3 30 3 31 3 5 4 29 4 30 4 4 5 29 5 5 5 23 6 27 6 25 6 7 7 28 7 4 7 7 8 21 8 26 8 9 9 25 9 27 9 28 10 14 10 13 10 19 11 25 11 15 11 24 12 20 12 18 12 23 13 6 13 5 13 23 14 22 14 6 14 6 15 8 15 7 15 18 16 17 16 16 16 17 17 15 17 16 17 13 18 11 18 10 18 11 19 9 19 10 19 7 20 8 20 21 20 3 21 6 21 7 21 6 22 1 22 5 22 7 23 0 23 3 23 32 24 29 24 33 24 31 25 32 25 35 25 27 26 35 26 37 26 9 27 37 27 39 27 10 28 39 28 38 28 36 29 10 29 38 29 33 36 28 36 34 36 34 37 13 37 36 37 40 38 14 38 41 38 12 39 40 39 43 39 25 40 43 40 45 40 15 41 45 41 47 41 16 42 47 42 46 42 44 43 16 43 46 43 41 50 24 50 42 50 42 51 18 51 44 51 48 52 20 52 49 52 19 53 48 53 51 53 23 54 51 54 53 54 22 55 53 55 55 55 8 56 55 56 54 56 52 57 8 57 54 57 49 64 26 64 50 64 50 65 21 65 52 65 0 66 2 66 3 66 1 67 4 67 5 67 29 68 4 68 28 68 27 69 23 69 5 69 28 70 7 70 26 70 25 71 9 71 12 71 14 72 28 72 24 72 25 73 19 73 23 73 20 74 24 74 26 74 8 75 6 75 22 75 17 76 18 76 20 76 15 77 17 77 19 77 11 78 13 78 14 78 9 79 11 79 12 79 6 80 3 80 2 80 1 81 6 81 2 81 0 82 7 82 4 82 29 83 32 83 30 83 32 84 31 84 30 84 35 85 27 85 31 85 37 86 9 86 27 86 39 87 10 87 9 87 10 88 36 88 13 88 28 89 33 89 29 89 13 90 34 90 28 90 14 91 40 91 11 91 40 92 12 92 11 92 43 93 25 93 12 93 45 94 15 94 25 94 47 95 16 95 15 95 16 96 44 96 18 96 24 97 41 97 14 97 18 98 42 98 24 98 20 99 48 99 17 99 48 100 19 100 17 100 51 101 23 101 19 101 53 102 22 102 23 102 55 103 8 103 22 103 8 104 52 104 21 104 26 105 49 105 20 105 21 106 50 106 26 106</p>
|
||||
</polylist>
|
||||
<polylist material="Material_0012" count="18">
|
||||
<input semantic="VERTEX" source="#Cube_001-mesh-vertices" offset="0"/>
|
||||
<input semantic="NORMAL" source="#Cube_001-mesh-normals" offset="1"/>
|
||||
<vcount>3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
|
||||
<p>32 30 33 30 35 30 33 31 34 31 35 31 34 32 37 32 35 32 34 33 39 33 37 33 34 34 36 34 39 34 36 35 38 35 39 35 40 44 41 44 43 44 41 45 42 45 43 45 42 46 45 46 43 46 42 47 47 47 45 47 42 48 44 48 47 48 44 49 46 49 47 49 48 58 49 58 51 58 49 59 50 59 51 59 50 60 53 60 51 60 50 61 52 61 53 61 52 62 55 62 53 62 52 63 54 63 55 63</p>
|
||||
</polylist>
|
||||
</mesh>
|
||||
<extra><technique profile="MAYA"><double_sided>1</double_sided></technique></extra>
|
||||
</geometry>
|
||||
</library_geometries>
|
||||
<library_visual_scenes>
|
||||
<visual_scene id="Scene" name="Scene">
|
||||
<node id="Cube" type="NODE">
|
||||
<translate sid="location">0 0 0</translate>
|
||||
<rotate sid="rotationZ">0 0 1 0</rotate>
|
||||
<rotate sid="rotationY">0 1 0 0</rotate>
|
||||
<rotate sid="rotationX">1 0 0 0</rotate>
|
||||
<scale sid="scale">0.04101324 0.04101324 0.04101324</scale>
|
||||
<instance_geometry url="#Cube_001-mesh">
|
||||
<bind_material>
|
||||
<technique_common>
|
||||
<instance_material symbol="Material1" target="#Material-material"/>
|
||||
<instance_material symbol="Material_0012" target="#Material_001-material"/>
|
||||
</technique_common>
|
||||
</bind_material>
|
||||
</instance_geometry>
|
||||
</node>
|
||||
</visual_scene>
|
||||
</library_visual_scenes>
|
||||
<scene>
|
||||
<instance_visual_scene url="#Scene"/>
|
||||
</scene>
|
||||
</COLLADA>
|
||||
|
||||
423
Controllers/Packages/cititruck_description/meshes/ls2000_laser.dae
Executable file
423
Controllers/Packages/cititruck_description/meshes/ls2000_laser.dae
Executable file
File diff suppressed because one or more lines are too long
188
Controllers/Packages/cititruck_description/meshes/sick_s300_laser.dae
Executable file
188
Controllers/Packages/cititruck_description/meshes/sick_s300_laser.dae
Executable file
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
32
Controllers/Packages/cititruck_description/package.xml
Executable file
32
Controllers/Packages/cititruck_description/package.xml
Executable file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0"?>
|
||||
<package format="2">
|
||||
<name>cititruck_description</name>
|
||||
<version>1.1.7</version>
|
||||
<description>URDF description of the cititruck robot</description>
|
||||
|
||||
<maintainer email="martin.guenther@dfki.de">Martin Günther</maintainer>
|
||||
<author email="martin.guenther@dfki.de">Martin Günther</author>
|
||||
|
||||
<license>BSD</license>
|
||||
|
||||
<url type="website">https://github.com/DFKI-NI/cititruck_robot</url>
|
||||
<url type="repository">https://github.com/DFKI-NI/cititruck_robot</url>
|
||||
<url type="bugtracker">https://github.com/DFKI-NI/cititruck_robot/issues</url>
|
||||
|
||||
<buildtool_depend>catkin</buildtool_depend>
|
||||
|
||||
<build_depend>roslaunch</build_depend>
|
||||
|
||||
<exec_depend>diff_drive_controller</exec_depend>
|
||||
<exec_depend>gazebo_plugins</exec_depend>
|
||||
<exec_depend>gazebo_ros_control</exec_depend>
|
||||
<exec_depend>hector_gazebo_plugins</exec_depend>
|
||||
<exec_depend>joint_state_controller</exec_depend>
|
||||
<exec_depend>joint_state_publisher</exec_depend>
|
||||
<exec_depend>joint_state_publisher_gui</exec_depend>
|
||||
<exec_depend>position_controllers</exec_depend>
|
||||
<exec_depend>robot_state_publisher</exec_depend>
|
||||
<exec_depend>rviz</exec_depend>
|
||||
<exec_depend>urdf</exec_depend>
|
||||
<exec_depend>xacro</exec_depend>
|
||||
</package>
|
||||
242
Controllers/Packages/cititruck_description/rviz/cititruck_description.rviz
Executable file
242
Controllers/Packages/cititruck_description/rviz/cititruck_description.rviz
Executable file
@@ -0,0 +1,242 @@
|
||||
Panels:
|
||||
- Class: rviz/Displays
|
||||
Help Height: 81
|
||||
Name: Displays
|
||||
Property Tree Widget:
|
||||
Expanded:
|
||||
- /Global Options1
|
||||
- /Status1
|
||||
Splitter Ratio: 0.5
|
||||
Tree Height: 546
|
||||
- Class: rviz/Selection
|
||||
Name: Selection
|
||||
- Class: rviz/Tool Properties
|
||||
Expanded:
|
||||
- /2D Pose Estimate1
|
||||
- /2D Nav Goal1
|
||||
- /Publish Point1
|
||||
Name: Tool Properties
|
||||
Splitter Ratio: 0.5886790156364441
|
||||
- Class: rviz/Views
|
||||
Expanded:
|
||||
- /Current View1
|
||||
Name: Views
|
||||
Splitter Ratio: 0.5
|
||||
- Class: rviz/Time
|
||||
Name: Time
|
||||
SyncMode: 0
|
||||
SyncSource: ""
|
||||
Preferences:
|
||||
PromptSaveOnExit: true
|
||||
Toolbars:
|
||||
toolButtonStyle: 2
|
||||
Visualization Manager:
|
||||
Class: ""
|
||||
Displays:
|
||||
- Alpha: 0.5
|
||||
Cell Size: 1
|
||||
Class: rviz/Grid
|
||||
Color: 160; 160; 164
|
||||
Enabled: true
|
||||
Line Style:
|
||||
Line Width: 0.029999999329447746
|
||||
Value: Lines
|
||||
Name: Grid
|
||||
Normal Cell Count: 0
|
||||
Offset:
|
||||
X: 0
|
||||
Y: 0
|
||||
Z: 0
|
||||
Plane: XY
|
||||
Plane Cell Count: 10
|
||||
Reference Frame: <Fixed Frame>
|
||||
Value: true
|
||||
- Alpha: 1
|
||||
Class: rviz/RobotModel
|
||||
Collision Enabled: false
|
||||
Enabled: true
|
||||
Links:
|
||||
All Links Enabled: true
|
||||
Expand Joint Details: false
|
||||
Expand Link Details: false
|
||||
Expand Tree: false
|
||||
Link Tree Style: Links in Alphabetic Order
|
||||
base_footprint:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
base_link:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
drive_wheel_link:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
fixed_wheel_left_link:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
fixed_wheel_right_link:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
imu_frame:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
imu_link:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
left_laser_link:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
right_laser_link:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
steer_link:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Value: true
|
||||
steer_link_2:
|
||||
Alpha: 1
|
||||
Show Axes: false
|
||||
Show Trail: false
|
||||
Name: RobotModel
|
||||
Robot Description: robot_description
|
||||
TF Prefix: ""
|
||||
Update Interval: 0
|
||||
Value: true
|
||||
Visual Enabled: true
|
||||
- Class: rviz/TF
|
||||
Enabled: true
|
||||
Filter (blacklist): ""
|
||||
Filter (whitelist): ""
|
||||
Frame Timeout: 15
|
||||
Frames:
|
||||
All Enabled: true
|
||||
base_footprint:
|
||||
Value: true
|
||||
base_link:
|
||||
Value: true
|
||||
drive_wheel_link:
|
||||
Value: true
|
||||
fixed_wheel_left_link:
|
||||
Value: true
|
||||
fixed_wheel_right_link:
|
||||
Value: true
|
||||
imu_frame:
|
||||
Value: true
|
||||
imu_link:
|
||||
Value: true
|
||||
left_laser_link:
|
||||
Value: true
|
||||
right_laser_link:
|
||||
Value: true
|
||||
steer_link:
|
||||
Value: true
|
||||
steer_link_2:
|
||||
Value: true
|
||||
Marker Alpha: 1
|
||||
Marker Scale: 1
|
||||
Name: TF
|
||||
Show Arrows: true
|
||||
Show Axes: true
|
||||
Show Names: true
|
||||
Tree:
|
||||
base_footprint:
|
||||
base_link:
|
||||
fixed_wheel_left_link:
|
||||
{}
|
||||
fixed_wheel_right_link:
|
||||
{}
|
||||
imu_link:
|
||||
imu_frame:
|
||||
{}
|
||||
left_laser_link:
|
||||
{}
|
||||
right_laser_link:
|
||||
{}
|
||||
steer_link:
|
||||
drive_wheel_link:
|
||||
{}
|
||||
steer_link_2:
|
||||
{}
|
||||
Update Interval: 0
|
||||
Value: true
|
||||
Enabled: true
|
||||
Global Options:
|
||||
Background Color: 48; 48; 48
|
||||
Default Light: true
|
||||
Fixed Frame: base_footprint
|
||||
Frame Rate: 30
|
||||
Name: root
|
||||
Tools:
|
||||
- Class: rviz/Interact
|
||||
Hide Inactive Objects: true
|
||||
- Class: rviz/MoveCamera
|
||||
- Class: rviz/Select
|
||||
- Class: rviz/FocusCamera
|
||||
- Class: rviz/Measure
|
||||
- Class: rviz/SetInitialPose
|
||||
Theta std deviation: 0.2617993950843811
|
||||
Topic: /initialpose
|
||||
X std deviation: 0.5
|
||||
Y std deviation: 0.5
|
||||
- Class: rviz/SetGoal
|
||||
Topic: /move_base_simple/goal
|
||||
- Class: rviz/PublishPoint
|
||||
Single click: true
|
||||
Topic: /clicked_point
|
||||
Value: true
|
||||
Views:
|
||||
Current:
|
||||
Class: rviz/Orbit
|
||||
Distance: 5.068544387817383
|
||||
Enable Stereo Rendering:
|
||||
Stereo Eye Separation: 0.05999999865889549
|
||||
Stereo Focal Distance: 1
|
||||
Swap Stereo Eyes: false
|
||||
Value: false
|
||||
Field of View: 0.7853981852531433
|
||||
Focal Point:
|
||||
X: 0.023150593042373657
|
||||
Y: -0.03417559340596199
|
||||
Z: -2.6775524020195007e-09
|
||||
Focal Shape Fixed Size: false
|
||||
Focal Shape Size: 0.05000000074505806
|
||||
Invert Z Axis: false
|
||||
Name: Current View
|
||||
Near Clip Distance: 0.009999999776482582
|
||||
Pitch: 1.0303977727890015
|
||||
Target Frame: <Fixed Frame>
|
||||
Yaw: 0.26539814472198486
|
||||
Saved: ~
|
||||
Window Geometry:
|
||||
Displays:
|
||||
collapsed: false
|
||||
Height: 846
|
||||
Hide Left Dock: false
|
||||
Hide Right Dock: false
|
||||
QMainWindow State: 000000ff00000000fd00000004000000000000016a000002b0fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000002b0000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002b0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d000002b0000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b0000003bc00fffffffb0000000800540069006d0065010000000000000450000000000000000000000340000002b000000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
|
||||
Selection:
|
||||
collapsed: false
|
||||
Time:
|
||||
collapsed: false
|
||||
Tool Properties:
|
||||
collapsed: false
|
||||
Views:
|
||||
collapsed: false
|
||||
Width: 1200
|
||||
X: 2125
|
||||
Y: 0
|
||||
26
Controllers/Packages/cititruck_description/urdf/cititruck.urdf.xacro
Executable file
26
Controllers/Packages/cititruck_description/urdf/cititruck.urdf.xacro
Executable file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot name="cititruck" xmlns:xacro="http://ros.org/wiki/xacro" >
|
||||
|
||||
<!-- cititruck base -->
|
||||
<xacro:include filename="$(find cititruck_description)/urdf/include/cititruck_v1.urdf.xacro" />
|
||||
<xacro:include filename="$(find cititruck_description)/urdf/include/common.gazebo.xacro" />
|
||||
|
||||
<xacro:arg name="tf_prefix" default="" />
|
||||
<xacro:property name="tf_prefix_" value="$(arg tf_prefix)" />
|
||||
<xacro:if value="${tf_prefix_ == ''}">
|
||||
<xacro:property name="prefix" value="" />
|
||||
</xacro:if>
|
||||
<xacro:unless value="${tf_prefix_ == ''}">
|
||||
<xacro:property name="prefix" value="${tf_prefix_}/" />
|
||||
</xacro:unless>
|
||||
|
||||
<xacro:cititruck prefix="${prefix}" />
|
||||
<xacro:controller_plugin_gazebo robot_namespace=""/>
|
||||
|
||||
<!-- instead of the controller_plugin_gazebo, you can use the steerdrive controller like this: -->
|
||||
<!-- <xacro:steer_controller_plugin_gazebo
|
||||
prefix="${prefix}"
|
||||
steer_joint = "base2steer_joint"
|
||||
steerdrive_wheel_joint = "steer2sd_wheel_joint"
|
||||
wheel_radius = "0.105"/> -->
|
||||
</robot>
|
||||
@@ -0,0 +1,3 @@
|
||||
rosrun xacro xacro cititruck.xacro > /tmp/old.xml
|
||||
rosrun xacro xacro --inorder cititruck.xacro > /tmp/new.xml
|
||||
diff /tmp/old.xml /tmp/new.xml
|
||||
74
Controllers/Packages/cititruck_description/urdf/include/cititruck.gazebo
Executable file
74
Controllers/Packages/cititruck_description/urdf/include/cititruck.gazebo
Executable file
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://ros.org/wiki/xacro">
|
||||
|
||||
<!-- Arguments used in cititruck.gazebo -->
|
||||
<xacro:arg name="controller_prefix" default=""/>
|
||||
<xacro:arg name="sensor_prefix" default=""/>
|
||||
<xacro:arg name="sick_name" default="safety"/>
|
||||
<xacro:arg name="ls2000_name" default="nav"/>
|
||||
<xacro:arg name="kinect2_name" default=""/>
|
||||
<xacro:arg name="kinect1_name" default="kinect"/>
|
||||
<xacro:arg name="use_gpu" default="true"/>
|
||||
|
||||
<!-- ros_control plugin -->
|
||||
<gazebo>
|
||||
<plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
|
||||
<robotNamespace>/cititruck</robotNamespace>
|
||||
</plugin>
|
||||
</gazebo>
|
||||
|
||||
<gazebo>
|
||||
<plugin name="steer_drive_controller" filename="libgazebo_ros_steer_drive.so">
|
||||
<legacyMode>false</legacyMode>
|
||||
<alwaysOn>true</alwaysOn>
|
||||
<updateRate>100</updateRate>
|
||||
<steerJoint>base2steer_joint</steerJoint>
|
||||
<driveJoint>steer2sd_wheel_joint</driveJoint>
|
||||
<fixedWheelLeftJoint>base2fixed_left_wheel_joint</fixedWheelLeftJoint>
|
||||
<fixedWheelRightJoint>base2fixed_right_wheel_joint</fixedWheelRightJoint>
|
||||
|
||||
<wheelDiameter>0.16</wheelDiameter>
|
||||
<steeringFixWheelDistanceX>1.190</steeringFixWheelDistanceX>
|
||||
<steeringFixWheelDistanceY>0.0</steeringFixWheelDistanceY>
|
||||
|
||||
<steerTorque>1000</steerTorque>
|
||||
<driveTorque>1000</driveTorque>
|
||||
|
||||
<commandTopic>$(arg controller_prefix)cmd_vel</commandTopic>
|
||||
<odometryTopic>odom</odometryTopic>
|
||||
<odometryFrame>/world</odometryFrame>
|
||||
<robotBaseFrame>base_footprint</robotBaseFrame>
|
||||
|
||||
<odomEncSteeringAngleOffset>0.01</odomEncSteeringAngleOffset>
|
||||
|
||||
<!--odometrySource>encoder</odometrySource-->
|
||||
|
||||
<publishWheelJointState>true</publishWheelJointState>
|
||||
</plugin>
|
||||
</gazebo>
|
||||
|
||||
<gazebo reference="base_link" >
|
||||
<material>Gazebo/Red</material>
|
||||
</gazebo>
|
||||
|
||||
<gazebo reference="left_fork" >
|
||||
<material>Gazebo/Grey</material>
|
||||
</gazebo>
|
||||
|
||||
<gazebo reference="right_fork" >
|
||||
<material>Gazebo/Grey</material>
|
||||
</gazebo>
|
||||
|
||||
<gazebo reference="fixed_left_wheel_link" >
|
||||
<material>Gazebo/Black</material>
|
||||
</gazebo>
|
||||
|
||||
<gazebo reference="fixed_right_wheel_link" >
|
||||
<material>Gazebo/Black</material>
|
||||
</gazebo>
|
||||
|
||||
<gazebo reference="steerdrive_wheel_link" >
|
||||
<material>Gazebo/Black</material>
|
||||
</gazebo>
|
||||
|
||||
</robot>
|
||||
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://ros.org/wiki/xacro">
|
||||
|
||||
<xacro:macro name="steer_controller_plugin_gazebo" params="prefix steer_joint steerdrive_wheel_joint wheel_radius">
|
||||
<gazebo>
|
||||
<plugin name="steer_drive_controller" filename="libgazebo_ros_steer_drive.so">
|
||||
<alwaysOn>true</alwaysOn>
|
||||
<updateRate>100</updateRate>
|
||||
<steerJoint>${prefix}base2steer_joint</steerJoint>
|
||||
<driveJoint>${prefix}steer2sd_wheel_joint</driveJoint>
|
||||
<fixedWheelLeftJoint>${prefix}fixed_left_wheel_joint</fixedWheelLeftJoint>
|
||||
<fixedWheelRightJoint>${prefix}fixed_right_wheel_joint</fixedWheelRightJoint>
|
||||
|
||||
<wheelDiameter>1.05</wheelDiameter>
|
||||
<steeringFixWheelDistanceX>1.1</steeringFixWheelDistanceX>
|
||||
<steeringFixWheelDistanceY>0.0</steeringFixWheelDistanceY>
|
||||
|
||||
<steerTorque>1000</steerTorque>
|
||||
<driveTorque>1000</driveTorque>
|
||||
|
||||
<commandTopic>mobile_base_controller/cmd_vel</commandTopic>
|
||||
<odometryTopic>mobile_base_controller/odom</odometryTopic>
|
||||
<odometryFrame>world</odometryFrame>
|
||||
<robotBaseFrame>base_footprint</robotBaseFrame>
|
||||
|
||||
<odomEncSteeringAngleOffset>0.01</odomEncSteeringAngleOffset>
|
||||
|
||||
<!--odometrySource>encoder</odometrySource-->
|
||||
<publishWheelTF>false</publishWheelTF>
|
||||
<publishWheelJointState>true</publishWheelJointState>
|
||||
|
||||
</plugin>
|
||||
</gazebo>
|
||||
</xacro:macro>
|
||||
|
||||
<xacro:macro name="set_wheel_friction" params="link friction">
|
||||
<gazebo reference="${link}">
|
||||
<mu1 value="${friction}"/>
|
||||
<mu2 value="${friction}"/>
|
||||
<kp value="10000000.0"/>
|
||||
<kd value="1.0"/>
|
||||
<minDepth>0.01</minDepth>
|
||||
</gazebo>
|
||||
</xacro:macro>
|
||||
|
||||
<xacro:macro name="set_all_wheel_frictions" params="prefix">
|
||||
<xacro:set_wheel_friction link="${prefix}steer_link" friction="200"/>
|
||||
<xacro:set_wheel_friction link="${prefix}drive_wheel_link" friction="200"/>
|
||||
<xacro:set_wheel_friction link="${prefix}fixed_wheel_left_link" friction="1"/>
|
||||
<xacro:set_wheel_friction link="${prefix}fixed_wheel_right_link" friction="1"/>
|
||||
</xacro:macro>
|
||||
|
||||
<xacro:macro name="p3d_base_controller" params="prefix">
|
||||
<gazebo>
|
||||
<plugin name="p3d_base_controller" filename="libgazebo_ros_p3d.so">
|
||||
<alwaysOn>true</alwaysOn>
|
||||
<updateRate>50.0</updateRate>
|
||||
<bodyName>${prefix}base_footprint</bodyName>
|
||||
<topicName>base_pose_ground_truth</topicName>
|
||||
<gaussianNoise>0.01</gaussianNoise>
|
||||
<frameName>map</frameName>
|
||||
<xyzOffsets>0 0 0</xyzOffsets>
|
||||
<rpyOffsets>0 0 0</rpyOffsets>
|
||||
</plugin>
|
||||
</gazebo>
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://ros.org/wiki/xacro">
|
||||
|
||||
<xacro:macro name="cititruck_wheel_transmission" params="prefix locationprefix">
|
||||
<transmission name="${prefix}${locationprefix}_wheel_trans">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="${prefix}${locationprefix}_wheel_joint">
|
||||
<hardwareInterface>hardware_interface/VelocityJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="${prefix}${locationprefix}_wheel_motor">
|
||||
<hardwareInterface>hardware_interface/VelocityJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
</xacro:macro>
|
||||
|
||||
<xacro:macro name="cititruck_steer_transmission" params="prefix locationprefix">
|
||||
<transmission name="${prefix}${locationprefix}_wheel_trans">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="${prefix}${locationprefix}_joint">
|
||||
<hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="${prefix}${locationprefix}_motor">
|
||||
<hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
</xacro:macro>
|
||||
|
||||
</robot>
|
||||
251
Controllers/Packages/cititruck_description/urdf/include/cititruck_v1.urdf.xacro
Executable file
251
Controllers/Packages/cititruck_description/urdf/include/cititruck_v1.urdf.xacro
Executable file
@@ -0,0 +1,251 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://ros.org/wiki/xacro">
|
||||
<xacro:arg name="robot_type" default="demo" />
|
||||
<xacro:property name="robot_type" value="$(arg robot_type)" /> <!-- necessary because args cannot be accessed inside ${} expressions -->
|
||||
|
||||
<xacro:include filename="$(find cititruck_description)/urdf/include/common_properties.urdf.xacro" />
|
||||
<xacro:include filename="$(find cititruck_description)/urdf/include/cititruck.gazebo.xacro" />
|
||||
<xacro:include filename="$(find cititruck_description)/urdf/include/cititruck.transmission.xacro" />
|
||||
<xacro:include filename="$(find cititruck_description)/urdf/include/imu.gazebo.urdf.xacro" />
|
||||
<xacro:include filename="$(find cititruck_description)/urdf/include/sick_s300.urdf.xacro" />
|
||||
|
||||
<xacro:property name="deg_to_rad" value="0.017453293" />
|
||||
|
||||
<!-- The inertia for the MiR platform is intentionally chosen to be smaller than
|
||||
the bounding box and also shifted a bit to the back, because most of the mass
|
||||
is in the lower center back (because of the batteries). -->
|
||||
|
||||
<xacro:macro name="actuated_wheel" params="prefix locationprefix locationright">
|
||||
<joint name="fixed_${locationprefix}_wheel_joint" type="continuous">
|
||||
<parent link="${prefix}base_link"/>
|
||||
<child link="${prefix}fixed_wheel_${locationprefix}_link"/>
|
||||
<origin xyz="${locationright}" rpy="0 0 0" />
|
||||
<axis xyz="0 1 0" />
|
||||
</joint>
|
||||
|
||||
<link name="${prefix}fixed_wheel_${locationprefix}_link">
|
||||
<inertial>
|
||||
<mass value="1"/>
|
||||
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01" />
|
||||
<origin/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="1.57 0 0" />
|
||||
<geometry>
|
||||
<cylinder radius="0.05" length="0.08" />
|
||||
</geometry>
|
||||
<xacro:insert_block name="material_black" />
|
||||
</visual>
|
||||
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="${pi/2} 0 0" />
|
||||
<geometry>
|
||||
<cylinder radius="0.04" length="0.08" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<gazebo reference="${prefix}fixed_wheel_${locationprefix}_link">
|
||||
<material>Gazebo/FlatBlack</material>
|
||||
</gazebo>
|
||||
</xacro:macro>
|
||||
|
||||
<xacro:macro name="fork" params="locationprefix locationright">
|
||||
<xacro:box_inertial mass="5" x="1" y="0" z="0">
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
</xacro:box_inertial>
|
||||
<visual>
|
||||
<origin xyz="${locationright}" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<box size="1.35 0.15 0.04" />
|
||||
</geometry>
|
||||
<xacro:insert_block name="material_grey" />
|
||||
</visual>
|
||||
</xacro:macro>
|
||||
|
||||
<!-- robot -->
|
||||
<xacro:macro name="cititruck" params="prefix">
|
||||
|
||||
<link name="${prefix}base_footprint" />
|
||||
|
||||
<joint name="${prefix}base_joint" type="fixed">
|
||||
<parent link="${prefix}base_footprint" />
|
||||
<child link="${prefix}base_link" />
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
</joint>
|
||||
|
||||
<!-- Base Link -->
|
||||
<link name="${prefix}base_link">
|
||||
<xacro:box_inertial mass="30" x="1" y="0" z="0">
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
</xacro:box_inertial>
|
||||
<visual>
|
||||
<origin xyz="${1.3268 - 0.21 + 0.4/2} 0 ${0.8/2 + 0.3337 }" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<box size="0.40 0.65 0.80" />
|
||||
</geometry>
|
||||
<xacro:insert_block name="material_white" />
|
||||
</visual>
|
||||
|
||||
<visual>
|
||||
<origin xyz="${1.3268 - 0.21 + 0.4/2} 0 ${0.3 - 0.01}" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<box size="0.40 0.65 0.02" />
|
||||
</geometry>
|
||||
<xacro:insert_block name="material_grey" />
|
||||
</visual>
|
||||
|
||||
<visual>
|
||||
<origin xyz="${1.3268 - 0.21 + 0.02/2} 0 ${0.3 - (0.3 - 0.01)/2}" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<box size="0.02 0.65 ${0.3 - 0.01}" />
|
||||
</geometry>
|
||||
<xacro:insert_block name="material_grey" />
|
||||
</visual>
|
||||
|
||||
<collision>
|
||||
<origin xyz="${1.3268 - 0.21 + 0.4/2} 0 ${0.8/2 + 0.3337 }" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<box size="0.40 0.70 0.80" />
|
||||
</geometry>
|
||||
</collision>
|
||||
|
||||
<xacro:fork locationprefix="left" locationright="${1.12 - 1.35/2} 0.205 ${0.05/2 + 0.3 - 0.29}"/>
|
||||
<xacro:fork locationprefix="right" locationright="${1.12 - 1.35/2} -0.205 ${0.05/2 + 0.3 - 0.29}"/>
|
||||
|
||||
</link>
|
||||
|
||||
<gazebo reference="${prefix}base_link">
|
||||
<material>Gazebo/White</material>
|
||||
</gazebo>
|
||||
|
||||
<!-- <xacro:fork prefix="${prefix}" locationprefix="left" parent="base_link" locationright="${0.9 - 1.15/2} 0.205 ${0.05/2 + 0.3 - 0.29}"/> -->
|
||||
<!-- <xacro:fork prefix="${prefix}" locationprefix="right" parent="base_link" locationright="${0.9 - 1.15/2} -0.205 ${0.05/2 + 0.3 - 0.29}"/> -->
|
||||
|
||||
<joint name="${prefix}base2steer_joint" type="revolute">
|
||||
<parent link="${prefix}base_link"/>
|
||||
<child link="${prefix}steer_link"/>
|
||||
<limit effort="10000.0" lower="-1.8" upper="1.8" velocity="2500"/>
|
||||
<origin xyz="1.3268 0 0.125" rpy="0 0 0" />
|
||||
<axis xyz="0 0 1" />
|
||||
</joint>
|
||||
<xacro:cititruck_steer_transmission prefix="${prefix}" locationprefix="base2steer"/>
|
||||
|
||||
<link name="${prefix}steer_link">
|
||||
<inertial>
|
||||
<mass value="45"/>
|
||||
<inertia ixx="0.001" ixy="0" ixz="0" iyy="0.001" iyz="0" izz="0.001" />
|
||||
<origin/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="1.57 0 0" />
|
||||
<geometry>
|
||||
<cylinder radius="0.09" length="0.1" />
|
||||
</geometry>
|
||||
<xacro:insert_block name="material_dark_grey" />
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="1.57 0 0" />
|
||||
<geometry>
|
||||
<cylinder radius="0.09" length="0.1" />
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<gazebo reference="${prefix}steer_link" >
|
||||
<material>Gazebo/FlatBlack</material>
|
||||
</gazebo>
|
||||
|
||||
<link name="${prefix}steer_link_2" />
|
||||
|
||||
<joint name="${prefix}steer2steer_2_joint" type="fixed">
|
||||
<parent link="${prefix}steer_link" />
|
||||
<child link="${prefix}steer_link_2" />
|
||||
<origin xyz="0 0 1.02" rpy="0 0 0" />
|
||||
</joint>
|
||||
|
||||
<joint name="${prefix}steer2sd_wheel_joint" type="continuous">
|
||||
<parent link="${prefix}steer_link"/>
|
||||
<child link="${prefix}drive_wheel_link"/>
|
||||
<limit effort="10000.0" velocity="100"/>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<axis xyz="0 1 0" />
|
||||
</joint>
|
||||
<xacro:cititruck_wheel_transmission prefix="${prefix}" locationprefix="steer2sd"/>
|
||||
|
||||
<link name="${prefix}drive_wheel_link">
|
||||
<inertial>
|
||||
<mass value="10"/>
|
||||
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01" />
|
||||
<origin/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="1.57 0 0" />
|
||||
<geometry>
|
||||
<cylinder radius="0.125" length="0.08" />
|
||||
</geometry>
|
||||
<xacro:insert_block name="material_yellow" />
|
||||
</visual>
|
||||
|
||||
<collision>
|
||||
<origin xyz="0 0 0" rpy="1.57 0 0" />
|
||||
<geometry>
|
||||
<cylinder radius="0.125" length="0.08" />
|
||||
</geometry>
|
||||
</collision>
|
||||
|
||||
</link>
|
||||
|
||||
<gazebo reference="${prefix}drive_wheel_link" >
|
||||
<material>Gazebo/FlatBlack</material>
|
||||
</gazebo>
|
||||
|
||||
<xacro:actuated_wheel prefix="${prefix}" locationprefix="left" locationright="0.0 0.205 ${0.05}"/>
|
||||
<xacro:actuated_wheel prefix="${prefix}" locationprefix="right" locationright="0.0 -0.205 ${0.05}" />
|
||||
|
||||
<!-- IMU -->
|
||||
<joint name="${prefix}base_link_to_imu_joint" type="fixed">
|
||||
<parent link="${prefix}base_link" />
|
||||
<child link="${prefix}imu_link" />
|
||||
<origin xyz="${1.3268 -0.15} 0.0 0.3" rpy="0 0 0" /> <!-- same as real MiR -->
|
||||
</joint>
|
||||
|
||||
<link name="${prefix}imu_link" />
|
||||
|
||||
<xacro:imu_gazebo link="${prefix}imu_link" imu_topic="imu_data" update_rate="50.0" />
|
||||
|
||||
<!-- Create an alias for imu_link. This is necessary because the real MiR's
|
||||
TF has imu_link, but the imu_data topic is published in the imu_frame
|
||||
frame. -->
|
||||
<joint name="${prefix}imu_link_to_imu_frame_joint" type="fixed">
|
||||
<parent link="${prefix}imu_link" />
|
||||
<child link="${prefix}imu_frame" />
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
</joint>
|
||||
|
||||
<link name="${prefix}imu_frame" />
|
||||
|
||||
|
||||
<!-- Laser scanners -->
|
||||
<joint name="${prefix}base_link_to_left_laser_joint" type="fixed">
|
||||
<parent link="${prefix}base_link" />
|
||||
<child link="${prefix}left_laser_link" />
|
||||
<origin xyz="1.5447 0.2953 0.1743" rpy="0.0 0.0 ${0.25 * pi}" />
|
||||
</joint>
|
||||
<xacro:sick_s300 prefix="${prefix}" link="left_laser_link" topic="l_scan" />
|
||||
|
||||
<joint name="${prefix}base_link_to_right_laser_joint" type="fixed">
|
||||
<parent link="${prefix}base_link" />
|
||||
<child link="${prefix}right_laser_link" />
|
||||
<origin xyz="1.5447 -0.2953 0.1743" rpy="0.0 0.0 ${-0.25 * pi}" />
|
||||
</joint>
|
||||
|
||||
<xacro:sick_s300 prefix="${prefix}" link="right_laser_link" topic="r_scan" />
|
||||
|
||||
<!-- set the gazebo friction parameters for the wheels -->
|
||||
<xacro:set_all_wheel_frictions prefix="${prefix}"/>
|
||||
|
||||
<xacro:p3d_base_controller prefix="${prefix}" />
|
||||
</xacro:macro>
|
||||
|
||||
</robot>
|
||||
15
Controllers/Packages/cititruck_description/urdf/include/common.gazebo.xacro
Executable file
15
Controllers/Packages/cititruck_description/urdf/include/common.gazebo.xacro
Executable file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://ros.org/wiki/xacro">
|
||||
|
||||
<xacro:macro name="controller_plugin_gazebo" params="robot_namespace">
|
||||
<gazebo>
|
||||
<plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
|
||||
<xacro:unless value="${robot_namespace == ''}">
|
||||
<robotNamespace>${robot_namespace}</robotNamespace>
|
||||
</xacro:unless>
|
||||
<controlPeriod>0.001</controlPeriod>
|
||||
<legacyModeNS>false</legacyModeNS>
|
||||
</plugin>
|
||||
</gazebo>
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,84 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!--
|
||||
Various useful properties such as constants and materials
|
||||
-->
|
||||
<robot name="xacro_properties" xmlns:xacro="http://ros.org/wiki/xacro">
|
||||
<!-- #################### RViz materials #################### -->
|
||||
<xacro:property name="material_white">
|
||||
<material name="white">
|
||||
<color rgba="1 1 1 1"/>
|
||||
</material>
|
||||
</xacro:property>
|
||||
<xacro:property name="material_yellow">
|
||||
<material name="yellow">
|
||||
<color rgba="${255/255} ${226/255} ${0/255} 1"/>
|
||||
</material>
|
||||
</xacro:property>
|
||||
<xacro:property name="material_almost_white">
|
||||
<material name="almost_white">
|
||||
<color rgba="0.9 0.9 0.9 1" />
|
||||
</material>
|
||||
</xacro:property>
|
||||
<xacro:property name="material_grey">
|
||||
<material name="grey">
|
||||
<color rgba="0.5 0.5 0.5 1"/>
|
||||
</material>
|
||||
</xacro:property>
|
||||
<xacro:property name="material_light_grey">
|
||||
<material name="light_grey">
|
||||
<color rgba="0.6 0.6 0.6 1"/>
|
||||
</material>
|
||||
</xacro:property>
|
||||
<xacro:property name="material_dark_grey">
|
||||
<material name="dark_grey">
|
||||
<color rgba="0.3 0.3 0.3 1"/>
|
||||
</material>
|
||||
</xacro:property>
|
||||
<xacro:property name="material_black">
|
||||
<material name="black">
|
||||
<color rgba="0.1 0.1 0.1 1"/>
|
||||
</material>
|
||||
</xacro:property>
|
||||
<xacro:property name="material_aluminum">
|
||||
<material name="aluminum">
|
||||
<color rgba="0.8 0.8 0.8 1" />
|
||||
</material>
|
||||
</xacro:property>
|
||||
<xacro:property name="material_silver">
|
||||
<material name="silver">
|
||||
<color rgba="0.79 0.82 0.93 1" />
|
||||
</material>
|
||||
</xacro:property>
|
||||
|
||||
<!-- #################### inertials with origin #################### -->
|
||||
<!-- see https://secure.wikimedia.org/wikipedia/en/wiki/List_of_moment_of_inertia_tensors -->
|
||||
<xacro:macro name="sphere_inertial" params="radius mass *origin">
|
||||
<inertial>
|
||||
<mass value="${mass}" />
|
||||
<xacro:insert_block name="origin" />
|
||||
<inertia ixx="${0.4 * mass * radius * radius}" ixy="0.0" ixz="0.0"
|
||||
iyy="${0.4 * mass * radius * radius}" iyz="0.0"
|
||||
izz="${0.4 * mass * radius * radius}" />
|
||||
</inertial>
|
||||
</xacro:macro>
|
||||
|
||||
<xacro:macro name="cylinder_inertial" params="radius length mass *origin">
|
||||
<inertial>
|
||||
<mass value="${mass}" />
|
||||
<xacro:insert_block name="origin" />
|
||||
<inertia ixx="${0.0833333 * mass * (3 * radius * radius + length * length)}" ixy="0.0" ixz="0.0"
|
||||
iyy="${0.0833333 * mass * (3 * radius * radius + length * length)}" iyz="0.0"
|
||||
izz="${0.5 * mass * radius * radius}" />
|
||||
</inertial>
|
||||
</xacro:macro>
|
||||
|
||||
<xacro:macro name="box_inertial" params="x y z mass *origin">
|
||||
<inertial>
|
||||
<mass value="${mass}" />
|
||||
<xacro:insert_block name="origin" />
|
||||
<inertia ixx="${0.0833333 * mass * (y*y + z*z)}" ixy="0.0" ixz="0.0"
|
||||
iyy="${0.0833333 * mass * (x*x + z*z)}" iyz="0.0"
|
||||
izz="${0.0833333 * mass * (x*x + y*y)}" />
|
||||
</inertial>
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<robot xmlns:xacro="http://ros.org/wiki/xacro">
|
||||
<!-- If tf_prefix is given, use "frame tf_prefix/imu_frame", else "imu_frame" -->
|
||||
<xacro:arg name="tf_prefix" default="" />
|
||||
<xacro:property name="tf_prefix" value="$(arg tf_prefix)" />
|
||||
<xacro:if value="${tf_prefix == ''}">
|
||||
<xacro:property name="imu_frame" value="imu_frame" />
|
||||
</xacro:if>
|
||||
<xacro:unless value="${tf_prefix == ''}">
|
||||
<xacro:property name="imu_frame" value="$(arg tf_prefix)/imu_frame" />
|
||||
</xacro:unless>
|
||||
|
||||
|
||||
<xacro:macro name="imu_gazebo" params="link imu_topic update_rate">
|
||||
<gazebo>
|
||||
<plugin name="imu_plugin" filename="libhector_gazebo_ros_imu.so">
|
||||
<updateRate>${update_rate}</updateRate>
|
||||
<bodyName>${link}</bodyName>
|
||||
<frameId>${imu_frame}</frameId> <!-- from real MiR -->
|
||||
<topicName>${imu_topic}</topicName>
|
||||
<accelDrift>0.0 0.0 0.0</accelDrift>
|
||||
<accelGaussianNoise>${sqrt(5e-05)} ${sqrt(0.0001)} ${sqrt(0.00013)}</accelGaussianNoise> <!-- real MiR linear_acceleration_covariance: [5e-05, 0.0, 0.0, 0.0, 0.0001, 0.0, 0.0, 0.0, 0.00013] -->
|
||||
<rateDrift>0.0 0.0 0.0</rateDrift>
|
||||
<rateGaussianNoise>${sqrt(8e-06)} ${sqrt(8e-06)} ${sqrt(3e-07)}</rateGaussianNoise> <!-- real MiR angular_velocity_covariance: [8e-06, 0.0, 0.0, 0.0, 8e-06, 0.0, 0.0, 0.0, 3e-07] -->
|
||||
<yawDrift>0.0</yawDrift>
|
||||
<yawGaussianNoise>${sqrt(0.1)}</yawGaussianNoise> <!-- real MiR orientation_covariance: [0.1, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.1] -->
|
||||
</plugin>
|
||||
</gazebo>
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
40
Controllers/Packages/cititruck_description/urdf/include/materials.xacro
Executable file
40
Controllers/Packages/cititruck_description/urdf/include/materials.xacro
Executable file
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot>
|
||||
|
||||
<material name="black">
|
||||
<color rgba="0.0 0.0 0.0 1.0"/>
|
||||
</material>
|
||||
|
||||
<material name="blue">
|
||||
<color rgba="0.0 0.0 0.8 1.0"/>
|
||||
</material>
|
||||
|
||||
<material name="green">
|
||||
<color rgba="0.0 0.8 0.0 1.0"/>
|
||||
</material>
|
||||
|
||||
<material name="grey">
|
||||
<color rgba="0.2 0.2 0.2 1.0"/>
|
||||
</material>
|
||||
|
||||
<material name="grey2">
|
||||
<color rgba="0.4 0.4 0.4 1.0"/>
|
||||
</material>
|
||||
|
||||
<material name="orange">
|
||||
<color rgba="${255/255} ${108/255} ${10/255} 1.0"/>
|
||||
</material>
|
||||
|
||||
<material name="brown">
|
||||
<color rgba="${222/255} ${207/255} ${195/255} 1.0"/>
|
||||
</material>
|
||||
|
||||
<material name="red">
|
||||
<color rgba="0.8 0.0 0.0 1.0"/>
|
||||
</material>
|
||||
|
||||
<material name="white">
|
||||
<color rgba="1.0 1.0 1.0 1.0"/>
|
||||
</material>
|
||||
|
||||
</robot>
|
||||
@@ -0,0 +1,185 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!--
|
||||
# (c) 2018 EU H2020 Project ILIAD, iliad-project.eu
|
||||
# The following code in this file is licensed under the MIT license:
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- This xacro contains a macro for spawning a sensor calibration assembly inside a robot's URDF file.
|
||||
The idea is that on the final robot, the assembly just consists of two fixed joints, which have the origin and rpy values set properly
|
||||
to reflect the sensor's extrinsic calibration values.
|
||||
|
||||
Instead, during the calibration phase, these two fixed joints are replaced by a chain of nine prismatic+revolute joints, such that
|
||||
each dimension can be tweaked individually using the sliders in the joint state publisher GUI.
|
||||
|
||||
Once calibrated, calibration values should be saved via save_calibration.py.
|
||||
-->
|
||||
|
||||
<robot name="sensor_calibration_assembly_macro" xmlns:xacro="http://ros.org/wiki/xacro">
|
||||
|
||||
<!-- Command-line arguments -->
|
||||
<xacro:arg name="use_fixed_joints" default="true"/> <!-- Set to false for calibration -->
|
||||
<xacro:arg name="calib_file" default=""/> <!-- Same file name should be passed to joint state publisher. Should be set up like this:
|
||||
zeros:
|
||||
velodyne_calib_pre_x: 0.1
|
||||
velodyne_calib_pre_y: -0.2
|
||||
...
|
||||
velodyne_calib_roll: 0.10
|
||||
velodyne_calib_pitch: -0.03
|
||||
..
|
||||
velodyne_calib_post_x: 0.05
|
||||
-->
|
||||
|
||||
<!-- Helper macro -->
|
||||
<xacro:macro name="simple_link" params="name">
|
||||
<link name="${name}">
|
||||
<inertia ixx="3.64583333333e-07" ixy="0.0" ixz="0.0" iyy="3.64583333333e-07" iyz="0.0" izz="3.125e-07"/>
|
||||
</link>
|
||||
</xacro:macro>
|
||||
|
||||
<!-- Invoke this macro to create a sensor calibration assembly (XYZ offset + rotation + XYZ post-offset). -->
|
||||
<xacro:macro name="sensor_calibration_assembly" params="sensor_id parent_link create_final_link:=true final_link_suffix:='link'">
|
||||
|
||||
<!-- Lighter version with a single fixed pre-calibrated joint per sensor (for use in Gazebo and on the actual robot) -->
|
||||
<xacro:if value="$(arg use_fixed_joints)">
|
||||
<!-- Load resulting transforms exported by save_calibration.py, and use them for the fixed offset and rpy -->
|
||||
<xacro:property name="all_sensor_tfs" value="${load_yaml('$(arg calib_file)').get('resulting_transforms', dict())}"/>
|
||||
<xacro:property name="sensor_tf" value="${all_sensor_tfs.get(sensor_id, [0.0]*6)}"/>
|
||||
<xacro:property name="xyz" value="${' '.join(str(x) for x in sensor_tf[0:3] )}"/>
|
||||
<xacro:property name="rpy" value="${' '.join(str(x) for x in sensor_tf[3:6] )}"/>
|
||||
|
||||
<!-- Resulting transform -->
|
||||
<joint name="${sensor_id}_resulting_transform_joint" type="fixed">
|
||||
<origin xyz="${xyz}" rpy="${rpy}"/>
|
||||
<parent link="${parent_link}"/>
|
||||
<child link="${sensor_id}_${final_link_suffix}"/>
|
||||
</joint>
|
||||
</xacro:if>
|
||||
|
||||
<!-- Version with movable joints (only for calib use with joint state publisher GUI) -->
|
||||
<xacro:unless value="$(arg use_fixed_joints)">
|
||||
<!-- Dynamic joint limits -->
|
||||
<xacro:property name="max_trans" value="1.0"/>
|
||||
<xacro:property name="max_rot" value="3.14159"/>
|
||||
|
||||
<!-- Zero values will be loaded by joint state publisher! Joints should be 1D because only 1D values are supported in the GUI -->
|
||||
|
||||
<!-- Initial dummy link (zero transform) that starts the chain -->
|
||||
<!-- Do not remove, required for automatic saving! -->
|
||||
<simple_link name="${sensor_id}_calib_start_link"/>
|
||||
<joint name="${sensor_id}_calib_start" type="fixed">
|
||||
<parent link="${parent_link}"/>
|
||||
<child link="${sensor_id}_calib_start_link"/>
|
||||
</joint>
|
||||
|
||||
<!-- Pre-translation -->
|
||||
<simple_link name="${sensor_id}_calib_pre_x_link"/>
|
||||
<joint name="${sensor_id}_calib_pre_x" type="prismatic">
|
||||
<axis xyz="1 0 0"/>
|
||||
<limit lower="-${max_trans}" upper="+${max_trans}" effort="1" velocity="1"/>
|
||||
<parent link="${sensor_id}_calib_start_link"/>
|
||||
<child link="${sensor_id}_calib_pre_x_link"/>
|
||||
</joint>
|
||||
|
||||
<simple_link name="${sensor_id}_calib_pre_y_link"/>
|
||||
<joint name="${sensor_id}_calib_pre_y" type="prismatic">
|
||||
<axis xyz="0 1 0"/>
|
||||
<limit lower="-${max_trans}" upper="+${max_trans}" effort="1" velocity="1"/>
|
||||
<parent link="${sensor_id}_calib_pre_x_link"/>
|
||||
<child link="${sensor_id}_calib_pre_y_link"/>
|
||||
</joint>
|
||||
|
||||
<simple_link name="${sensor_id}_calib_pre_z_link"/>
|
||||
<joint name="${sensor_id}_calib_pre_z" type="prismatic">
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit lower="-${max_trans}" upper="+${max_trans}" effort="1" velocity="1"/>
|
||||
<parent link="${sensor_id}_calib_pre_y_link"/>
|
||||
<child link="${sensor_id}_calib_pre_z_link"/>
|
||||
</joint>
|
||||
|
||||
<!-- Rotation -->
|
||||
<simple_link name="${sensor_id}_calib_roll_link"/>
|
||||
<joint name="${sensor_id}_calib_roll" type="revolute">
|
||||
<axis xyz="1 0 0"/>
|
||||
<limit lower="-${max_rot}" upper="+${max_rot}" effort="1" velocity="1"/>
|
||||
<parent link="${sensor_id}_calib_pre_z_link"/>
|
||||
<child link="${sensor_id}_calib_roll_link"/>
|
||||
</joint>
|
||||
|
||||
<simple_link name="${sensor_id}_calib_pitch_link"/>
|
||||
<joint name="${sensor_id}_calib_pitch" type="revolute">
|
||||
<axis xyz="0 1 0"/>
|
||||
<limit lower="-${max_rot}" upper="+${max_rot}" effort="1" velocity="1"/>
|
||||
<parent link="${sensor_id}_calib_roll_link"/>
|
||||
<child link="${sensor_id}_calib_pitch_link"/>
|
||||
</joint>
|
||||
|
||||
<simple_link name="${sensor_id}_calib_yaw_link"/>
|
||||
<joint name="${sensor_id}_calib_yaw" type="revolute">
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit lower="-${max_rot}" upper="+${max_rot}" effort="1" velocity="1"/>
|
||||
<parent link="${sensor_id}_calib_pitch_link"/>
|
||||
<child link="${sensor_id}_calib_yaw_link"/>
|
||||
</joint>
|
||||
|
||||
<!-- Post-translation (after rotation) -->
|
||||
<simple_link name="${sensor_id}_calib_post_x_link"/>
|
||||
<joint name="${sensor_id}_calib_post_x" type="prismatic">
|
||||
<axis xyz="1 0 0"/>
|
||||
<limit lower="-${max_trans}" upper="+${max_trans}" effort="1" velocity="1"/>
|
||||
<parent link="${sensor_id}_calib_yaw_link"/>
|
||||
<child link="${sensor_id}_calib_post_x_link"/>
|
||||
</joint>
|
||||
|
||||
<simple_link name="${sensor_id}_calib_post_y_link"/>
|
||||
<joint name="${sensor_id}_calib_post_y" type="prismatic">
|
||||
<axis xyz="0 1 0"/>
|
||||
<limit lower="-${max_trans}" upper="+${max_trans}" effort="1" velocity="1"/>
|
||||
<parent link="${sensor_id}_calib_post_x_link"/>
|
||||
<child link="${sensor_id}_calib_post_y_link"/>
|
||||
</joint>
|
||||
|
||||
<simple_link name="${sensor_id}_calib_post_z_link"/>
|
||||
<joint name="${sensor_id}_calib_post_z" type="prismatic">
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit lower="-${max_trans}" upper="+${max_trans}" effort="1" velocity="1"/>
|
||||
<parent link="${sensor_id}_calib_post_y_link"/>
|
||||
<child link="${sensor_id}_calib_post_z_link"/>
|
||||
</joint>
|
||||
|
||||
<!-- Final dummy link (zero transform) that ends the chain -->
|
||||
<!-- Do not remove, required for automatic saving! -->
|
||||
<joint name="${sensor_id}_calib_end_link" type="fixed">
|
||||
<parent link="${sensor_id}_calib_post_z_link"/>
|
||||
<child link="${sensor_id}_${final_link_suffix}"/>
|
||||
</joint>
|
||||
|
||||
<!-- End of version with movable joints for calib -->
|
||||
</xacro:unless>
|
||||
|
||||
<!-- Final link -->
|
||||
<xacro:if value="${create_final_link}">
|
||||
<simple_link name="${sensor_id}_${final_link_suffix}"/>
|
||||
</xacro:if>
|
||||
|
||||
</xacro:macro>
|
||||
|
||||
</robot>
|
||||
72
Controllers/Packages/cititruck_description/urdf/include/sick_s300.urdf.xacro
Executable file
72
Controllers/Packages/cititruck_description/urdf/include/sick_s300.urdf.xacro
Executable file
@@ -0,0 +1,72 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://ros.org/wiki/xacro">
|
||||
|
||||
<xacro:include filename="$(find cititruck_description)/urdf/include/common_properties.urdf.xacro" />
|
||||
|
||||
<xacro:property name="laser_x" value="0.156" />
|
||||
<xacro:property name="laser_y" value="0.155" />
|
||||
<xacro:property name="laser_z" value="0.185" />
|
||||
<xacro:property name="laser_mass" value="1.2" />
|
||||
|
||||
<xacro:macro name="sick_s300" params="link topic prefix">
|
||||
<link name="${prefix}${link}">
|
||||
<visual>
|
||||
<origin xyz="0.0 0.0 0.0" rpy="${pi} 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://cititruck_description/meshes/visual/sick_lms-100.stl" />
|
||||
</geometry>
|
||||
<!-- <xacro:insert_block name="material_yellow" /> -->
|
||||
<xacro:insert_block name="material_black" />
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0.0 0.0 0.0" rpy="${pi} 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://cititruck_description/meshes/visual/sick_lms-100.stl" />
|
||||
</geometry>
|
||||
</collision>
|
||||
<xacro:box_inertial x="${laser_x}" y="${laser_y}" z="${laser_z}" mass="${laser_mass}">
|
||||
<origin xyz="0 0 0" />
|
||||
</xacro:box_inertial>
|
||||
</link>
|
||||
|
||||
<gazebo reference="${prefix}${link}">
|
||||
<!-- <material value="Gazebo/Yellow" /> -->
|
||||
<material value="Gazebo/FlatBlack" />
|
||||
|
||||
<sensor type="ray" name="${prefix}${link}">
|
||||
<pose>0 0 0 0 0 0</pose>
|
||||
<visualize>false</visualize>
|
||||
<update_rate>12.5</update_rate>
|
||||
<ray>
|
||||
<scan>
|
||||
<horizontal>
|
||||
<samples>541</samples>
|
||||
<resolution>1</resolution> <!-- has to be 1; actual resolution will be computed from number of samples + min_angle/max_angle -->
|
||||
<!-- <min_angle>-2.35619449615</min_angle>
|
||||
<max_angle>2.35619449615</max_angle> -->
|
||||
<min_angle>-2.094395102</min_angle>
|
||||
<max_angle>2.181661565</max_angle>
|
||||
</horizontal>
|
||||
</scan>
|
||||
<range>
|
||||
<min>0.05</min>
|
||||
<max>29.0</max>
|
||||
<resolution>0.01</resolution>
|
||||
</range>
|
||||
<noise>
|
||||
<type>gaussian</type>
|
||||
<!-- Noise parameters based on published spec for S300 achieving
|
||||
"+-29mm" accuracy at range < 3m (~0.01 of the range) at
|
||||
1 sigma. -->
|
||||
<mean>0.0</mean>
|
||||
<stddev>0.01</stddev>
|
||||
</noise>
|
||||
</ray>
|
||||
<plugin name="gazebo_ros_${link}_controller" filename="libgazebo_ros_laser.so">
|
||||
<frameName>${prefix}${link}</frameName>
|
||||
<topicName>${topic}</topicName>
|
||||
</plugin>
|
||||
</sensor>
|
||||
</gazebo>
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
Reference in New Issue
Block a user