Localization and autonomous path planning with ROS
Localization and autonomous path planning with ROS Read More »
Real-time object recognition and 6DOF pose estimation with PCL pointcloud and ROS. This approach is based on normal coherence
Real time object recognition and 6DOF pose estimation with PCL pointcloud and ROS Read More »
In this tutorial, I’m gonna show you how to do object recognition and 6DOF pose estimation in real-time based on Linemod algorithm with ROS and PCL pointcloud. First, you need to install ork:
1 |
sudo apt-get install ros-indigo-object-recognition-ros-visualization ros-indigo-object-recognition-msgs ros-indigo-object-recognition-core |
Then add the model of your object for tracking to Couch DB:
1 |
rosrun object_recognition_core object_add.py -n coke -d "A universal can of coke" --commit |
1 |
rosrun object_recognition_core mesh_add.py <YOUR_OBJECT_ID_FROM_PREVIOUS_STEP> /home/behnam/ork_tutorials/data/coke.obj --commit |
You need to install Kinect driver, if you don’t
In this tutorial, we do some SLAM with TurtleBot robot. 1.Before anything, you have to install all packages for gazebo and gmapping and TurtleBot:
1 |
sudo apt-get install ros-kinetic-gmapping ros-kinetic-turtlebot-gazebo ros-kinetic-turtlebot-simulator ros-kinetic-turtlebot-teleop ros-kinetic-turtlebot-rviz-launchers |
2.Launch gazebo and TurtleBot
1 |
roslaunch turtlebot_gazebo turtlebot_world.launch |
3. Call the gmapper to read laser scan and build the map:
1 |
roslaunch turtlebot_gazebo gmapping_demo.launch |
Only for indigo: if you got and error, you need to do some hacky stuff
SLAM using gmapping with TurtleBot robot and Gazbo Read More »
Gradient descent is a very popular method for finding the maximum/ minimum point of a given function. It’s very simple yet powerful but may trap in the local minima. Here I try to find the minimum of the following function: $$ z= -( 4 \times e^{- ( (x-4)^2 +(y-4)^2 ) }+ 2 \times e^{- ( (x-2)^2 +(y-2)^2
Gradient descent method for finding the minimum Read More »
Here is an example of obtaining occupancy grid from sensory data of turtlebot robot. 1.First you need to install all dependencies for gazebo and turtlebot and octomap server:
1 |
sudo apt-get install ros-kinetic-gmapping ros-kinetic-turtlebot-gazebo ros-kinetic-turtlebot-simulator ros-kinetic-turtlebot-teleop |
2. Launch gazebo in a simulated environment:
1 |
roslaunch turtlebot_gazebo turtlebot_world.launch |
3.Launch RVIZ to view the published data
1 |
roslaunch turtlebot_rviz_launchers view_robot.launch |
3.Move your robot via keyboard:
1 |
roslaunch turtlebot_teleop keyboard_teleop.launch |
to learn how to move the robot with
Making occupancy grid map in ROS from gazebo with Octomap Read More »
Rapidly-exploring random trees (RRT) and their variant are a very power solution for solving motion planning problem in robotics, but they suffer from finding an optimise solution and the generated path is usually jerky with redundant movements. Sample based-optimisation-based planners benefit the robustness of RRT and the possibility of imposing a cost function. Here in this work, I
Sample based-optimisation-based planner with signed distance fields cost map Read More »
Limited-Memory CMA-ES (LM-CMA-ES) is a variation of CMA-ES which has been tailored for large-scale optimisation with limited memory. As a warm up here, I have used this algorithm to solve the min point of the following function: $$ z= -( 4 \times e^{- ( (x-4)^2 +(y-4)^2 ) }+ 2 \times e^{- ( (x-2)^2 +(y-2)^2 ) } )$$ The function
Solving of optimisation problem with evolutionary algorithm (LM-CMA-ES) Read More »
This Matlab tutorial I use SIFT, RANSAC, and homography to find corresponding points between two images. Here I have used vlfeat to find SIFT features. Full code is available at my GitHub repository Major steps are: 0.Adding vlfeat to your Matlab workspace:
1 |
run('<path_to_vlfeat>/toolbox/vl_setup') |
1.Detect key points and extract descriptors. In the image below you can see some SIFT key
Stitching image using SIFT and Homography Read More »