Repository Summary
Checkout URI | https://github.com/banerjs/turtlesim_dash_tutorial.git |
VCS Type | git |
VCS Version | melodic-devel |
Last Updated | 2019-10-27 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
turtlesim_dash_tutorial | 1.0.0 |
README
A Dash of ROS turtlesim
This package is designed to provide a quick and dirty tutorial on how to quickly create a Web UI for a ROS environment with Dash. As backbone for this tutorial, we’ll use ROS’s turtle_actionlib.
Two Minute Intro
The default launch file included in this package, tutorial.launch
brings up a turtlesim
environment and starts turtle_actionlib
’s shape_server
node. As mentioned in the documentation for turtle_actionlib
, the node is designed to control the simulated turtlebot so that it traces out a polygon of a specified radius with the desired number of edges.
The launch file also starts a Dash webserver on the port 8080. On navigating to that URL, you should see a web page like so:
There are 3 elements to the page that you can play with:
- The input boxes set the number of edges and the radius of the polygon that the turtlebot should trace out in the simulated environment. Hitting the
Trace Shape
button sends those parameters to theshape_server
if the values are valid. - The shape server’s status is shown below the inputs. This is simply the status of the ROS
actionlib
server. - The graph plots the last 30 seconds (approximately) of the turtlebot’s pose and velocity in the simulator.
Here is an example of the page as the turtlebot is executing a ShapeGoal
:
Menu
Installation
- Install
turtle_actionlib
:sudo apt install ros-melodic-turtle-actionlib
- Install the pip dependencies (in a virtualenv if need be):
pip install -r requirements.txt
- Create a catkin workspace and include this package in it. Build the workspace.
To test your installation, source the newly created workspace and run:
roslaunch turtlesim_dash_tutorial tutorial.launch
ROS Nodes
turtle_dashboard
Creates a dash
server on the port 8080; navigate to http://localhost:8080 in order to view it.
-
Action Clients
-
/turtle_shape
(turtle_actionlib/Shape)
The expected action server for tracing a polygon with the desired shape and number of edges with the simulated turtlebot.
-
-
Subscribed Topics
-
/turtle1/pose
(turtlesim/Pose)
The pose of the turtle being controlled as reported by the turtlesim node.
-
TODO
Some of the things that would be welcome additions in making this tutorial more complete:
-
Add unit tests for each of the callbacks in
dashboard.py
- Update the dashboard to use ROS params and services in order to better configure how the dashboard connects to turtlesim and the shape_server
- Update the web UI to control the ROS params and services
- Add the ability to control multiple simulated turtle bots