Code Monkey home page Code Monkey logo

ros-vrep-slam's Introduction

ROS and V-REP for Robot Mapping and Localization

It is an implementation of robot mapping and localization using Robot Operating System (ROS) and V-REP simulator. In this project, the robot can go around the unknown area and use laser sensor to generate the mapping. In addition, we have tasks such as visual servoing and face recognition using camera and OpenCV.

Demo video

https://youtu.be/n-XK24o42Oo

Setup

In this project, we use Ubuntu 16.04 LTS operating system.

Our project requires several libraries and packages as follows:

Additional Libraries

# install hector-slam
sudo apt install ros-kinetic-hector-slam

Prepare Workspace:

# git clone this project
git clone https://github.com/gentaiscool/elec6910r-ros-project.git
# make sure you remove build and devel directories
rm -rf ./build ./devel

# install ROS kinetic from http://wiki.ros.org/kinetic/Installation/Ubuntu
# install V-REP 3.5.0 from http://www.coppeliarobotics.com/downloads.html
Prepare the workspace
# To prepare the workspace
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
cd ./catkin_ws/
catkin_make
echo "source ./catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

# copy libv_repExtRosInterface to V-REP directory
cd catkin_ws/devel/lib
cp libv_repExtRosInterface.so  ~/V-REP

# double check if you have the following programs:
rviz
rqt_graph

Run the project:

roscore

# Execute V-REP
./vrep.sh
# Open scene env.ttt in V-REP and start the simulation

# Load keyboard controller
rosrun project key_teleop.py

# Load the launcher 
roslaunch hector.launch

# Also check rqt_graph and rostopic list

Features

Ros graph

Generated by rqt_graph

Keyboard control

Our code is based on key_teleop.py script. We changed the speed and the publisher node.

# Load keyboard controller
rosrun project key_teleop.py

Visual Servoing

In this task, the machine has to track and follow the yellow ball (#FFFF00).

Face recognition

In this example, we detect President Obama's face.

Authors

Note

ELEC6910R - Robotic Perception and Learning Final Project in HKUST

Acknowledgement

  • Prof. LIU Ming
  • TA: HUANG Kan
  • We also thank Chien-Sheng Wu for the assistance

ros-vrep-slam's People

Contributors

gentaiscool avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ros-vrep-slam's Issues

simSetJointTargetVelocity question

Hello, I'm a beginner in vrep software. I refer to this package to build my scene, which part of the code is not very clear.

-- set velocity
function velocity_callback(msg)
    -- This is the sub_velocity callback function
    -- simAddStatusbarMessage('sub_velocity receiver: ' .. msg.linear.x)
    simAuxiliaryConsolePrint(console_debug,'linear: ' .. msg.linear.x)
    simAuxiliaryConsolePrint(console_debug,' angular: ' .. msg.angular.z)
    vLeft = 6*msg.linear.x - 0.6*msg.angular.z
    vRight = 6*msg.linear.x + 0.6*msg.angular.z
    simSetJointTargetVelocity(motorLeft,vLeft)
    simSetJointTargetVelocity(motorRight,vRight)
end

I don't know these two formulas.

    vLeft = 6*msg.linear.x - 0.6*msg.angular.z
    vRight = 6*msg.linear.x + 0.6*msg.angular.z

can you solve it, please. Thanks a lot.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.