Difference between revisions of "RoboRacing Software Installation Instructions"

From RoboJackets Wiki
Jump to navigation Jump to search
(Install ROS Noetic)
 
(52 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
Welcome!
 
Welcome!
 
   
 
   
Robojackets RoboRacing currently supports an Ubuntu 18.04 and ROS-melodic environment. The project may build/run in other environments, but we can't guarantee it.  
+
Robojackets RoboRacing currently supports an Ubuntu 20.04 and ROS-noetic environment. The project may build/run in other environments, but we can't guarantee it.  
  
 
Let's begin the installation process.
 
Let's begin the installation process.
  
 +
== THESE INSTRUCTIONS ARE FOR ROS1 IF YOU WANT TO FOLLOW THE ROS2 INSTRUCTIONS GO TO THIS LINK: https://wiki.robojackets.org/RoboRacing_Software_Installation_Instructions_ROS2 ==
  
== Step 1 - Get Terminator ==
 
  
We primarily use terminator instead of the default terminal since it allows for both horizontal and vertical splitting (which obviously increases overall productivity). Start up the default terminal and type:
+
= Install ROS Noetic =
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">sudo apt install terminator</span><br/></div>
 
You should now be using this from now on, it will help later.
 
  
== Step 2 - Set up your sources.list ==
+
== Step 1 - ROS Installation ==
 +
We will be using the instructions found on the ROS Noetic Ubuntu [http://wiki.ros.org/noetic/Installation/Ubuntu Guide]
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' <br>
 +
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 <br>
 +
sudo apt update <br>
 +
sudo apt install ros-noetic-desktop-full --yes <br>
 +
</span></div>
 +
 
 +
== Step 2 - Environment Variable Setup ==
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc <br>
 +
source ~/.bashrc
 +
</span></div>
 +
 
 +
== Step 3 - Get Terminator ==
 +
We primarily use terminator instead of the default terminal since it allows for both horizontal and vertical splitting (which ''obviously'' increases overall productivity). Start up the default terminal and type:
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
sudo apt install terminator
 +
</span></div>
 +
 
 +
= Setup Workspace =
 +
== Step 4 - Make File Structure ==
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
mkdir -p ~/catkin_ws/src <br>
 +
cd ~/catkin_ws/src <br>
 +
git clone https://github.com/RoboJackets/roboracing-software.git --recursive
 +
</span></div>
 +
 
 +
== Step 5 - Install Dependencies ==
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
cd ~/catkin_ws <br>
 +
sudo apt install python3-rosdep python-is-python3 python3-catkin-tools --yes <br>
 +
rosdep install --from-path src --ignore-src -y -r <br>
 +
</span></div>
 +
* ''rosdep'' will download and install all of the necessary ros package dependencies
 +
* -r option is there to ensure that one package failure will not prevent all other packages from being installed
 +
 
 +
== Step 6 - Building the Code ==
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
catkin_make <br>
 +
source ~/catkin_ws/devel/setup.bash
 +
</span></div>
  
Now for these next steps you don't need to understand what they do, only make sure they complete properly. So if you see any errors come up, tell one of us immediately. Copy this into your terminal:
+
You can run:
 
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
+
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
</div>
+
</span></div>
== Step 3 - Set up your keys ==
+
to ensure you don't have to source this setup.bash after every compilation.
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
+
 
</div>
+
If you see an error:
== Step 4 - Update your Debian packages ==
+
  CMake Error at /opt/ros/noetic/share/catkin/cmake/empy.cmake:30 (message):
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">sudo apt update</span><br/></div>
+
  Unable to find either executable 'empy' or Python module 'em'...  try
== Step 5 - Get Ros melodic ==
+
  installing the package 'python3-empy'
 +
 
 +
Run this instead
 
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
sudo apt install ros-melodic-desktop-full<br /></div>
+
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3<br>  
== Step 6 - Initialize rosdep ==
+
source ~/catkin_ws/devel/setup.bash
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">sudo rosdep init</span><br/></div><div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">rosdep update</span><br/></div>
+
</span></div>
== Step 7 - Environment Variable Setup ==
 
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace;">echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc</span><br/></div><div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace;">source ~/.bashrc</span><br/></div>
 
== Step 8 - Initialize catkin workspace ==
 
<div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace;">cd &lt;path to where you want to keep the project&gt;</span></div><div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace;">mkdir catkin_ws</span></div><div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace;"><span style="line-height: 20.8px;">cd catkin_ws</span></span></div><div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace;"><span style="line-height: 20.8px;">mkdir src</span></span><br/></div><div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace;"><span style="line-height: 20.8px;">cd src</span></span><br/></div><div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace;"><span style="line-height: 20.8px;">catkin_init_workspace</span></span><br/></div><div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace;"><span style="line-height: 20.8px;">cd ..</span></span><br/></div><div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace;"><span style="line-height: 20.8px;">catkin_make</span></span><br/></div>
 
*Command should complete and not really do anything
 
*If init_catkin_workspace failed then ROS did not install correctly and/or try "sudo apt-get update" which may fix the issue where catkin_init_workspace command can not be found
 
  
== Step 9&nbsp;- Clone RoboRacing Repository ==
+
Sometimes the python location is not accurate, causing a cmake to fail. This option also works if you are using catkin build.
 +
</span></div>
  
*Fork RoboRacing Github Repository
+
== Step 7 - Dependencies Problems ==
<div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace;">cd src</span></div><div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace;"><span style="line-height: 20.8px;">git clone https://github.com/RoboJackets/roboracing-software.git;</span></span></div>
+
For some computers, some of our packages aren't getting installed with ''rosdep install'' so just install them manually if you have issues with them:
== Step 10&nbsp;- Install ROS Dependencies ==
+
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
<div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><font face="courier new, courier, monospace">cd ..</font></div><div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace;">echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc</span>
+
sudo apt install ros-noetic-costmap-2d ros-noetic-effort-controllers ros-noetic-robot-localization
</div><div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace">rosdep install --from-path src --ignore-src -y<br/></div>
+
</span></div>
*rosdep will download and install all of the necessary ros package dependencies, type "y" whenever it asks if it is ok to continue installation
 
  
== Step 11&nbsp;- Install Python  Dependencies ==
+
Ensure that your pyyaml is set to the proper version
*Install python dependencies (for Python 2) which are not in ROS:
+
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
<div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace;">
+
pip install pyyaml==5.1.2
pip install keras tensorflow numpy pynput matplotlib</span></div>
+
</span></div>
  
 +
= Run the Code =
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
roscore &
 +
</span></div>
 +
*Then press [Enter]
 +
=== For IARRC Simulation  ===
 +
* In one terminal run:
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
roslaunch rr_gazebo macaroni_iarrc_circuit.launch
 +
</span></div>
 +
* In '''another''' terminal run:
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
roslaunch rr_iarrc test_circuit_sim.launch
 +
</span></div>
  
== Step 12&nbsp;- Build the Code ==
+
=== For EVGP Simulation ===
<div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="font-family:courier new,courier,monospace;">catkin_make</span></div>
+
* In one terminal run:
*If this fails the first time try running catkin_make again
+
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
*If it continues to fail because it could&nbsp;not find some of the igvc_msgs header files, run "catkin_make igvc_msgs_gencpp" and then "catkin_make"
+
roslaunch rr_gazebo evgp.launch
 +
</span></div>
 +
* In '''another''' terminal run:
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
roslaunch rr_evgp evgp_planning_demo.launch
 +
</span></div>
  
== Step 13&nbsp;- Run the Code ==
+
* Remeber to do ''source ~/catkin_ws/devel/setup.bash'' if the launch file can't be found in package (you should add this to ~/.bashrc if you haven't already)
<div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);">''In a separate terminal&nbsp;''<span style="font-family:courier new,courier,monospace;">roscore</span></div><div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);"><span style="line-height: 20.8px;">''In a terminal that isn't running roscore&nbsp;''<span style="font-family:courier new,courier,monospace;">roslaunch igvc igvc.launch</span></span></div>
+
* Gazebo sometimes freezes when loading right after installation so just run it, wait, kill it with [Ctrl-C], wait until it is dead, then retry!
*&nbsp;The code should now be running and complaining about not being able to connect to various devices, this is all good and you are ready to start writing igvc code
 

