Simple Simulator
Introduction
The robotont_simple_simulator provides a lightweight simulation
environment for the Robotont mobile robot, providing basic navigation
capabilities with naive physics integration.
The simulator mirrors the core interface of the real Robotont robot, allowing users to reuse the same ROS nodes, topics, and tools that they use with the physical platform.
This package includes a simple driver for basic movement and a navigator for goal-based navigation.
The limitations of this simulator:
Simplified dynamics (not full physics)
No complex collision interactions
Limited sensor simulation
Not suitable for high-fidelity robotics research
Prerequisites
Make sure you check Prerequisites and tested the environment following the instructions presented in Visualize.
Clone and Build
Navigate to your ROS2 workspace src directory:
cd ~/your_workspace/src
Clone the repository:
git clone https://github.com/robotont/robotont_simple_simulator
Install package dependencies using rosdep:
cd ~/your_workspace
rosdep install --from-paths src --ignore-src -r -y
Tip
If you encounter an error at this step, it likely means that rosdep is not installed. You can install and initialize it as follows:
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
Build the package:
colcon build --packages-select robotont_simple_simulator
Source the workspace:
source install/setup.bash
Teleoperation with Simple Driver
Launch the simple driver:
ros2 launch robotont_simple_simulator simple_driver.launch.py
If everything is set up correctly, an RViz window should open and display the robot as shown:
Open a second terminal and use teleop_twist_keyboard to control the robot:
ros2 run teleop_twist_keyboard teleop_twist_keyboard
If everything worked correctly, you should see the following in your terminal:
By pressing different keys in this terminal, you’ll see the robot move in RViz. For example:
How it works
Simple Driver
The simulator is composed of three main parts:
robotont_description Provides the URDF model of Robotont.
simple_driver
Publishes on 2 topics:
- /odom (robot pose and velocity)
- a TF transform odom → base_footprint (robot position in the world used by rviz2 to update the poisition of the robot)
/driver
Subscribers:
/cmd_vel: geometry_msgs/msg/Twist
Publishers:
/odom: nav_msgs/msg/Odometry
/tf: tf2_msgs/msg/TFMessage
teleop_twist_keyboard
Publishes velocity commands on /cmd_vel based on key presses.
/teleop_twist_keyboard
Subscribers:
Publishers:
/cmd_vel: geometry_msgs/msg/Twist