Difference between revisions of "ROS"

From RobotinoWiki
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==Introduction==
 
==Introduction==
{|cellspacing="30" cellpadding="20"
+
{|cellspacing="20" cellpadding="10"
 
|- style="vertical-align:top"
 
|- style="vertical-align:top"
 
|[[Image:Robotino_ros_icon_64.png]]
 
|[[Image:Robotino_ros_icon_64.png]]
Line 6: Line 6:
 
! style="text-align:left; width:20em; background-color:#dddddd"|
 
! style="text-align:left; width:20em; background-color:#dddddd"|
 
=== Package links ===
 
=== Package links ===
[http://www.ros.org/wiki/robotino robotino] - Contains the essential packages for communicating with Robotino.
+
[https://doc.openrobotino.org/ROS robotino_rest_node] - Contains the robotino_rest_node.
 
|}
 
|}
 +
 +
==Overview==
 +
There are two nodes available for Robotino.
 +
* robotino_node
 +
* robotino_rest_node
 +
robotino_node depends on the [[API2]] package. robotino_node is a C++ node and needs to be compiled. robotino_rest_node is connecting to Robotino's [[Rest_api|restapid]], which provides a [https://de.wikipedia.org/wiki/Representational_State_Transfer RESTful API]. robotino_rest_node is pure [https://www.python.org/ Python].
  
 
==Installation==
 
==Installation==
Your Robotino needs to be updated to at least image >= 4.0.0 from [https://doc.openrobotino.org/download/tinycore/robotino4image/ here]. Make sure you updated to the latest [https://doc.openrobotino.org/ChangeLog/daemons.txt robotino-daemons] package.
+
Your Robotino needs to be updated to at least image >= 4.0.0 from [https://doc.openrobotino.org/download/tinycore/robotino4image/ here]. Make sure you updated to the latest [https://doc.openrobotino.org/ChangeLog/daemons.txt robotino-daemons] package. You need to install python-requests package.
 +
 
 +
Download the latest [https://doc.openrobotino.org/ROS source] and integrate it into your catkin workspace.
  
 
==Test==
 
==Test==
 
===Drive Robotino===
 
===Drive Robotino===
 +
Start the omnidrive script
 +
<pre>
 +
rosrun robotino_rest_node omnidrive.py
 +
</pre>
 +
The omnidrive script listens to the /cmd_vel topic. If no parameter is given the script sends received cmd_vel data to 127.0.0.1. If your ROS runs on a different machine than Robotino you need to specify Robotino's IP address.
 +
<pre>
 +
rosrun robotino_rest_node omnidrive.py ROBOTINO_IP_ADDRESS
 +
</pre>
 +
Publish to /cmd_vel to move Robotino forward with 0.1m/s. linear x,y is foward,sideward velocity and angular.z is rotational verlocity.
 
<pre>
 
<pre>
 
rostopic pub -r 10 /cmd_vel geometry_msgs/Twist  '{linear:  {x: 0.1, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'
 
rostopic pub -r 10 /cmd_vel geometry_msgs/Twist  '{linear:  {x: 0.1, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'

Latest revision as of 15:01, 8 March 2019

Introduction

Robotino ros icon 64.png The Robot Operating System ROS hosted and maintained by Willow Garage is a free meta operating system for mobile robots. This page describes the adaption of Robotino's REST-API to ROS.

Package links

robotino_rest_node - Contains the robotino_rest_node.

Overview

There are two nodes available for Robotino.

  • robotino_node
  • robotino_rest_node

robotino_node depends on the API2 package. robotino_node is a C++ node and needs to be compiled. robotino_rest_node is connecting to Robotino's restapid, which provides a RESTful API. robotino_rest_node is pure Python.

Installation

Your Robotino needs to be updated to at least image >= 4.0.0 from here. Make sure you updated to the latest robotino-daemons package. You need to install python-requests package.

Download the latest source and integrate it into your catkin workspace.

Test

Drive Robotino

Start the omnidrive script

rosrun robotino_rest_node omnidrive.py

The omnidrive script listens to the /cmd_vel topic. If no parameter is given the script sends received cmd_vel data to 127.0.0.1. If your ROS runs on a different machine than Robotino you need to specify Robotino's IP address.

rosrun robotino_rest_node omnidrive.py ROBOTINO_IP_ADDRESS

Publish to /cmd_vel to move Robotino forward with 0.1m/s. linear x,y is foward,sideward velocity and angular.z is rotational verlocity.

rostopic pub -r 10 /cmd_vel geometry_msgs/Twist  '{linear:  {x: 0.1, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'

Hardware

What you really need to use ROS in a meaningful way is a laser rangefinder for Robotino.

Documents

RWTH Aachen: Lab Course Model-Based Robotics Software Development Implementation Notes