Università della Svizzera Italiana (Lugano)
Robotics 2020 - Simone Eandi, Marco Ferri, Nadia Younis
Exploration of an unknown environment to search for a target object. Simulation of a robot that senses the surroundings using a LIDAR for creating the 3D map of obstacles later converted into the 2D map of traversable terrain. The map is finally used for doing path planning in order to explore unknown areas until the target object is found and reached.
-
thymio_description
package (already intalled on the VM):cd catkin_ws/src/
git clone https://github.com/jeguzzi/ros-aseba.git
- Important: in
base.urdf.xarco
inside the Thymio package replace the line<odometrySource>encoder</odometrySource>
with<odometrySource>world</odometrySource>
-
velodyne
plugin (to be installed):cd catkin_ws/src/
git clone https://bitbucket.org/DataspeedInc/velodyne_simulator.git
-
ros_pcl
(to be installed):cd catkin_ws/src/
git clone https://github.com/ros-perception/perception_pcl.git
To install the Thymar package, after the requirements have been satisfied:
cd catkin_ws/src/
git clone https://github.com/seandi/thymar.git
catkin build
re.
The repo contains the ROS packages for the Thymar robot. Inside the project folder there are two packages:
- the
thymar_description
package contains all the models and launch files for simulating the robot in Gazebo - the
thymar_lidar
package performs LIDAR computations and publishes the rostopics to be shown in RViz - the
thymar
package contains the scripts for controlling the robot, see readme
The Gazebo simulation of the Thymar robot can be launched as follows (with or without the GUI):
roslaunch thymar_description thymar_gazebo_bringup.launch name:=thymar gui:=false world:=indoor_1
Launch the main script that actually controls the robot movements:
rosrun thymar Thymar.py _name:=thymar
Finally, launch the node processing the LIDAR Point Cloud, which will automatically also starts RViz for visualizing the result:
roslaunch thymar_lidar lidar_processor.launch name:=thymar
Two configurations for the lidar have been found to provide good performance
- Faster terrain coverage: set
hz="0.33" lasers="80"
in~/catkin_ws/src/thymar/thymar_description/urf/
- Faster pointcloud update: set
hz="0.50" lasers="64"
in~/catkin_ws/src/thymar/thymar_description/urf/
The image below shows some of the currently available worlds.
In thymar_description/launch/models
, some useful models can be found for creating custom worlds. In order to work properly, the project needs a world which maximum size is 20x20 and that is completely closed (so the robot cannot exit from the world and keep going infinitely).