Instructor: Eng.Khaled Gabr
click to show course content
### Course Content
- Introduction to Linux, Terminal, and Shell
- Python Programming
- C++ Programming
- Introduction to ROS and ROS installation
- ROS Core Concepts:
- Master
- Nodes
- Topics
- Messages
- Services
- ROS Labs (rostopic, rosmsg, rosnode, rosservice)
- Creating a ROS WorkSpace and Packages
- Writing a ROS Publisher and Subscriber
- Writing a ROS Service and Client
- Creating a Custom ROS Message
- ROS Tools:
- Launch files
- ROS Bag
- RQT
- Remap
- Gazebo, RVIZ: creating a custom robot using Gazebo
- Creating a custom robot using URDF
- Adding Gazebo plugins with ROS
- Kinematics with ROS
- Turtlebot3 Lab
- ROS project
- TF ROS
- 2D and 3D Frames
- Transformations
- Localization:
- Kalman Filter
- MCL
- AMCL Package
- SLAM
- Navigation
Note: All nodes written in C++ and Python also.
-
- Users can input a linear (x) velocity in the range [2,6] (floating point allowed)
- Users can input an angular (z) velocity [2,6] (floating point allowed)
- another node to publish data to the /cmd_vel topic
- URDF
- Tasks 6.1:
- Create custom robot using URDF/XACRO the robot should have:
-
4 driver wheels
-
Normal Camera, the camera should be in front of robot.
-
Lidar should be at the center of robot.
-
- Create custom robot using URDF/XACRO the robot should have:
- Tasks 6.2:
- Create custom robot using URDF/XACRO the robot should have:
-
4 driver wheels OR 2 driver wheels and 1 driven free wheel(Castor wheel)
-
Normal Camera, the camera should be in front of robot.
-
the robot should have a tour at least 1m height attached with last edge of robot.
-
1 Depth Camera(Xbox camera, RealSense Camera,..), the camera should be attached to the tour and at least at height 1m of robot.
-
Lidar should be at the center of robot.
-
- Create custom robot using URDF/XACRO the robot should have:
- Tasks 6.1:
- Gazebo Plugin
- Add Gazebo Plugin (lidar, camera, diff) for Task 6.2 Robot. (gazebo.xacro)
- download .stl or .dae file for the lidar and added to mesh folder also added to your URDF
- create your world in gazebo
- launching the robot in your world (robot.launch)