Skip to content

First Teleoperation Demo

Édouard Denommée edited this page Mar 30, 2019 · 9 revisions

Teleoperation demo

This demo aims to get a first working prototype of the web interface and robot control.


THIS PAGE IS INCOMPLETE. CONTRIBUTIONS ARE WELCOME.

Remote control buttons are still locked, video is working.


Requirements

  • Turtlebot platform
    • RasperryPi onboard computer running (ubuntu 16.04 xenial)
    • Kinect RBGD camera
  • Nodejs server running on commit 0e4b0135e2f86ffa7f5f63114510187d90720335

Intalation

Robot installation

  • Install Ubuntu 16.04 on the raspeberry-pi
  • Install the following packages:
# apt update && apt install -y ros-kinetic-turtlebot-bringup ros-kinetic-desktop-full \
    libv4l-dev v4l2loopback-utils v4l2loopback-dkms sudo
  • Create catkin workspace
$ mkdir -p worksace workspace/devel worspace/src
copy the contents of `Robot_Software` into the `workspace/src` directory
$ catkin_make
$ source workspace/devel/setupd.sh
  • Add the user that will launch the ROS nodes to the list of sudoers. Make sure to specify NOPASSWD. This step is necessary to allow roslauch to interact with kernel modules.
$ echo "$USER ALL=(ALL:ALL) NOPASSWD:ALL" | sudo sh -c 'cat >> /etc/sudoers'

To set allow another user than the current one, replace $USER by the name of the desired user. Or to specify a user group, add a percent sign before the group name (%group).

Server installation

  • Checkout the following commit 86764f153160fd422e5c13f689d4216b46d29c18
  • Apply the following patch:
diff --git a/server/easyRTC_Node/static/index.html b/server/easyRTC_Node/static/index.html
index cc748d8..e052f44 100644
--- a/server/easyRTC_Node/static/index.html
+++ b/server/easyRTC_Node/static/index.html
@@ -3,7 +3,7 @@
     <head>
         <script src="/socket.io/socket.io.js"></script>
         <script type="text/javascript" src="../easyrtc/easyrtc.js"></script>
-        <script type="text/javascript" src="js/demo.js"></script>
+        <script type="text/javascript" src="demo.js"></script>
 
         <style type="text/css">
             #videoDemoContainer {
  • Install the required node packages. In server/easyRTC_Node directory
npm install

Usage

Robot execution

  • commands to run on robot
$ roslaunch turtlebot_bringup minimal.launch
$ roslaunch securbot_pkg virtualKinect.launch
$ roslaunch securbot_pkg 3dsensor.launch
$ ./workspace/src/Electron_WebRTC/scripts/start_node.sh
$ ./workspace/src/securbot_pkg/scripts/electronTeleop.py

Server exection

  • Run the server startup command
npm start

Web interface

  • Use firefox browser to allow camera usage