
Install terminator with
sudo apt install terminator
In this example we will explore the world of ROS using a simple example. You will build a complete ROS package to calculate the Area and Volume of a Cylinder.
Note:
In the video we did not mention a very important step: when we are sourcing .bashrc, we assume that you have added your development environment to the file, as
source ~/catkin_ws/devel/setup.bash
You can add those lines either by editing the file (with vim or nano for example) or by:
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
In this way, every time you source ~./bashrc you make sure that the development environment is sourced correctly.
If you miss this step you won't be able to see your package among the list of available packages
Also: make sure you apply chmod to your file! That is the second most forgotten command in ROS, after sourcing the environment ;-)
The name of the package is different from our ROS-101 repository because you are meant to create the package and write the code by yourself
This video shows how to approach a ROS architecture: you want to find a good balance between modularity and complexity: you decide the best architecture that does the job at the minimum cost.
Python: is a master on none. It does all well, but does not excel in anything. It's extremely user friendly and forgiving, but at the cost of a slower runtime.
For the sake of our course and many application in real life, the advantage of a compiled language like C++ are negligible (in the milliseconds), so unless you are not creating real-time sensitive applications, you are fine with Python. Furthermore, many libraries, like cv2, are wrappers of C-compiled code, and run very fast, even in a Python project
This is the first time we are creating a Custom message. Custom messages are powerful but try and use already available messages because it will
save you time and
make you compatible with other people's work
In this course we will use
Standard messages http://wiki.ros.org/std_msgs
Common messages and in particular, geometry messages: http://wiki.ros.org/common_msgs?distro=noetic#geometry_msgs
Sensor messages: http://docs.ros.org/en/noetic/api/sensor_msgs/html/index-msg.html
The project is available on our repo at https://github.com/school-of-ros/ROS-101/tree/main/ros_101_tutorial_cylinder
Logging in ROS with Python: http://wiki.ros.org/rospy/Overview/Logging
rqt tools: http://wiki.ros.org/rqt
When we talk about pose, in robotics we mean the 6DOF position and orientation of a system. With this information you can reconstruct the state of your system for monitoring or feedback purposes.
As we will see in further video, you need to read your robot position when you want to navigate to a waypoint.
In this lesson you will be introduced to the basic math and coding necessary to perform autonomous navigation of a 2D robot
If you want to be more conservative with your sensor's reading, You can modify the code and simulate the sonar as the minimum value received rather than the average.
The "Zero to ROS" course will take you quickly into ROS. You will learn all the essential concepts through hands on examples and assignments. Learn at your own pace: no schedule!
Course Curriculum
Environment setup and Hello World: Setup your work environment with ROS Noetic and write your first Hello World project
Your first ROS Package: Learn the basics of ROS hands on, with a practical example. This section will guide you through the creation of a ROS package, ROS messages and launch files.
Robot Simulation: We will use the popular turtlesim package, a simple 2D robot simulator, to explain the basics of robotic simulation in ROS. You will learn hands on how to deal with transformations, how to control your robot and navigate to a waypoint
Introduction to Gazebo and Rviz: Gazebo is the popular physics simulator, compatible with ROS. Rviz is the popular visualization tool where you can display your robot position as well as sensors readings, planning... Learn how to build and visualize your robot and sensors using Xacro and Urdf
Perception: Gazebo is the popular physics simulator, compatible with ROS. Rviz is the popular visualization tool where you can display your robot position as well as sensor readings, planning, etc. Learn how to build and visualize your robot and sensors using Xacro and Urdf
Obstacle Avoidance: Put everything together and use the available sensors to avoid surrounding obstacles. You will learn to think like a robotic engineer with real world challenges
Final certificate
You will get your Master Certificate if you complete all your assignments: you can learn only with practice.
There will be 5 assignments in the course, each with an increasing level of difficulty.
But don't worry: we are here to help! Assignments are not mandatory to complete the course, but are required to get your certificate
Direct support through Discord
Connect to our Discord server and join our community. Ask questions and submit your assignments. We are here to help!