<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rsewiki.electro.dtu.dk/index.php?action=history&amp;feed=atom&amp;title=Fejemis_Description_ROS2</id>
	<title>Fejemis Description ROS2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://rsewiki.electro.dtu.dk/index.php?action=history&amp;feed=atom&amp;title=Fejemis_Description_ROS2"/>
	<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Fejemis_Description_ROS2&amp;action=history"/>
	<updated>2026-06-16T09:50:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Fejemis_Description_ROS2&amp;diff=8962&amp;oldid=prev</id>
		<title>S253809: /* Typical Usage */</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Fejemis_Description_ROS2&amp;diff=8962&amp;oldid=prev"/>
		<updated>2026-05-28T09:04:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Typical Usage&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:04, 28 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l110&quot;&gt;Line 110:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 110:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Start robot description publisher:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Start robot description publisher:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/ins&gt;ros2 launch fejemis_description model.launch.py&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;```bash&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ros2 launch fejemis_description model.launch.py&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;```&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Start with simulation time:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Start with simulation time:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/ins&gt;ros2 launch fejemis_description model.launch.py use_sim_time:=true&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;```bash&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ros2 launch fejemis_description model.launch.py use_sim_time:=true&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;```&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In most full-system runs, this launch file is included by top-level bringup (for example in simulation launch stacks).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In most full-system runs, this launch file is included by top-level bringup (for example in simulation launch stacks).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>S253809</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Fejemis_Description_ROS2&amp;diff=8960&amp;oldid=prev</id>
		<title>S253809: Created page with &quot;Back to Fejemis ROS2 Software  == Purpose ==  &#039;&#039;fejemis_description&#039;&#039; is the robot description package for Fejemis. It defines the robot model using URDF/Xacro and publishes the TF model state so the rest of the ROS 2 stack can use a consistent robot geometry.  The package is responsible for:  * Building the Fejemis robot model from modular xacro files. * Publishing &#039;&#039;robot_description&#039;&#039; and TF through &#039;&#039;robot_state_publisher&#039;&#039;. * Providing a simulation-friendly whee...&quot;</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Fejemis_Description_ROS2&amp;diff=8960&amp;oldid=prev"/>
		<updated>2026-05-28T09:03:59Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Back to &lt;a href=&quot;/index.php?title=Fejemis_ROS2_Software&quot; title=&quot;Fejemis ROS2 Software&quot;&gt;Fejemis ROS2 Software&lt;/a&gt;  == Purpose ==  &amp;#039;&amp;#039;fejemis_description&amp;#039;&amp;#039; is the robot description package for Fejemis. It defines the robot model using URDF/Xacro and publishes the TF model state so the rest of the ROS 2 stack can use a consistent robot geometry.  The package is responsible for:  * Building the Fejemis robot model from modular xacro files. * Publishing &amp;#039;&amp;#039;robot_description&amp;#039;&amp;#039; and TF through &amp;#039;&amp;#039;robot_state_publisher&amp;#039;&amp;#039;. * Providing a simulation-friendly whee...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Back to [[Fejemis ROS2 Software]]&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;fejemis_description&amp;#039;&amp;#039; is the robot description package for Fejemis. It defines the robot model using URDF/Xacro and publishes the TF model state so the rest of the ROS 2 stack can use a consistent robot geometry.&lt;br /&gt;
