Difference between revisions of "ROS"

From RobotinoWiki
 
(30 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
==Introduction==
 
==Introduction==
The [http://www.ros.org/wiki/ Robot Operating System ROS] hosted and maintained by [http://www.willowgarage.com/ Willow Garage] is a free meta operating system for mobile robots. This page describes the adaption of Robotino C++ API to ROS.
+
{|cellspacing="20" cellpadding="10"
{{#ev:youtube|N7Gbe7vnufM}}
+
|- style="vertical-align:top"
 +
|[[Image:Robotino_ros_icon_64.png]]
 +
|The [http://www.ros.org/wiki/ Robot Operating System ROS] hosted and maintained by [http://www.willowgarage.com/ Willow Garage] is a free meta operating system for mobile robots. This page describes the adaption of Robotino's REST-API to ROS.
 +
! style="text-align:left; width:20em; background-color:#dddddd"|
 +
=== Package links ===
 +
[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==
You will need a Linux (preferable Ubuntu) PC in order to run ROS. As we need much computational power for SLAM and especially path planning Robotinos PC104 is overstrained. So we use a laptop or desktop PC communicating to Robotino via wireless.
+
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.
  
Install ROS. How to do this read [http://www.ros.org/wiki/ROS/Installation the ROS installation instructions].
+
Download the latest [https://doc.openrobotino.org/ROS source] and integrate it into your catkin workspace.
  
Install the latest [http://doc.openrobotino.org/download/packages/ openrobotino1] package and install it (you do not need to set symlinks nor do you need to install the examples).
+
==Test==
 +
===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>
 +
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}}'
 +
</pre>
  
Get the Robotino ROS drivers:
+
==Hardware==
 
+
What you really need to use ROS in a meaningful way is a [http://www.roboparts.de/robotino/scanner/en laser rangefinder for Robotino].
<code>svn co http://svn.openrobotino.org/trunk/ros robotino-ros</code>
 
 
 
Put the robotino-ros into the ROS_PACKAGE_PATH. If everything is setup correctly you can run
 
  
<code>rosmake robotino_drivers</code>
+
==Documents==
 
+
[http://monticore.de/robotics/downloads/lab13.pdf RWTH Aachen: Lab Course Model-Based Robotics Software Development Implementation Notes]
==Hardware==
 
What you really need to use ROS in a meaningful way is a [http://servicerobotics.eu/en/robotinor/accessories/laser-ranegfinder-for-robotinor/ laser rangefinder for Robotino].
 

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