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-tools
Clone 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 build
Use 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.launch
NOTE: 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_planning
package.- Class list:
AnytimePlanning
: Planning class interfacing Moveit to create a pick & place-like loop.
- Node list:
anytime_planning_node
: Main node runningAnytimePlanning
class.random_ball_motion_node
: Node to move the red ball randomly around the workspace of the robot.
- Class list:
kalman_tracking_3d
library package.- Class list:
KalmanTacking3d
: Class interfacing OpenCV kalman class.
- Class list:
perception_avd
package.- 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 usingKinectDetection
class.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_manager
package. Main running interface of the application. Configuration files (inYAML
format), as well aslaunch
files for all the several nodes of the system are in this packages.rovi2_msgs
package. Definition of ROS messages:boundingBox.msg
andboundingBoxes.msg
to broadcast image coordinates and labels of bounding boxes detected for red ball(s).point2d
andpoints2d
to broadcast image coordinates and labels of ball(s) center.point3d
andpoints3d
to broadcast 3D position and label of detected red ball(s).
workcell_scene_description
package: URDF files of the components and description of the workcell.