Control
Software components required to move Roboy 3.0 are collected in the roboy3 repository which is organized as a ROS workspace.
Prerequisites
install ROS1 melodic/noetic
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 |
---|---|
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 |
Â