This repository contains the final project for ROVI 1 (SDU). The project consisted on a visual servoing application based on color markers with random backgrounds. This is an example on how to do it using ROS tools such as Gazebo, Rviz and MoveIt!. Original project uses RobWork and RobWorkStudio (see this branch).
Install catkin tools (python):
sudo apt install python-catkin-toolsThen clone and install dependencies:
cd ~
mkdir -p rovi1_ws/src && cd rovi1_ws/src
git clone <url>
# Install dependencies via rosinstall and rosdeo
wstool update
cd ..
rosdep update
rosdep install -i --from-paths src/ -y -r
# Build
catkin init
catkin buildOn separate terminals:
# Launch simulated scene
roslaunch rovi1_demo_manager scene_gazebo.launch
# Launch server interface
roslaunch rovi1_demo_manager vision_server.launch
# Launch client interface
roslaunch rovi1_demo_manager planner.launchNOTE: There is a predefined RVIZ configuration in rovi1_demo_manager/config/default.rviz, which has default windows to show result-detection images, as well as relevant frames.
gazebo_models: Configuration and mesh files to implement the model of the wall with the cathedral window background.planning_servoingpackage.- Class list:
Planner: Planning class interfacing Moveit to create a visual servoing loop.
- Node list:
planning_servoing_node: Main node runningPlannerclass.marker_trajectory_node: Node to move the marker the scene (triangle and rectangle trajectories).
- Class list:
perception_servoing: Shared library with detection methods.rovi1_demo_managerpackage. Main running interface of the application. Configuration files (inYAMLformat), as well aslaunchfiles for all the several nodes of the system are in this packages.vision_interfacestack. Interface implementing a server architecture for the vision part.vision_lib_msgspackage: Definition of the request and response messages of the service.vision_server_rospackage: Class implementing the server. It subscribes to image stream only when the service is called, and usesperception_servoinglib to detect the marker.
workcell_scene_descriptionpackage: URDF files of the components and description of the workcell.

