This page provides a short overview on the Astrobee ROS framework and information on installing the ROS Astrobee Flight Softwares (AFS).
Detailed information on Astrobee including setup and usage is available through their GitHub pages documentation: NASA Astrobee Robot Software
Table of Content:
DISCLAIMER This assumes that you have already setup Ubuntu 20.04., ROS Noetic and ELISSA on your machine.
In this case you will not have to reinstall ROS, simply follow these steps:
Next, begin with the installation of the AFS. This is a condensed version of the more detailed guide provided by NASA.
For most of our use cases we will also not require the Astrobee Android submodule.
The Astrobee GitHub repository can be found here: Astrobee repository.
Detailed information on installation for non-NASA users can be found here: Install for general users
sudo apt-get install build-essential git
export ASTROBEE_WS=$HOME/astrobee
git clone git@github.com:nasa/astrobee.git $ASTROBEE_WS/src
pushd $ASTROBEE_WS/src
git submodule update --init --depth 1 description/media
popd
sudo apt-get update
sudo apt-get upgrade
pushd $ASTROBEE_WS
cd src/scripts/setup
./add_ros_repository.sh
sudo apt-get update
cd debians
./build_install_debians.sh
cd ../
./install_desktop_packages.sh
sudo rosdep init
rosdep update
popd
Some errors might pop up informing you about packages that could not be found. This can be ignored as they are for NASA interal use only.
pushd $ASTROBEE_WS
./src/scripts/configure.sh -l -F -D
source ~/.bashrc
popd
pushd $ASTROBEE_WS
catkin build
popd
pushd $ASTROBEE_WS
catkin build -j1
popd
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
echo "source ~/astrobee/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
Since ELISSA and Astrobee are both ROS (Noetic) frameworks, code developed for ELISSA can be migrated and integrated into the Astrobee framework.
Note, however that this should not be done with repositories from main ELISSA organization, as the code will require some modifications for
Astrobee integration. There is a dedicated ELISSA organization on GitHub concerned with ELISSA-Astrobee migration: RFT-RAGGA
Follow these simple steps:
cd astrobee/src
git submodule add git@github.com:${ELISSA-ORGANIZATION}/${REPOSITORY}.git
cd ..
catkin build
Using the Astrobee simulator for RAGGA/ELISSA related work requires some further setup.
This includes changing some default settings and replacing Astrobee files.
astrobee/src/astrobee/config/simulation
nav_cam_rate = 5.0;
This will allow the simulator to generate images for the NAV cam, in this particular example the images will be generated at a rate of 5 Hz.
astrobee/src/description/description/urdf
`<width>1280</width>`
`<height>960</height>`
By default, the NAV cam resolution is reduced in the simulator for lower computational effort.
Replace default .urdf.xacro file for the Astrobee FF, this is done to include our Gecko-Docking mechanism in the 3D visualization model.
astrobee/src/elissa3_astrobee/urdf
astrobee/src/description/description/urdf
Replace the default iss.rviz file to automatically have RViz configured for RAGGA research.
astrobee/src/elissa3_astrobee/rviz
astrobee/src/astrobee/resources/rviz
By default the propulsion modules of the Astrobee will be colored gray.
In reality, they are black.
astrobee/src/elissa3_astrobee/media/astrobee_freeflyer/meshes
astrobee/src/description/media/astrobee_freeflyer/meshes
Give Bumble another look, might be helpful later on.
astrobee/src/elissa3_astrobee/media/astrobee_freeflyer/meshes
astrobee/src/description/media/astrobee_freeflyer/meshes
astrobee/src/elissa3_astrobee/media/astrobee_freeflyer/media/materials/textures
astrobee/src/description/media/astrobee_freeflyer/media/materials/textures
WARNING
Due to inconsistencies with git pulling large files, some Unity assets may be corrupted after pulling normally !
For example, the ISS asset is supposed to be approximately 500 MB but if pulled normally, it may end up being less than 1 MB.
We recommend pulling large files via git-lfs!
Install it using this command:
sudo apt install git-lfs && git lfs install
Add the submodule:
git submodule add git@github.com:RFT-RAGGA/elissa3_astrobee_unity.git
Use lfs to fetch all files fully !
git lfs fetch --all
1.1. Install Unity Hub:
You can download it here
After the installation, you will be prompted to create an account.
1.2. Install the Unity Editor:
Youβre going to need a specific Unity Editor Version in order to open the project.
Version 2022.3.22f1
1.2.1. Open Unity Hub and head to βInstallsβ
1.2.2. Press βInstall Editorβ
1.2.3. Under Official Releases, locate Version 2022.3.22f1 and press the blue install button next to it
Head to the path:
./πππ/πππππππΉ_ππππππππ_πππππ’/π°πππππ
In this folder, there will be a script called βgenerate_urdf.shβ.
Run it with the parameters βbumbleβ,βhoneyβ and βqueenβ like this:
./generate_urdf.sh bumble && ./generate_urdf.sh honey && ./generate_urdf.sh queen
First (In the Unity Hub) head to Projects and press Add the filepath for the Unity project should be:
/astrobee/src/elissa3_astrobee_unity
then click on the now listed Project and it should open without issue !
(If you installed the wrong version, it should prompt you to install the missing version)
If you never did this before, it may be necessary to install the ROS-TCP-Endpoint
In your opened Unity Editor, locate βWindowβ expand, and select βPackagemanagerβ
Locate the +(Add) Button in the upper left corner:
and select βAdd from git urlβ and paste in the following url:
https://github.com/Unity-Technologies/ROS-TCP-Endpoint.git
Now you may proceed to start the simulation:
roslaunch elissa3_astrobee sim_elissa.launch fad_ops_gui:=true tcp_endpoint:=true
The βtcp_endpoint:=trueβ parameter is crucial for unity/ros communication !
Once everything has loaded you are able to start the cross communication by clicking on the play button
After this, it should automatically connect (127.0.0.1:10000)
If this doesnβt work, consider going to βRoboticsβ->βRos Settingsβ and ensuring your configuration matches the default configuration.
If you want to do some debugging, you should be able to listen to the published and rendered images by ROS on the topics:
/ππππππ/ππππππ_πππππ’
/πππππ’/ππππππ_πππππ’
Respectfully. You can check this for yourself by using the rostopic command as follows:
rostopic echo /ππππππ/ππππππ_πππππ’
rostopic echo /πππππ’/ππππππ_πππππ’
Hopefully, everything is working fine !