This ROS2 Foxy package is used to convert a random vacuum robot into an over-engineered futuristic vacuum robot.
This project is under developpement and may change according to my ideas.
To run this package you will need ROS 2 Foxy installed on your system. You may clone this repo into your src/
workspace's folder.
sudo apt install -y ros-humble-gazebo-ros-pkgs ros-humble-xacro ros-humble-slam-toolbox*
source /opt/ros/$ROS_DISTRO/setup.bash
cd ~
mkdir -p vacuum_ws/src
cd vacuum_ws/src
git clone https://github.com/EG-Julien/vacuum_bot.git
cd ../
colcon build --symlink-install
source install/setup.bash
ros2 launch vacuum_bot launch_sim.launch.py
# in another tab
rviz2
ros2 launch slam_toolbox online_async_launch.py params_file:=./src/vacuum_bot/config/mapper_params_online_async.yaml use_sime_time:=true
ros2 run teleop_twist_keyboard teleop_twist_keyboard
Now you can drive around the house to generate the map and save it. You have an Rviz configuration file template in config/robot.rviz.
If you now open RViz you should see the robot.
Note : It's possible that Gazebo can't find models. In this case, copy models' folder to vacuum_ws/install/vacuum_bot/share/vacuum_bot/models
:
cp -r models ~/vacuum_ws/install/vacuum_bot/share/vacuum_bot
Note 2 : Gazebo is experiencing some weird issues. If you get this error : gzclient: /usr/include/boost/smart_ptr/shared_ptr.hpp:734:typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = gazebo::rendering::Camera; typename boost::detail::sp_member_access<T>::type gazebo::rendering::Camera*]: Assertion 'px != 0' failed.
, you should source /usr/share/gazebo/setup.sh
.
Since you have launched the simulation you could control the robot by launching teleop : ros2 run teleop_twist_keyboard teleop_twist_keyboard
.