Difference between revisions of "RoboRacing Software Installation Instructions"

From RoboJackets Wiki
Jump to navigation Jump to search
(Install ROS Noetic)
 
(56 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>
  
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:
+
== Step 2 - Environment Variable Setup ==
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace"></span>
+
<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 /opt/ros/noetic/setup.bash" >> ~/.bashrc <br>  
</div>
+
source ~/.bashrc
== Step 3 - Set up your keys ==
+
</span></div>
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px">sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
 
</div>
 
== Step 4 - Update your Debian packages ==
 
<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>
 
== Step 5 - Get Ros melodic ==
 
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px">
 
sudo apt install ros-melodic-desktop-full<br /></div>
 
== Step 6 - Initialize rosdep ==
 
<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>
 
== 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 ==
+
== 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>
  
*Fork RoboRacing Github Repository
+
= Setup 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 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>
+
== Step 4 - Make File Structure ==
== 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>
+
mkdir -p ~/catkin_ws/src <br>
</div><div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);">rosdep install --from-path src --ignore-src -y<br/></div>
+
cd ~/catkin_ws/src <br>  
*rosdep will download and install all of the necessary ros package dependencies, type "y" whenever it asks if it is ok to continue installation
+
git clone https://github.com/RoboJackets/roboracing-software.git --recursive
 +
</span></div>
  
== Step 11&nbsp;- Build the Code ==
+
== Step 5 - Install Dependencies ==
<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>
+
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
*If this fails the first time try running catkin_make again
+
cd ~/catkin_ws <br>
*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"
+
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 12&nbsp;- Run the Code ==
+
== Step 6 - Building the Code ==
<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>
+
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
*&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
+
catkin_make <br>
 +
source ~/catkin_ws/devel/setup.bash
 +
</span></div>
 +
 
 +
You can run:
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
 +
</span></div>
 +
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
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3<br>
 +
source ~/catkin_ws/devel/setup.bash
 +
</span></div>
 +
 
 +
Sometimes the python location is not accurate, causing a cmake to fail. This option also works if you are using catkin build.
 +
</span></div>
 +
 
 +
== 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:
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
sudo apt install ros-noetic-costmap-2d ros-noetic-effort-controllers ros-noetic-robot-localization
 +
</span></div>
 +
 
 +
Ensure that your pyyaml is set to the proper version
 +
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace">
 +
pip install pyyaml==5.1.2
 +
</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>
 +
 
 +
=== For EVGP 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 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>
 +
 
 +
* 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!

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!