This project integrates TurtleBot3 with the AWS RoboMaker Small Warehouse World in a ROS2 and Gazebo simulation environment.
Prerequisites ROS2 (Humble) Gazebo TurtleBot3 Gazebo package
- Clone AWS RoboMaker Warehouse Repository
git clone https://github.com/aws-robotics/aws-robomaker-small-warehouse-world
- Source ROS2 and Gazebo
source /opt/ros/humble/setup.bash
source /usr/share/gazebo/setup.sh
- Install TurtleBot3
sudo apt-get install ros-humble-turtlebot3-gazebo
- Set TurtleBot3 Model
export TURTLEBOT3_MODEL=waffle
- Create ROS2 Package
ros2 pkg create warehouse_automation --build-type ament_cmake --dependencies rclcpp rclpy
ros2 launch warehouse_automation no_roof_small_warehouse.launch.py
To run the mover node defined in velocity_publisher.cpp run the following
ros2 run warehouse_automation mover
To run the watcher node defined in camera_node.cpp run the following
ros2 run warehouse_automation watcher
This node subscribes to Laserscan topic To run the mover node defined in subscriber_node.cpp run the following
ros2 run warehouse_automation scanner
To enhance the camera's field of view, I made a small modification for the height
-
Open the SDF file:
/opt/ros/humble/share/turtlebot3_gazebo/models/turtlebot3_waffle/model.sdf
-
Modify the camera height:
xml
<link name="camera_rgb_frame">
...
<!-- Adjust the Z-axis value (3rd number) in the <pose> tag to change the height -->
<pose>0.069 -0.047 YOUR_HEIGHT 0 0 0</pose>
...
</link>
Error: Gzclient process crash with exit code -6.
Solution: Source the Gazebo setup file.
source /usr/share/gazebo/setup.sh