Client Documentation

This page will help you set up the Canopy client so you can connect to an existing Canopy server. You will need to have ROS already installed.

Installation

$ cd <YOUR CATKIN WORKSPACE>/src
$ git clone https://github.com/baalexander/rospy_message_converter
$ git clone https://github.com/canopy-ros/canopy_client
$ cd ..
$ catkin_make

Execution

You will need to start the Canopy client node through a launch file. Here is an example.

<node pkg="canopy_client" type="client_node.py" name="node_name" output="screen">
        <param name="name" value="robot_name"/>
        <param name="host" value="canopy-server-example.com"/>
        <param name="port" value="8080"/>
        <param name="private_key" value="private_key" />
        <param name="description" value="example robot" />
        <rosparam>
                publishing:
                        - /topic1
                        - /topic2
                types:
                        - geometry_msgs/Point
                        - std_msgs/String
                trusted:
                        - ".*"
                        - other1 other2
        </rosparam>
</node>
Parameter Description
name
Name that the robot will appear as on the network. Messages published over Canopy appear on other robots under the topic robot_name/topicname
host, port
Host and port of the Canopy Server
private_key
Used to isolate groups of robots sharing the same server. Ensures that all robots on the desired communication network have the same private key. If you would like to use the dashboard to view data in real time and use the Platform-as-a-service system, you will need to go to canopy-server-example.com:3000 and create an account, which will generate a private key
description
A short text description of the robot
publishing
A list of topics that will be published through Canopy
types
A list of message types for the respective topics in publishing
trusted
A list of which other robots should be able to receive messages from a published topic. Each item in the list corresponds to one topic and should be a space-separated list of regular expressions