This package is responsible for WebSocket connection and is a WebSocket client to operate a ros-based robot.
[rowma/rowma] [Document]
- Python2.7
- ROS1
Run this command, then cli installer starts.
python <(curl "https://raw.githubusercontent.com/rowma/rowma_ros/master/install.py" -s -N)
Manual installation
You can install `rowma_ros` manually if you fail the installation by the above command.
cd ~/catkin_ws/src
git clone https://github.com/rowma/rowma_ros
cd rowma_ros
pip install -r requirements.txt
catkin_make
Just run rosrun rowma_ros rowma
and you will get UUID when it successfully connects to the rowma server.
rosrun rowma_ros rowma
Caution: your robot will be exposed to the Internet after the rosrun command is successfully executed. For more information, see Other section in this page.
There are some options that can be specified to rosrun rowma_ros rowma
through environment variables like this below.
ROWMA_SERVER_URL=http://localhost:3000 ROWMA_DEBUG=True UUID=my-uuid rosrun rowma_ros rowma
name | value | default | description |
---|---|---|---|
ROWMA_DEBUG | boolean | False | Debug logs are shown if you set this value as True. |
API_KEY | string | None | API_KEY can be specified for authentication. This value is used along with an authenticator server specified by ROWMA_SERVER_URL. |
ROWMA_SERVER_URL | string | https://rowma.moriokalab.com | This value describes ConnectionManager URL. |
UUID | string | None | You can set an arbitrary UUID by using this variable. |
ROWMA_FLUENTD_ENABLED | boolean | False | We support fluentd to emit rostopic data. Set True to enable fluentd emission. |
ROWMA_FLUENTD_HOST | string | localhost | You can specify your fluentd's host name. |
ROWMA_FLUENTD_PORT | number | 24224 | You can specify your fluentd's port number. |
ENABLE_SCRIPT_DOWNLOAD | boolean | False | Any python code will be downloaded and executed as a ROS node in rowma directory/scripts if you set this value True. |
rowma_ros
emits rostopic messages which is spcecified in rowma.yml
to fluentd.
(Write Later)
docker run -it --rm -p 24224:24224 -p 24224:24224/udp -v `pwd`:/fluentd/etc fluentd -c /fluentd/etc/td-agent.conf -v
You can specify topic destinations to other robots or applications by using rowma.yml.
By default, rowma ros tries to find rowma.yml
from current directory and use it if exists.
Run rosrun command with file path (both absolute path and relative path are supported) if you clearly specify the file.
rosrun rowma_ros rowma ./rowma.yml
The file has to be this format below:
topic_destinations:
- destination:
type: robot
uuid: abc-abc*
topic: /chatter
- destination:
type: robot
uuid: abc-def*
topic: /test
fluentd_stream_topics:
- topic: /piyo
file_outputs:
- topic: /chatter
filepath: ./topiclog
This configuration says that your robot sends received /topic1 to uuid-of-robot-a and /topic2 to uuid-of-robot-b.
You can use Docker container when you develop this package.
# using Docker
docker build -t rowma_ros -f Dockerfile .
docker run --rm --network="host" -e ROWMA_SERVER_URL=http://127.0.0.1 -it rowma_ros
This ros package is tested on docker images because some functions in lib.utils
depend on ROS related directory especially ROS_PACKAGE_PATH
. (Docker >= 18.09.6
)
docker build -t rowma_ros_melodic_test -f Dockerfile.test.kinetic .
docker build -t rowma_ros_melodic_test -f Dockerfile.test.melodic .
docker run --rm -v `pwd`:/root/my_workspace/src/rowma_ros -it rowma_ros_kinetic_test
docker run --rm -v `pwd`:/root/my_workspace/src/rowma_ros -it rowma_ros_melodic_test
You can specify your own rowma server though, the default rowma server is provided at https://rowma.moriokalab.com
.
The default rowma server is located at https://rowma.moriokalab.com
as explained above. It is a public server without any auth, therefore you should be careful to connect your robot because anyone can run your robot easily. I recommend you to use the default server for experiments.
Do you unhappy your robots to be exposed? See Rowma.io.
You can run your own rowma server (its name is ConnectionManager) to avoid connecting your robot to the public server (official document).
In addition, specify the server address by ROWMA_SERVER_URL
when you run the node.
ROWMA_SERVER_URL=http://localhost:3000 rosrun rowma_ros rowma
For more information about ConnectionManager, check the repository.
The GPL License (GPL) 2020 - rowma project. Please have a look at the LICENSE.md for more details.