This project was developed during the course of Robotics and Computer Vision 2 (spring 2018), at University of Southern Denmark, by Carlos, Richárd, Sergi and Mathesh. This simulation is an adaptation of the real setup, using an RGBD sensor, the Moveit! framework for planning and a simulated red ball with random movement. The original development is branch. Also, the wiki belongs to the original development.
Use python catkin tools to manage the workspace:
sudo apt install python-catkin-toolsClone and install dependencies
cd ~
mkdir -p rovi2_ws/src && cd rovi2_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 buildUse the package rovi2_demo_manager to run the demo, all the necessary yaml configuration and launch files are there. In separate terminals:
# Simulation environment and configurations
roslaunch rovi2_demo_manager scene_gazebo.launch
# 3D detection
roslaunch rovi2_demo_manager kinect_camera.launch
# Planner
roslaunch rovi2_demo_manager anytime_planner.launchNOTE: There is a predefined RVIZ configuration in rovi2_demo_manager/config/workcell.rviz, which has default windows to show detection and depth images, as well as relevant frame axes.
anytime_planningpackage.- Class list:
AnytimePlanning: Planning class interfacing Moveit to create a pick & place-like loop.
- Node list:
anytime_planning_node: Main node runningAnytimePlanningclass.random_ball_motion_node: Node to move the red ball randomly around the workspace of the robot.
- Class list:
kalman_tracking_3dlibrary package.- Class list:
KalmanTacking3d: Class interfacing OpenCV kalman class.
- Class list:
perception_avdpackage.- Class list:
common_perception: Shared library with common utilities to the different detection methods.KinectDetection: Class performing RGB-D detection and pose estimation of the red ball.RedBallDetection: Class performing 2D image detection of the ball.Stereopsis: Class for stereo triangulation and bounding box PnP pose estimation.
- Node list:
kinect_detection_node: Publishes 3D position of the center of the ball usingKinectDetectionclass.monocular_node: Publishes 3D position of the center of the ball as a result of PnP 3D pose estimation.red_ball_detection_node: Publishes ball center and bounding box in image coordinates.stereopsis_node: Publishes 3D position of the center of the ball as a result of stereo triangulation.
- Class list:
rovi2_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.rovi2_msgspackage. Definition of ROS messages:boundingBox.msgandboundingBoxes.msgto broadcast image coordinates and labels of bounding boxes detected for red ball(s).point2dandpoints2dto broadcast image coordinates and labels of ball(s) center.point3dandpoints3dto broadcast 3D position and label of detected red ball(s).
workcell_scene_descriptionpackage: URDF files of the components and description of the workcell.

