Skip to content

Lenna-Robotics-Research-Lab/LMR1-Simulation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LENNA Mobile Robot Simulation

LENNA Mobile Robot is a differential-drive mobile robot platform intended for research and education. The repository maintains equivalent ROS1 and ROS2 simulations to support both legacy and modern robotics workflows.

LMR1 RViz URDF

LMR1 URDF Viewer

Use the Interactive URDF Viewer to load and explore the robot model online. The joint sliders and TF visualizer tools are available from the control panel on the left side of the viewer.

Note

The LENNA Mobile Robot model may take several seconds to load fully.

Repository Structure

.
├── docs/                    # Reading Materials and Figures
│   └── media/
│
├── web_viewer/
│   ├── public/              # Files and Figures for the Online Viewer
│   ├── index.html 
│   ├── main.html 
│   ├── package.json 
│   └── vite.config.js/ 
│
├── lmr1_description/        # ROS1 Package for LMR1 URDF and Simulation
│   ├── launch/
│   │   ├── display.launch
│   │   ├── gazebo.launch
│   │   └── ...
│   ├── meshes/              # 3D Meshes in the COLLADA Format
│   │   ├── base.dae
│   │   └── wheel.dae
│   ├── urdf/                # XACRO/URDF Modular Descriptions Files
│   │   ├── common/
│   │   ├── components/
│   │   └── robot.urdf.xacro
│   ├── CMakeLists.txt
│   └── package.xml
│
└── README.md                # Entry Point, Quick Start

ROS1    Static Badge Static Badge Static Badge

The ROS1 version provides a complete simulation environment for the LMR1 platform using the ROS Noetic ecosystem.

Quick Start

Copy the lmr1_description package from this repository into your ROS workspace and build the package.

$ catkin build lmr1_description
$ source devel/setup.bash
🖥️ RViz Display

To visualize the LMR1 URDF model in RViz, use the display.launch file:

$ roslaunch lmr1_description display.launch
🎮 Gazebo Simulation Turtlebot World

To spawn the LMR1 robot in Gazebo using the default TurtleBot world, launch gazebo.launch:

$ roslaunch lmr1_description gazebo.launch
🗺️ SLAM Implementation

You can run gmapping.launch or hector.launch to demonstrate the GMapping and Hector SLAM algorithms, respectively.

$ roslaunch lmr1_description gmapping.launch
$ roslaunch lmr1_description hector.launch

LMR1 GMapping SLAM

🧭 AMCL Localization and Navigation Stack

You can run navigation.launch to demonstrate the amcl and move_base packages through ROS Navigation Stack:

$ roslaunch lmr1_description navigation.launch

LMR1 Navigation

ROS2    Static Badge Static Badge Static Badge

UNDER DEVELOPMENT!

Citation

If you use this code or build upon this work, please cite:

@INPROCEEDINGS{11213761,
  author={Riazati, Erfan and Hajizadeh, Arian and Esmaeilzadeh, Seyed Majid},
  booktitle={2025 33rd International Conference on Electrical Engineering (ICEE)}, 
  title={Design and Implementation of a Modular ROS-Based Mobile Robot with Hierarchical Control}, 
  year={2025},
  volume={},
  number={},
  pages={1038-1043},
  keywords={Visualization;Simultaneous localization and mapping;Navigation;Computer architecture;Real-time systems;Hardware;Mobile robots;Synchronization;Tuning;Testing;mobile robot;hierarchical control;distributed control;navigation;SLAM;ROS},
  doi={10.1109/ICEE67339.2025.11213761}}