Difference between revisions of "IGVC Software Installation Instructions"

From RoboJackets Wiki
Jump to navigation Jump to search
(removed no longer used dependency installation)
m (Changed installation instructions from ROS Melodic to ROS Noetic)
 
(10 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
[[Category:IGVC]]
 
Welcome! Let's jump right in.
 
Welcome! Let's jump right in.
  
Robojackets IGVC currently supports the Ubuntu 16.04 and ROS-kinetic environment. If you don't know what those are, don't worry! The project may build/run in other environments, but we can't guarantee it.
+
Robojackets IGVC currently supports the Ubuntu 18.04 and ROS-melodic environment. If you don't know what those are, don't worry! The project may build/run in other environments, but we can't guarantee it.
  
 
Ok, lets get down to business.
 
Ok, lets get down to business.
Line 14: Line 15:
  
 
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:
 
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:
<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 http://packages.ros.org/ros/ubuntu] $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'</span><br/></div>
+
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px"><span style="font-family:courier new,courier,monospace"></span>
 +
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
 +
</div>
 
== Step 3 - Set up your keys ==
 
== Step 3 - Set up your keys ==
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px">sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
+
<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>
 
</div>
 
== Step 4 - Update your Debian packages ==
 
== 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>
 
<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 Kinetic ==
+
== Step 5 - Get ROS Noetic ==
 
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px">
 
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px">
sudo apt install ros-kinetic-desktop-full<br /></div>
+
sudo apt install ros-noetic-desktop-full<br /></div>
 
== Step 6 - Initialize rosdep ==
 
== 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>
 
<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 ==
 
== 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/kinetic/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>
+
<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</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 ==
 
== 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 <name of root folder of project i.e. "catkin_ws" or&nbsp;"igvc"</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 &lt;name of folder&gt;</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>
+
<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
 
*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
 
*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
Line 34: Line 37:
 
== Step 9&nbsp;- Clone IGVC Repository ==
 
== Step 9&nbsp;- Clone IGVC Repository ==
  
*Fork IGVC Github Repository
+
<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/igvc-software --recursive</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;">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 &lt;your fork&gt;</span></span></div>
+
 
== Step 10&nbsp;- Install ROS Dependencies ==
+
== Step 10&nbsp;- Install Dependencies ==
<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 devel/setup.bash" >> ~/.bashrc</span>
+
<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></div>
</div><div style="line-height: 20.8px; border: 1px solid rgb(204, 204, 204); padding: 5px 10px; background: rgb(238, 238, 238);">rosdep install igvc igvc_control igvc_description<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;">cd src/igvc-software</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;">./install_dependencies.sh</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
 
*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;- Build the Code ==
 
== Step 11&nbsp;- Build the Code ==
 +
<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 ../..</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;">catkin_make</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;">catkin_make</span></div>
 
*If this fails the first time try running catkin_make again
 
*If this fails the first time try running catkin_make again
Line 47: Line 52:
  
 
== Step 12&nbsp;- Run the Code ==
 
== Step 12&nbsp;- Run 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>
+
Refer back to the README of https://github.com/RoboJackets/igvc-software for instructions on running the code
*&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 18:09, 20 November 2021

Welcome! Let's jump right in.

Robojackets IGVC currently supports the Ubuntu 18.04 and ROS-melodic environment. If you don't know what those are, don't worry! The project may build/run in other environments, but we can't guarantee it.

Ok, lets get down to business.

Step 1 - Get Terminator

Forget the default Ubuntu terminal, we need both horizontal and vertical splits for productive activity. Start up the default terminal and type:

sudo apt install terminator

You should now be using this from now on, it will help later,

Step 2 - Set up your sources.list

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:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

Step 3 - Set up your keys

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

Step 4 - Update your Debian packages

sudo apt update

Step 5 - Get ROS Noetic

sudo apt install ros-noetic-desktop-full

Step 6 - Initialize rosdep

sudo rosdep init
rosdep update

Step 7 - Environment Variable Setup

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

Step 8 - Initialize catkin workspace

cd <path to where you want to keep the project>
mkdir catkin_ws
cd catkin_ws
mkdir src
cd src
catkin_init_workspace
cd ..
catkin_make
  • 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 - Clone IGVC Repository

cd src
git clone https://github.com/RoboJackets/igvc-software --recursive

Step 10 - Install Dependencies

cd ..
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
cd src/igvc-software
./install_dependencies.sh
  • 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 - Build the Code

cd ../..
catkin_make
  • If this fails the first time try running catkin_make again
  • If it continues to fail because it could not find some of the igvc_msgs header files, run "catkin_make igvc_msgs_gencpp" and then "catkin_make"

Step 12 - Run the Code

Refer back to the README of https://github.com/RoboJackets/igvc-software for instructions on running the code