Работа с ROS из браузера

С помощью библиотеки roslibjs возможна работа со всеми ресурсами ROS (топики, сервисы, параметры) из JavaScript-кода внутри браузера, что позволяет создавать различные интерактивные браузерные приложения для коптера.

Все необходимое для работы с roslibjs предустановлено и настроено на образе для RPi для Клевера.

Пример

Пример HTML-кода страницы, работающей с roslib.js:

<html>
    <script src="js/roslib.js"></script>
    <script type="text/javascript">
        // Establish roslibjs connection
        var ros = new ROSLIB.Ros({ url: 'ws://' + location.hostname + ':9090' });

        ros.on('connection', function () {
            // Connection callback
            alert('Connected');
        });

        // Declare get_telemetry service client
        var getTelemetry = new ROSLIB.Service({ ros: ros, name : '/get_telemetry', serviceType : 'clover/GetTelemetry' });

        // Call get_telemetry
        getTelemetry.callService(new ROSLIB.ServiceRequest({ frame_id: 'map' }), function(result) {
            // Service respond callback
            alert('Telemetry: ' + JSON.stringify(result));
        });

        // Subscribe to `/mavros/state` topic
        var stateSub = new ROSLIB.Topic({ ros : ros, name : '/mavros/state', messageType : 'mavros_msgs/State' });
        stateSub.subscribe(function(msg) {
            // Topic message callback
            console.log('State: ', msg);
        });
    </script>
</html>

Взлет, посадка и все остальные операции могут быть осуществлены аналогичным образом.

Страница должна быть помещена в каталог /home/pi/catkin_ws/src/clover/clover/www/. После этого она станет доступна по адресу http://192.168.11.1/clover/<имя_страницы>.html. При открытии страницы браузер должен показать окно с телеметрией дрона, а также постоянно выводить состояние полетного контроллера в консоль.

Более подробную информацию смотрите в туториале по roslibjs.

Браузерная GCS

Смотрите также пример реализации упрощенной браузерной наземной станции (GCS) на Клевере по адресу http://192.168.11.1/clover/gcs.html.

results matching ""

    No results matching ""