This repository contains software framework for the Sweetie Bot robot.
Note: We are hosting all our code on gitlab.com. We also have a github mirror, but we do not accept pull requests there, plese use primary source.
Also see CONTRIBUTING
page for details.
Build status | master branch |
---|---|
ros-noetic-sweetie-bot-base | |
ros-noetic-sweetie-bot |
Sweetie Bot control software is based on Robot Operating System (ROS). Also, it uses OROCOS middleware to implement real-time motion control subsystem. See sweetie_bot_deploy
and rt_control
for more details (namespaces, nodes, configuration parameters).
Sweetie Bot software support two modes: real and virtual.
- In a virtual mode it runs completely on the host computer. The real robot is not needed. You can program robot behaviors in a virtual environment (3d model).
- In a real mode it controls the real robot. One part of software runs the host computer and another part works the on-board computer.
Current version of Sweetie Bot control software provides following functionality:
- Joint level control using
joint_state_publisher
. - The control in Cartesian space (for the limbs and the body) using pose markers and MoveIt! integration.
- Movements creation (See TrjectoryEditor)
- High-level control based on FlexBe hybrid finite state machines via external repository
sweetie_bot_flexbe_behaviors
.
This repository contains all necessary software components to run the Sweetie Bot robots except for movements, sounds and actual behaviors which are stored in separate repositories
(sweetie_bot_proto2_movements
, sweetie_bot_sounds
and
sweetie_bot_flexbe_behaviors
.
config
directory contains robot configuration and deployment scriptssweetie_bot_deploy
--- robot-independent OROCOS deployment scripts and ROS launch files.sweetie_bot_proto2_deploy
--- robot-specific parameters and launch files for Proto2 Sweetie Bot robot.sweetie_bot_proto2_description
--- URDF model of Proto2 (git submodule).sweetie_bot_proto2_moveit_config
--- MoveIt! configuration for Proto2.
rt_control
--- OROCOS-based motion control subsystem (git submodule).hardware
--- hardware-depended components.sweetie_bot_eyes
--- eyes visualization.
behavior
--- high-level control subsystem (not implemented yet).hmi
--- operator interface components, intended to be running on the host computer.
The following instruction describes the installation process from binary packages. If you want to compile the whole project yourself see DEVELOPERS
page.
Check your system before install:
- OS: Ubuntu Focal (20.04) or Debian Buster. For Windows and Mac users we recommend virtual machine with linux installed in it. Windows users can try WSL but it is less supported method.
- CPU: x86-64 2 GHz dual core processor or better
- RAM: 4 GB system memory
- GPU: Almost any modern GPU with OpenGL 2.1 hardware acceleration support
- HDD: 3 GB of free hard drive space
- WAN: Internet access
There are three ways to install control software from a binary packages:
- Automatic script (recommended)
Run the script in your terminal, it will automatically install apt repositories with the all necessary dependencies:
wget -qO - https://apt.sweetie.bot/install.bash | sudo bash
Install software packages
sudo apt install ros-noetic-sweetie-bot
- Add apt repositories manually
Alternatively you can install the ROS Noetic repository as listed in official 'ROS instruction' and Sweetie Bot repository.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo sh -c 'echo deb http://apt.sweetie.bot $(lsb_release -sc) main > /etc/apt/sources.list.d/sweetie-bot.list'
Next you have to set up your keys:
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
wget -qO - https://apt.sweetie.bot/repository.key | sudo apt-key add -
Upgrade and install software packages
sudo apt update && sudo apt upgrade
sudo apt install ros-noetic-sweetie-bot
- Download packages manually
Alternatively you can download deb packages manually.
First of all refer 'ROS Installation instruction' manual to add official ROS repositary.
Download zip from here. Click on first green check mark ✓ and choose your OS, click "Download" at the next page. Unpack zip file and install both .deb packages included.
unzip sweetie-bot-focal-amd64.zip
sudo dpkg -i sweetie-bot-*.deb
sudo apt install -f
User editable part of sweetie bot software must be installed to the home directory of current user.
Install sweetie_bot_sounds
, sweetie_bot_proto2_movements
and sweetie_bot_flexbe_behaviors
:
mkdir -p ~/ros/sweetie_bot/src
cd ~/ros/sweetie_bot/src
git clone https://gitlab.com/sweetie-bot/sweetie_bot_sounds.git
git clone https://gitlab.com/sweetie-bot/sweetie_bot_proto2_movements.git
Build workspace
cd ~/ros/sweetie_bot
source /opt/ros/sweetie_bot/setup.bash
catkin_make
Note: Run this to supress priority warnings Forcing priority (20)
:
echo -e "@realtime - rtprio 99\n@realtime - memlock unlimited" | sudo tee /etc/security/limits.d/99-realtime.conf
sudo groupadd realtime
sudo usermod -a -G realtime $USER
Set ROS environment once in the every terminal before you start any of the following commands:
source ~/ros/sweetie_bot/devel/setup.bash
To start basic control framework:
roslaunch sweetie_bot_deploy joint_space_control.launch
Following command starts MoveIt! move_group
and FlexBe subsystem:
roslaunch sweetie_bot_deploy flexbe_control.launch run_flexbe_gui:=true run_moveit:=true
For more details see sweetie_bot_deploy
package.