&lt;br /&gt;
The package is responsible for:&lt;br /&gt;
&lt;br /&gt;
* Building the Fejemis robot model from modular xacro files.&lt;br /&gt;
* Publishing &amp;#039;&amp;#039;robot_description&amp;#039;&amp;#039; and TF through &amp;#039;&amp;#039;robot_state_publisher&amp;#039;&amp;#039;.&lt;br /&gt;
* Providing a simulation-friendly wheel configuration through launch arguments.&lt;br /&gt;
* Keeping a shared frame and link structure used by simulation, mapping, and navigation.&lt;br /&gt;
&lt;br /&gt;
== Package Layout ==&lt;br /&gt;
&lt;br /&gt;
Important folders:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;launch&amp;#039;&amp;#039; - launch files for model generation and state publishing.&lt;br /&gt;
* &amp;#039;&amp;#039;xacro&amp;#039;&amp;#039; - modular robot model definition files.&lt;br /&gt;
* &amp;#039;&amp;#039;config&amp;#039;&amp;#039; - controller/simulation-related configuration.&lt;br /&gt;
&lt;br /&gt;
Main xacro files:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;xacro/robot.urdf.xacro&amp;#039;&amp;#039; - top-level robot assembly file.&lt;br /&gt;
* &amp;#039;&amp;#039;xacro/robot_core.xacro&amp;#039;&amp;#039; - chassis and base links.&lt;br /&gt;
* &amp;#039;&amp;#039;xacro/robot_wheels.xacro&amp;#039;&amp;#039; - drive wheels and Gazebo diff-drive plugin.&lt;br /&gt;
* &amp;#039;&amp;#039;xacro/robot_castor.xacro&amp;#039;&amp;#039; - castor wheel definition.&lt;br /&gt;
* &amp;#039;&amp;#039;xacro/sensor_imu.xacro&amp;#039;&amp;#039; - IMU and magnetometer links/sensors.&lt;br /&gt;
* &amp;#039;&amp;#039;xacro/sensor_lidar.xacro&amp;#039;&amp;#039; - LiDAR link and simulated scan sensor.&lt;br /&gt;
* &amp;#039;&amp;#039;xacro/sensor_depth_camera.xacro&amp;#039;&amp;#039; - depth camera and optical frame.&lt;br /&gt;
* &amp;#039;&amp;#039;xacro/utils_inertial.xacro&amp;#039;&amp;#039; and &amp;#039;&amp;#039;xacro/utils_colors.xacro&amp;#039;&amp;#039; - reusable inertial and visual macros.&lt;br /&gt;
&lt;br /&gt;
== Launch File ==&lt;br /&gt;
&lt;br /&gt;
=== launch/model.launch.py ===&lt;br /&gt;
&lt;br /&gt;
This launch file generates the URDF from xacro and starts &amp;#039;&amp;#039;robot_state_publisher&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Launch arguments:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;use_sim_time&amp;#039;&amp;#039; - enables simulation clock when &amp;#039;&amp;#039;true&amp;#039;&amp;#039;. Default: &amp;#039;&amp;#039;false&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Behavior:&lt;br /&gt;
&lt;br /&gt;
* Processes &amp;#039;&amp;#039;fejemis_description::xacro/robot.urdf.xacro&amp;#039;&amp;#039; with xacro.&lt;br /&gt;
* Passes &amp;#039;&amp;#039;fixed_wheels:=&amp;lt;use_sim_time&amp;gt;&amp;#039;&amp;#039; into xacro.&lt;br /&gt;
* Publishes &amp;#039;&amp;#039;robot_description&amp;#039;&amp;#039; parameter to &amp;#039;&amp;#039;robot_state_publisher&amp;#039;&amp;#039;.&lt;br /&gt;
* Publishes the model TF tree for downstream packages.&lt;br /&gt;
&lt;br /&gt;
== Model Composition ==&lt;br /&gt;
&lt;br /&gt;
The top-level model in &amp;#039;&amp;#039;robot.urdf.xacro&amp;#039;&amp;#039; assembles the robot in this order:&lt;br /&gt;
&lt;br /&gt;
* Core chassis: &amp;#039;&amp;#039;xacro:core&amp;#039;&amp;#039;&lt;br /&gt;
* Drive wheels: &amp;#039;&amp;#039;xacro:wheels&amp;#039;&amp;#039;&lt;br /&gt;
* Castor wheel: &amp;#039;&amp;#039;xacro:castor&amp;#039;&amp;#039;&lt;br /&gt;
* IMU and magnetometer: &amp;#039;&amp;#039;xacro:imu_sensor&amp;#039;&amp;#039;&lt;br /&gt;
* LiDAR: &amp;#039;&amp;#039;xacro:lidar&amp;#039;&amp;#039;&lt;br /&gt;
* Depth camera: &amp;#039;&amp;#039;xacro:depth&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
There is also an optional camera macro (currently commented in the top-level xacro).&lt;br /&gt;
&lt;br /&gt;
== Main Links and Frames ==&lt;br /&gt;
&lt;br /&gt;
Common links/frames provided by the description:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;base_link&amp;#039;&amp;#039; - primary base frame for navigation and odometry integration.&lt;br /&gt;
* &amp;#039;&amp;#039;chassis&amp;#039;&amp;#039; - main physical body link.&lt;br /&gt;
* &amp;#039;&amp;#039;left_wheel&amp;#039;&amp;#039; and &amp;#039;&amp;#039;right_wheel&amp;#039;&amp;#039; - drive wheel links.&lt;br /&gt;
* &amp;#039;&amp;#039;laser_frame&amp;#039;&amp;#039; - LiDAR mounting and scan frame in simulation.&lt;br /&gt;
* &amp;#039;&amp;#039;imu_link&amp;#039;&amp;#039; - IMU and magnetometer frame.&lt;br /&gt;
* &amp;#039;&amp;#039;depth_link&amp;#039;&amp;#039; and &amp;#039;&amp;#039;depth_link_optical&amp;#039;&amp;#039; - depth camera body and optical frame.&lt;br /&gt;
&lt;br /&gt;
These frames are consumed by mapping/localisation and simulation bridge layers.&lt;br /&gt;
&lt;br /&gt;
== Simulation-Specific Behavior ==&lt;br /&gt;
&lt;br /&gt;
The wheel macro supports both fixed and rotating wheel joints:&lt;br /&gt;
&lt;br /&gt;
* Real robot path: wheel joints are fixed in the model launch context.&lt;br /&gt;
* Simulation path: wheels are set to continuous joints when simulation mode is enabled.&lt;br /&gt;
&lt;br /&gt;
Gazebo systems configured in &amp;#039;&amp;#039;robot_wheels.xacro&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;gz::sim::systems::DiffDrive&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;gz::sim::systems::JointStatePublisher&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Diff-drive plugin settings include:&lt;br /&gt;
&lt;br /&gt;
* Wheel separation: &amp;#039;&amp;#039;0.3847&amp;#039;&amp;#039;&lt;br /&gt;
* Wheel diameter: &amp;#039;&amp;#039;0.2&amp;#039;&amp;#039;&lt;br /&gt;
* Command topic: &amp;#039;&amp;#039;/model/fejemis/cmd_vel&amp;#039;&amp;#039;&lt;br /&gt;
* Odometry topic: &amp;#039;&amp;#039;/model/fejemis/odom&amp;#039;&amp;#039;&lt;br /&gt;
* Frame IDs: &amp;#039;&amp;#039;odom&amp;#039;&amp;#039; and &amp;#039;&amp;#039;base_link&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Drive wheel friction is increased in simulation to reduce slip, while castor behavior is defined separately in the castor xacro.&lt;br /&gt;
&lt;br /&gt;
== Sensor Simulation Topics ==&lt;br /&gt;
&lt;br /&gt;
The description also defines simulated sensor outputs used by the bridge layer:&lt;br /&gt;
&lt;br /&gt;
* LiDAR: &amp;#039;&amp;#039;/model/fejemis/scan&amp;#039;&amp;#039;&lt;br /&gt;
* IMU: &amp;#039;&amp;#039;/model/fejemis/imu&amp;#039;&amp;#039;&lt;br /&gt;
* Magnetometer: &amp;#039;&amp;#039;/model/fejemis/mag&amp;#039;&amp;#039;&lt;br /&gt;
* Depth camera: &amp;#039;&amp;#039;/model/fejemis/depth_camera&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
These topics are later bridged into ROS topics by &amp;#039;&amp;#039;fejemis_sim&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Typical Usage ==&lt;br /&gt;
&lt;br /&gt;
Start robot description publisher:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
ros2 launch fejemis_description model.launch.py&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Start with simulation time:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
ros2 launch fejemis_description model.launch.py use_sim_time:=true&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
In most full-system runs, this launch file is included by top-level bringup (for example in simulation launch stacks).&lt;br /&gt;
&lt;br /&gt;
== Relationship To Other Packages ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;fejemis_sim&amp;#039;&amp;#039; uses this package to spawn the robot from &amp;#039;&amp;#039;/robot_description&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;fejemis_maploc&amp;#039;&amp;#039; and Nav2 depend on the frame structure defined here.&lt;br /&gt;
* Sensor and odometry pipelines assume the link names and frame conventions from this model.&lt;/div&gt;</summary>
		<author><name>S253809</name></author>
	</entry>
</feed>