Hello Stretch Community,
My name is Adam Chung. I am recent Mechanical Engineering graduate from Carnegie Mellon University and a current Robotics Software intern at Hello Robot! I have been working along side the Drone Deploy: Ground Robotics team (formerly known as Rocos) to set up and use their cloud framework for controlling and deploying robots. After connecting Stretch, I was able to remotely view its state and send commands to it. I teleoperated Stretch around my workspace to gain a more in depth understanding of Drone Deploy’s cloud capabilities.
With the help of the Drone Deploy: Ground Robotics team, I was able to create an account here: https://portal.rocos.io/login. Once your account is made, connect Stretch either by logging in directly onboard the platform, or login in from an external device and remotely ssh into Stretch. Stretch will now be connected to a cloud tool to both monitor and control the agent(s). Below is an overview of some of the features I explored. You can find general documentation at https://docs.rocos.io/.
Live Data Viewer: The live data viewer allows users to interact directly with common ROS features. For example, we can see live data being published to all topics. We can also call services from the live data viewer.
Commands: The commands tab allows users to directly interact with ROS message types and edit specific message parameters. We can use these commands throughout the Drone Deploy framework to send predefined messages to the agent. For example, below is a forward command that is achieved by changing the x-value in the linear field of the cmd_vel topic.
Buttons: The buttons tab allows users to create pressable buttons that are directly mapped to commands. Buttons can also take in user input and this can be mapped to specific commands.
Automate Tool: The automate tool allows users to interact with a drag and drop API to help create workflows that combine commands. This API also has the ability to interact with data from the live data viewer and has common programming paradigms to create logic around this data for decision making.
Local Ops: The local operation tool lets users visualize the local operation of the agent. This will change as commands are sent to the agent and numerous agents can be visualized at once. Flows (created using the automate tool) can also be added and tested within local operations. Currently the AGV visualization does not look like Stretch due to the .gltf file. This will only allow the user to view the base movement of Stretch and not the arm, lift, or head. A possible point of improvement could be converting Stretch’s STL file to a .gltf file.
Dashboard: Finally, the dashboard tab lets users create predefined and custom widgets related to the agent’s operation. Many different visualization mediums can be used in this tab such as graphs, doughnut gauges, video streams, and local/global operations.
At times, especially when new launch files are launched, if things do not work immediately there are two things that seemed to fix them. Initially, reload the webpage before expecting new streams of data. If services still cannot be called, run the following command on your robot:
>>$ sudo systemctl restart rocos-agent
Thankfully, the Drone Deploy team has already created a profile for Stretch RE1 platforms in order to fast track usage, this consists of a number of predefined commands, buttons, and dashboards.
Some preliminary commands before entering the Drone Deploy framework consist of ensuring the teleop script is not running on startup and launching a desired launch file (launching stretch_driver will allow for movement of the joints, launching mapping will allow for both mapping and movement):
>>$ pkill -9 python >>$ roslaunch stretch_core stretch_driver.launch >>$ roslaunch stretch_mapping mapping.launch
Special thanks to @bshah for helping me debug some ROS related issues when using this framework, and to the wonderful individuals on the Drone Deploy: Ground Robotics team for guiding me through many different features of their cloud-based autonomy software. This software has the potential to create automated inspection systems or even a home automation system by combining different sets of commands, work-flows, and dashboards to monitor agents’ progress. I look forward to seeing how users will use Drone Deploy tools especially once the automated flow tools are fully released.