Deb Packages are widely used in the Linux environment. In the realm of Python, which I am familiar with, the equivalents would typically be a .whl (wheel) file or a .tar.gz (tarball) file. Python packages are distributed and installed using tools like pip, which serves as an installer similar to how ‘apt-get install ‘ functions in Linux.
Ubuntu is one of many distributions of the Linux operating system. There are others such as Fedora by Red Hat and Debian. In fact, Ubuntu is based on Debian. Among these, Ubuntu has gained significant popularity.
Starting with the groovy distribution, ROS introduced major changes to its software compilation process. Older versions, pre-groovy, used a build system called rosbuild, but more recent ones have transitioned to a new build system called catkin.
The turtlesim package is a fun feature of ROS. As the name suggests, it involves a simple robot simulation in the shape of a turtle. This simulator allows users to control the turtle through ROS message and service calls, introducing them to key concepts like topics, messages, services, parameters, and transforms.
The ‘/etc/apt/sources.list.d/ros-latest.list’ file in the Linux filesystem informs the Advanced Packaging Tool (apt) where to find packages for installation. This is similar to the role of echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ros-latest.list.
Moving on to Catkin packages, these require the creation of a catkin workspace where you can add packages, manage dependencies, and compile packages. The workspace consists of a top-level directory, often named ‘catkin_ws’, and a sub-directory named ‘src’. After initializing the catkin workspace, a file named ‘CMakeLists.txt’ is created, which is a configuration file used by CMake. CMake is a cross-platform system that manages the build process of software in a compiler-independent manner.
Upon building the workspace with ‘catkin_make’, you’ll notice two new directories: ‘build’ and ‘devel’. The ‘build’ directory is the build space for C++ packages, while the ‘devel’ directory contains a file named ‘setup.bash’. This script must be sourced before using the catkin workspace with ‘source devel/setup.bash’.
original: Deb Package is widely used, what I am familiar with is Python, so wonder what is the equivalent to Deb Package in Python? it would typically be .whl(wheel) file or a .tar.gz(tarball) file. Python pakcages are distributed and installed using the tools like pip, it is the installer. like apt-get install . Ubuntu is a distribution of the Linux operating system. others distros are Fedora by Red Hat, Debian, which Ubuntu is based on, so far Ubuntu is most popular. Starting with the groovy distribution, ROS made some major changes to the way software is compiled. Older, pre-groovy distributions used a build system called rosbuild, but more recent versions have begun to replace rosbuild with a new build system called catkin. the turtlesim package is a tool in ROS, the name suggests it involves a simple simulated robot in the shape of a turtue. there is this simulator that user can control via ROS message and service calls. So there are terminologies such as topics, messages, services, parameters and tf(transform). /etc/apt/sources.list.d/ros-latest.list is a file in the Linux filesystem that the Advanced Packaging Tool (apt) uses to know where to find packages to install. echo “deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main” | sudo tee /etc/apt/sources.list.d/ros-latest.list Catkin packages: we need to create a catkin workspace, add packages, manage inter-package dependencies and then compile packges first, create top level workspace directory and sub-directory named src. the top’s name is often called catkin_ws, the command is $ mkdir -p /hom/workspace/catkin_ws/src then, navigate to the source directory $cd /home/workspace/catkin_ws/src then, initialize the catkin workspace, which will create a CMakeLists.txt file, note CMakeLists.txt is configuration file used by CMake, CMake is a cross-platform system for managing the build process of software using a compiler-independent method. $ catkin_init_workspace, see the actual terminal: Creating symlink “/home/workspace/catkin_ws/src/CMakeLists.txt” pointing to “/opt/ros/kinetic/share/catkin/cmake/toplevel.cmake” step4, return to top level directory step5, build the workspace $ catkin_make, after above steps, you now have two new directories: bild and devel, build directory is the build space for C++ packages, the devel directory contains a file named setup.bash, this script must be sourced before using the catkin workspace with source devel/setup. Bash
Now clone the simple_arm package $ cd /home/workspace/catkin_ws/src/ $ git clone -b first_interaction https://github.com/udacity/RoboND-simple_arm/ simple_arm, note after cloning, it goes back to the first_interaction branch, that’s what -b first_interaction does.
then to build the simple_arm package by ty[ing $catkin_make, sometimes you might get a missing package error, then install controller_manager $ sudo apt-get install ros-kinetic-controller-manager.
Finally, launch ROS, $cd /home/workspace/catkin_ws/ $ catkin_make $source devel/setup.bash $roslaunch simple_arm robot_spawn.launch. now you have the very own two-degree-of-freedom arm simulation.
before, we need to run $rosdep check after sourced with source devel/setup.bash, if any missing then $rosdep install -i , i can run $ rosdep check simple_arm to check but it’s installed in workspace by Udacity.