Build status |
---|
Resources for Gazebo/ROS simulator that depends on packages (e.g. mrs_msgs, mrs_lib) inside of the MRS system.
Modified version from the pal-robotics:
gazebo_ros_link_attacher
- World plugin that can attach or detach two Gazebo models with a virtual joint.
- The plugin is controlled by five ros services:
- /link_attacher_node/apply_force
- /link_attacher_node/attach
- /link_attacher_node/attach_typed
- /link_attacher_node/delete
- /link_attacher_node/detach
After building, activate by adding the following to your world
definition.
...
<world name="...">
...
<plugin name="mrs_gazebo_link_attacher_plugin" filename="libMRSGazeboLinkAttacherPlugin.so"/>
...
Imagine that the world contains two object - unit_box_1
and unit_sphere_1
, where each of them has one link named link
.
Then their attaching is done by calling:
rosservice call /link_attacher_node/attach "model_name_1: 'unit_box_1'
link_name_1: 'link'
model_name_2: 'unit_sphere_1'
link_name_2: 'link'"
And similar thing for detaching:
rosservice call /link_attacher_node/detach "model_name_1: 'unit_box_1'
link_name_1: 'link'
model_name_2: 'unit_sphere_1'
link_name_2: 'link'"
Modified version from the hector_gazebo:
hector_gazebo_thermal_camera
- Simulates a thermal camera sensor in Gazebo.
- Objects that can be detected by the thermo camera have to have specific visual properties. See example fire_mockup.
- The original plugin has been extended to publish tranform message on topic
/tf_gazebo_static
. To make this transformation visible in ROS use our Static transform republisher plugin in yourworld
definition.
After building, activate by adding the following to your robot definition.
...
<gazebo reference="${namespace}/${camera_frame_name}/thermal_camera_link">
<sensor type="camera" name="mrs_thermal_camera_sensor">
<update_rate>${frame_rate}</update_rate>
<camera>
<horizontal_fov>${hfov}</horizontal_fov>
<image>
<format>R8G8B8</format>
<width>${3 * image_width}</width>
<height>${3 * image_height}</height>
</image>
<clip>
<near>0.1</near>
<far>300</far>
</clip>
</camera>
<plugin name="thermal_camera_controller" filename="libMRSGazeboThermalCameraPlugin.so">
<alwaysOn>true</alwaysOn>
<cameraName>${camera_suffix}</cameraName>
<updateRate>${frame_rate}</updateRate>
<imageTopicName>${camera_topic_name}/rgb_image</imageTopicName>
<cameraInfoTopicName>${camera_topic_name}/camera_info</cameraInfoTopicName>
<rawTemperatureTopicName>${camera_topic_name}/raw_temp_array</rawTemperatureTopicName>
<surroundingTemperature>20</surroundingTemperature>
<maximalTemperature>150</maximalTemperature>
<minimalTemperatureGreenColor>0.2</minimalTemperatureGreenColor>
<noiseStdDev>4.0</noiseStdDev>
<noiseStdDevMaxTemp>20.0</noiseStdDevMaxTemp>
<frameName>${camera_frame_name}</frameName>
<parentFrameName>${parent_frame_name}</parentFrameName>
<sensorBaseFrameName>${sensor_base_frame_name}</sensorBaseFrameName>
<x>${x}</x>
<y>${y}</y>
<z>${z}</z>
<roll>${roll}</roll>
<pitch>${pitch}</pitch>
<yaw>${yaw}</yaw>
</plugin>
</sensor>
</gazebo>
...