Deployment of a custom-defined robot in Rviz and Gazebo with Lidar and camera plugins. Additionally, the feature of teleoperation has been incorporated into the robot-simulated in a custom gazebo world.
This is the readme file for both packages: bot_description and bot_world. To ensure ease of use, each functionality of these packages and the functions can be comprehensively called using launch files.
Thereby, there are 3 launch files, namely rviz.launch, spawn.launch, and control.launch has the capability to carry out all the expected functionalities:
-
rviz.launch: This launch file visualizes the bot in rviz to show the various nuances of the xacro file that described the structure of the robot.
-
spawn.launch: This launch file simulates the robot in a gazebo with camera and Lidar plugins enabled; additionally, this ensures that the robot_state_publisher, and the robot plugin and urdf are working in synergy.
-
Control.launch: This launch file is the master launch file of the project, encomposing all the functionalities in a single easy-to-use launch file. A few key features added to this launch file are that the robot is spawned in a custom launch file with a variety of objects, and this is the launch file that enables us to carry out teleoperation.To ensure ease of use, this launch file has the teleop node automatically created using a special module named subprocess.Popen.
Teleoperation of the bot in a custom Gazebo world with camera and lidar plugins enabled (Gif):
Screencast.from.06-03-2024.10.16.59.AM.webm
-
In the home directory, clone this repo using git clone. (The repo is itself a workspace, so source it in bashrc)
-
As mentioned above, all functionality of the packages can be accessed by three launch files, and the ros2 command to run them is given below.
(((ros2 launch bot_description rviz.launch))) (((ros2 launch bot_description spawn.launch))) (((ros2 launch bot_description control.launch)))