Control

Software components required to move Roboy 3.0 are collected in the roboy3 repository which is organized as a ROS workspace.

Prerequisites

Install the necessary libraries and ROS packages:

sudo apt install libeigen3-dev libxml2-dev coinor-libipopt-dev \ qtbase5-dev qtdeclarative5-dev qtmultimedia5-dev qml-module-qtquick2 \ qml-module-qtquick-window2 qml-module-qtmultimedia qml-module-qtquick-dialogs \ qml-module-qtquick-controls qml-module-qt-labs-folderlistmodel \ qml-module-qt-labs-settings libxml++2.6-dev swig doxygen
sudo apt install ros-$ROS_DISTRO-geometry-msgs ros-$ROS_DISTRO-moveit-msgs ros-$ROS_DISTRO-actionlib-msgs ros-$ROS_DISTRO-actionlib ros-$ROS_DISTRO-tf ros-$ROS_DISTRO-tf-conversions ros-$ROS_DISTRO-cv-bridge ros-$ROS_DISTRO-image-transport ros-$ROS_DISTRO-rviz ros-$ROS_DISTRO-sensor-msgs ros-$ROS_DISTRO-rqt-gui ros-$ROS_DISTRO-rqt-gui-cpp ros-$ROS_DISTRO-roslint ros-$ROS_DISTRO-rosbag ros-$ROS_DISTRO-controller-interface \ ros-$ROS_DISTRO-robot-state-publisher ros-$ROS_DISTRO-controller-manager ros-$ROS_DISTRO-effort-controllers ros-$ROS_DISTRO-eigen-conversions ros-$ROS_DISTRO-pcl-ros

Roboy 3.0 software stack

Assuming, one has ROS melodic or noetic installed, run:

# get the sources git clone https://github.com/Roboy/roboy3 export ROBOY3_WS=$PWD/roboy3 cd $ROBOY3_WS git submodule init git submodule update --recursive # build idyntree cd $ROBOY3_WS/src/idyntree mkdir build && cd build cmake .. -DIDYNTREE_USES_IPOPT=ON make -j4 sudo make install # build qpOASES cd $ROBOY3_WS/src/qpOASES/ mkdir build && cd build cmake .. sudo make -j4 install # build cnpy cd $ROBOY3_WS/src/ball_in_socket_estimator git submodule init git submodule update --recursive cd $ROBOY3_WS/src/ball_in_socket_estimator/third_party/cnpy/ mkdir build cd build cmake .. make -j4 sudo make install # !on Jetson Nano only! sudo ln -s /usr/include/opencv4/ /usr/include/opencv # build catkin workspace cd $ROBOY3_WS catkin_make source devel/setup.bash

For convenience, add sourcing of the ROS workspace to ~/.bashrc, e.g.

Core modules overview

Name

Function

Name

Function

roboy_communication

all custom Roboy ROS message and service types

common_utilities

a collection of utility functions and scripts shared by various modules

robots

roboy3 models (CAD files, SDFs, URDFs, configs)

kindyn

joint control, inverse kinematics, RVIZ interface

cardsflow_rviz

RVIZ implementation

roboy_state_estimator

joint state position estimators

ball_in_socket_estimator

various methods to infer 3DOF ball-and-socket joint position

Â