The purpose of this project is to create a program that allows the robot to approach, detect and attach to a warehouse shelf. In the first part of the project, a simple ROS2 node that performs the pre-approach motion was created. This is, move the robot near the location of the shelf. Then a ROS2 node that performs the final approach motion was created.
Final approach:
- Detects the exact position of the shelf.
- Commands the robot right beneath the shelf.
- Attaches the robot to the shelf.
- Ubuntu 22.04
- ROS1 Noetic
- ROS2 Galactic
- Clone the repo:
cd ~ && \ git clone https://github.com/pvela2017/The-Construct-CheckPoint-5-Master-ROS2
- Compile the simulation:
source /opt/ros/noetic/setup.bash && \ cd ~/The-Construct-CheckPoint-5-Master-ROS2/simulation_ws && \ catkin_make && \ cd ~/The-Construct-CheckPoint-5-Master-ROS2/catkin_ws && \ catkin_make && \ source /opt/ros/galactic/setup.bash && \ cd ~/The-Construct-CheckPoint-5-Master-ROS2/ros2_ws && \ colcon build
- Launch the simulation:
source /opt/ros/noetic/setup.bash && \ source ~/The-Construct-CheckPoint-5-Master-ROS2/simulation_ws/devel/setup.bash && \ roslaunch rb1_base_gazebo warehouse_rb1.launch
- Launch the ros bridge:
source /opt/ros/noetic/setup.bash && \ source ~/The-Construct-CheckPoint-5-Master-ROS2/catkin_ws/devel/setup.bash && \ roslaunch load_params load_params.launch && \ source /opt/ros/galactic/setup.bash && \ ros2 run ros1_bridge parameter_bridge && \
- Launch Pre-approach:
source /opt/ros/galactic/setup.bash && \ source ~/The-Construct-CheckPoint-5-Master-ROS2/ros2_ws/install/setup.bash && \ ros2 launch attach_shelf pre_approach.launch.xml obstacle:=0.3 degrees:=-90
- Launch with final approach:
source /opt/ros/galactic/setup.bash && \ source ~/The-Construct-CheckPoint-5-Master-ROS2/ros2_ws/install/setup.bash && \ ros2 launch attach_shelf attach_to_shelf.launch.py obstacle:=0.3 degrees:=-90 final_approach:=true
- Broadcast TFs.
- Load parameters.