albert
Common ROS packages for the Airlab Albert platform.
The list of packages here is not complete. Packages will be added as they are being created/modified.
Note: ROS Melodic the only ROS distribution that has been tested by the authors at the time of writing.
Book a timeslot
To work with Albert in Robohouse, please book a timeslot!
Install using docker (recommended)
This repository contains a Dockerfile
that will build the complete workspace in an image under the albert_ws
directory. We do not have a registry online yet, so you need to build the image yourself as follows:
# clone and cd inside this repository
git clone git@gitlab.tudelft.nl:airlab-delft/ng-staging/albert/albert.git
cd albert
# build the docker image
docker build -t albert .
To run the simulation from this docker image, you can use the docker compose as follows:
# allow GUI's from docker by adding x server hosts
xhost +
# cd inside this repository
cd albert
# run's the simulation
docker compose run albert_gazebo
Install (locally)
There are a number of reasons it is useful to have the albert repository installed locally on your machine. Firstly, albert_gazebo
contains a full-fledged gazebo environment of Albert for development in simulation. Secondly, even if you don't plan to work with the gazebo simulation environment, you need albert_description
to properly visualize Albert in a local rviz window.
The simplest way to install is through vcstool:
mkdir -p albert_ws/src && cd albert_ws/src
git clone git@gitlab.tudelft.nl:airlab-delft/ng-staging/albert/albert.git
# If not installed yet
sudo apt install python3-vcstool
vcs import --input albert/albert_{melodic, noetic}.rosinstall .
Next, install all system dependencies that packages in albert_ws
depend upon but are missing on your computer.
# If not installed yet
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -y
Finally, build the packages using catkin.
Important: Make sure that any python virtual environments are deactivated!
# If not installed yet
sudo apt install python3-catkin-tools
catkin build
source devel/setup.bash
Developing on Albert
It is possible to work with Albert in two ways, either using your own computer, or by logging into the intel NUC through ssh.
First of all, make sure you are connected to the wifi network of albert.
wifi name: MHMMD 5G
wifi password: clearPath
Using ssh
There are essentially two computers integrated into Albert, one for the boxer base and an intel NUC to control the panda arm.
On the intel NUC everyone has their own user account, and consequently their own $HOME
, .bashrc
, .etc. All commonly required packages to start the panda are inside a common user called pandanuc
, and it should never be necessary to edit these files yourself. It is recommended to source the common workspaces inside your own .bashrc
, any private ros workspace you create should then have access to the common workspaces through workspace overlaying. If you do not have an account on the intel NUC yet, please ask in the lab! or send an email to c.salmi@tudelft.nl
To ssh into your user account on the intel NUC:
ssh <username>@<Intel-Nuc-IP>
password: <password>
Note: If you are running into a situation where you need to edit something in the common
pandanuc
, please create an issue on albert.
The computer integrated into the boxer should only be used to launch the boxer base related ros drivers. To ssh into the boxer use:
ssh administrator@<Boxer-IP>
password: clearpath
Using your local machine
It is recommended to always run the ros master on the intel NUC first. To connect your own device to this remote ros master, export the following:
export ROS_MASTER_URI=http://<Intel-Nuc-IP>:11311
export ROS_IP=<Your-Own-IP>
At this point you should be connected to the correct ros master and you should be able to see and echo the topics of the network.
Startup procedure
Working with Albert requires a particular procedure to start/bringup all ros launch files and nodes for mobile navigation of the base and manipulation with the arm. This can be a bit daunting when first starting to work with it, therefore we carefully explain all the steps required for startup here.
step 1
First and foremost startup the boxer and intel nuc and ssh into them.
step 2
From your intel nuc ssh prompt, launch the following:
roslaunch albert_bringup albert.launch
This will start the ros master (if not running), load the robot urdf as robot_description
parameter to the parameter server, and publishes the robots state information to /joint_states
and /tf
.
We now know what our robot looks like through the ros parameter server. However, we haven't actually run anything that talks to the hardware and tells our {Joint, Robot}StatePublisher the correct values for /joint_states
and /tf
. This also means we aren't able to send any control command to the robot yet.
step 3 (launch boxer)
Skip this step if you only want to use the panda.
From your boxer ssh prompt, launch the following:
roslaunch albert_bringup boxer.launch
This will start the ros drivers for all hardware components of the boxer (camera, lidar, imu, diff drive motors). Additionally this will start an EKF to estimate the state of the robot on 2D world plane, based on the wheel odometry and the imu information.
Note: Once the file is launched, the LED ring will flash red because the robot starts in an e-stop state. To reset this state, you need to press the reset button in the back of the robot, this will allow the boxer to move.
step 4 (launch panda)
To be able to start the driver for the panda use the web gui (available at https://172.16.0.2
) to:
1. Unlock the brakes.
2. Start the fci interface
Now from your intel nuc ssh prompt launch the following:
roslaunch albert_bringup panda.launch panda_control_mode:={position, velocity, effort, moveit}
Note that different modalities to be controlled can be specified by the panda_control_mode
argument.
Simulation
To start the Albert simulation environment in an empty world:
roslaunch albert_gazebo albert_gazebo_navigation.launch
To start the Albert simulation environment in different AIRLab Retail Store worlds, you will need to clone the AIRLab Retail Store Simulation:
Make sure to first follow the instructions in the AIRLab Retail Store Simulation README to declare the asset paths to gazebo.
cd ~/albert_ws/src
git clone -b april_tags git@gitlab.tudelft.nl:airlab-delft/ng-staging/retail_store_simulation.git
cd ..
catkin build && source devel/setup.bash
Example:
To launch albert in our airlab mockup store in both gazebo and rviz using AMCL for localization
roslaunch albert_gazebo albert_gazebo_navigation.launch world:=AH_store localization:=amcl
Troubleshooting
- The boxer is making a beeping sound and the power converter turns off: This happens when the battery level of the boxer is low. Turn off the boxer and plug in the charging cable. In general it is a good idea to keep the boxer plugged in whenever stationary, to avoid an unanounced shutdown of the panda arm.
- The panda.launch complains about network connection being refused: This usually happens after a change in gripper type. Make sure to connect the intel NUC to a display and properly initialize the gripper type through the franka gui in the browser. After applying the change of gripper type usually a reboot of the panda is required for the changes to take effect.
- The power converter won't turn on: When starting the boxer while plugged in, the power converter won't turn on. Make sure to start the boxer without a power cable plugged in. After startup it is possible to plug in the charging cable, while the converter stays on.
- The power converter is on, but the nuc won't turn on If the power converter does turn on (indicated by the three lights on the converter) and you still cannot start the NUC, this is most likely due to the boxer being fully charged which the power converter doesn't like. To resolve this issue, keep the boxer on for a few minutes and then restart the power converter.