Latest revision as of 16:38, 21 November 2021

Welcome!

Robojackets RoboRacing currently supports an Ubuntu 20.04 and ROS-noetic environment. The project may build/run in other environments, but we can't guarantee it.

Let's begin the installation process.

THESE INSTRUCTIONS ARE FOR ROS1 IF YOU WANT TO FOLLOW THE ROS2 INSTRUCTIONS GO TO THIS LINK: https://wiki.robojackets.org/RoboRacing_Software_Installation_Instructions_ROS2

Install ROS Noetic

Step 1 - ROS Installation

We will be using the instructions found on the ROS Noetic Ubuntu Guide

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-noetic-desktop-full --yes

Step 2 - Environment Variable Setup

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

Step 3 - Get Terminator

We primarily use terminator instead of the default terminal since it allows for both horizontal and vertical splitting (which obviously increases overall productivity). Start up the default terminal and type:

sudo apt install terminator

Setup Workspace

Step 4 - Make File Structure

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/RoboJackets/roboracing-software.git --recursive

Step 5 - Install Dependencies

cd ~/catkin_ws
sudo apt install python3-rosdep python-is-python3 python3-catkin-tools --yes
rosdep install --from-path src --ignore-src -y -r

  • rosdep will download and install all of the necessary ros package dependencies
  • -r option is there to ensure that one package failure will not prevent all other packages from being installed

Step 6 - Building the Code

catkin_make
source ~/catkin_ws/devel/setup.bash

You can run:

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

to ensure you don't have to source this setup.bash after every compilation.

If you see an error:

 CMake Error at /opt/ros/noetic/share/catkin/cmake/empy.cmake:30 (message):
 Unable to find either executable 'empy' or Python module 'em'...  try
 installing the package 'python3-empy'

Run this instead

catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
source ~/catkin_ws/devel/setup.bash

Sometimes the python location is not accurate, causing a cmake to fail. This option also works if you are using catkin build.

Step 7 - Dependencies Problems

For some computers, some of our packages aren't getting installed with rosdep install so just install them manually if you have issues with them:

sudo apt install ros-noetic-costmap-2d ros-noetic-effort-controllers ros-noetic-robot-localization

Ensure that your pyyaml is set to the proper version

pip install pyyaml==5.1.2

Run the Code

roscore &

  • Then press [Enter]

For IARRC Simulation

  • In one terminal run:

roslaunch rr_gazebo macaroni_iarrc_circuit.launch

  • In another terminal run:

roslaunch rr_iarrc test_circuit_sim.launch

For EVGP Simulation

  • In one terminal run:

roslaunch rr_gazebo evgp.launch

  • In another terminal run:

roslaunch rr_evgp evgp_planning_demo.launch

  • Remeber to do source ~/catkin_ws/devel/setup.bash if the launch file can't be found in package (you should add this to ~/.bashrc if you haven't already)
  • Gazebo sometimes freezes when loading right after installation so just run it, wait, kill it with [Ctrl-C], wait until it is dead, then retry!