diff --git a/README.md b/README.md
new file mode 100644
index 0000000..cdeb03e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,130 @@
+# Autonomous Robotics Course
+## Instructor: [Eng.Khaled Gabr](https://github.com/khaledgabr77) | Robotics Corner Academy
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+## ROS Tasks
+
+> Note: All nodes written in C++ and Python also.
+
+### Task 1
+* [count_ws](Task_1/count_ws)
+ * publisher and subscriber to start count from 100 until the user uses CTRL C.
+ * 
+* [nomeer_ws](Task_1/nomeer_ws)
+ * publisher and subscriber using String msg("I am Learning Robotics and ROS") until the user uses CTRL C.
+ * 
+
+---
+### Task 2
+* [nomeer_robot_ws](Task_2/nomeer_robot_ws)
+ * move_pkg with robot_py.launch file.
+ * publish data to the /cmd_vel topic.
+ * Modify the code in order to print the odometry of the robot.
+ * Python file that creates a publisher that indicates the age of the robot
+
+ 
+
+---
+### Task 3
+* [control_nomeer_roboot_ws](Task_3/control_nomeer_roboot_ws)
+ * 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
+
+ 
+
+---
+### Task 4
+* [nomeer_ws](Task_4/nomeer_ws)
+ * publisher and subscriber to count from 0 until the user uses CTRL C.
+ * message nodes that publish Complex(real, imaginary) numbers.
+ * a service that can count the number of words, ex: i love you >> 3, you are the best >> 4. [](https://github.com/nomeera/Autonomous-Robotics-Course/tree/master/4.ROS/Tasks/Task_4/nomeer_ws/src/n_words_pkg)
+
+ 
+
+---
+### Task 5
+* [gazebo](Task_5/src)
+ * first gazebo task
+ * create Model(Robot) & Environment
+ * Adding the Environment + Model inside a World
+
+
+
+---
+### Task 6
+* [URDF](Task_6/src/nomeer_xacro_pkg/urdf/)
+ * [Tasks 6.1:](/4.ROS/Tasks/Task_6/src/nomeer_xacro_pkg/urdf/Robot_1/nomeer1_robot.xacro)
+ - 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.
+
+ 
+ ---
+ * [Tasks 6.2:](Task_7/src/robot_description/urdf/robot.xacro)
+ - 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.
+
+ 
+
+---
+### Task 7
+* [Gazebo Plugin](/4.ROS/Tasks/Task_7/src)
+ * Add Gazebo Plugin (lidar, camera, diff) for [Task 6.2](Task_7/src/robot_description/urdf/robot.xacro) Robot. ([gazebo.xacro](4.ROS/Tasks/Task_7/src/robot_description/urdf/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](Task_7/src/robot_gazebo/launch/robot.launch))
diff --git a/Task_1/count_ws/rosgraph.png b/Task_1/count_ws/rosgraph.png
new file mode 100644
index 0000000..b98c10f
Binary files /dev/null and b/Task_1/count_ws/rosgraph.png differ
diff --git a/Task_1/count_ws/src/CMakeLists.txt b/Task_1/count_ws/src/CMakeLists.txt
new file mode 120000
index 0000000..2016816
--- /dev/null
+++ b/Task_1/count_ws/src/CMakeLists.txt
@@ -0,0 +1 @@
+/opt/ros/noetic/share/catkin/cmake/toplevel.cmake
\ No newline at end of file
diff --git a/Task_1/count_ws/src/SubCount_pkg/CMakeLists.txt b/Task_1/count_ws/src/SubCount_pkg/CMakeLists.txt
new file mode 100644
index 0000000..7f8bf6e
--- /dev/null
+++ b/Task_1/count_ws/src/SubCount_pkg/CMakeLists.txt
@@ -0,0 +1,206 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(SubCount_pkg)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED COMPONENTS
+ roscpp
+ rospy
+ std_msgs
+)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+## * add a build_depend tag for "message_generation"
+## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+## but can be declared for certainty nonetheless:
+## * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+## * add "message_generation" and every package in MSG_DEP_SET to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * add "message_runtime" and every package in MSG_DEP_SET to
+## catkin_package(CATKIN_DEPENDS ...)
+## * uncomment the add_*_files sections below as needed
+## and list every .msg/.srv/.action file to be processed
+## * uncomment the generate_messages entry below
+## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+# add_message_files(
+# FILES
+# Message1.msg
+# Message2.msg
+# )
+
+## Generate services in the 'srv' folder
+# add_service_files(
+# FILES
+# Service1.srv
+# Service2.srv
+# )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+# FILES
+# Action1.action
+# Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+# generate_messages(
+# DEPENDENCIES
+# std_msgs
+# )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+## * add "dynamic_reconfigure" to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * uncomment the "generate_dynamic_reconfigure_options" section below
+## and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+# cfg/DynReconf1.cfg
+# cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+# INCLUDE_DIRS include
+# LIBRARIES SubCount_pkg
+# CATKIN_DEPENDS roscpp rospy std_msgs
+# DEPENDS system_lib
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+ ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+# src/${PROJECT_NAME}/SubCount_pkg.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+add_executable(Subscriber src/sub.cpp)
+
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+target_link_libraries(Subscriber
+ ${catkin_LIBRARIES}
+ )
+
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# catkin_install_python(PROGRAMS
+# scripts/my_python_script
+# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
+# install(TARGETS ${PROJECT_NAME}_node
+# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark libraries for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
+# install(TARGETS ${PROJECT_NAME}
+# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+# FILES_MATCHING PATTERN "*.h"
+# PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+# # myfile1
+# # myfile2
+# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_SubCount_pkg.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
diff --git a/Task_1/count_ws/src/SubCount_pkg/package.xml b/Task_1/count_ws/src/SubCount_pkg/package.xml
new file mode 100644
index 0000000..c039053
--- /dev/null
+++ b/Task_1/count_ws/src/SubCount_pkg/package.xml
@@ -0,0 +1,68 @@
+
+
+ SubCount_pkg
+ 0.0.0
+ The SubCount_pkg package
+
+
+
+
+ nomeer
+
+
+
+
+
+ TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ catkin
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+
+
+
+
+
+
+
+
diff --git a/Task_1/count_ws/src/SubCount_pkg/scripts/sub.py b/Task_1/count_ws/src/SubCount_pkg/scripts/sub.py
new file mode 100755
index 0000000..076d012
--- /dev/null
+++ b/Task_1/count_ws/src/SubCount_pkg/scripts/sub.py
@@ -0,0 +1,19 @@
+#!/usr/bin/python3
+
+import rospy
+from std_msgs.msg import Int32
+
+def listener():
+ # create node
+ rospy.init_node("Listener")
+ # subscribe count_topic
+ rospy.Subscriber("count_topic", Int32, callback)
+ rospy.spin() # processes incoming messages until the node is shut down.
+
+def callback(count): # callback function to handle msg
+ rospy.loginfo("count = %d", count.data)
+
+
+
+if __name__ == "__main__":
+ listener()
\ No newline at end of file
diff --git a/Task_1/count_ws/src/SubCount_pkg/src/sub.cpp b/Task_1/count_ws/src/SubCount_pkg/src/sub.cpp
new file mode 100755
index 0000000..fd8e04a
--- /dev/null
+++ b/Task_1/count_ws/src/SubCount_pkg/src/sub.cpp
@@ -0,0 +1,23 @@
+#include "ros/ros.h"
+#include "std_msgs/Int32.h"
+
+// callback function to handle messgae
+void callback(const std_msgs::Int32::ConstPtr& msg) // ConstPtr: smart pointer that provides automatic memory management for the message.
+{
+ ROS_INFO("count = %d", msg->data); // print msg on screen | -> point to class
+}
+
+int main(int argc, char** argv)
+{
+ // create node
+ ros::init(argc, argv, "Subscriber");
+ ros::NodeHandle nh;
+
+ // create subscriber object
+ ros::Subscriber sub;
+ // subscribe message from counter topic
+ sub = nh.subscribe("counter", 1, callback);
+ ros::spin();
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_1/count_ws/src/pubCount_pkg/CMakeLists.txt b/Task_1/count_ws/src/pubCount_pkg/CMakeLists.txt
new file mode 100644
index 0000000..33fed32
--- /dev/null
+++ b/Task_1/count_ws/src/pubCount_pkg/CMakeLists.txt
@@ -0,0 +1,206 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(pubCount_pkg)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED COMPONENTS
+ roscpp
+ rospy
+ std_msgs
+)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+## * add a build_depend tag for "message_generation"
+## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+## but can be declared for certainty nonetheless:
+## * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+## * add "message_generation" and every package in MSG_DEP_SET to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * add "message_runtime" and every package in MSG_DEP_SET to
+## catkin_package(CATKIN_DEPENDS ...)
+## * uncomment the add_*_files sections below as needed
+## and list every .msg/.srv/.action file to be processed
+## * uncomment the generate_messages entry below
+## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+# add_message_files(
+# FILES
+# Message1.msg
+# Message2.msg
+# )
+
+## Generate services in the 'srv' folder
+# add_service_files(
+# FILES
+# Service1.srv
+# Service2.srv
+# )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+# FILES
+# Action1.action
+# Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+# generate_messages(
+# DEPENDENCIES
+# std_msgs
+# )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+## * add "dynamic_reconfigure" to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * uncomment the "generate_dynamic_reconfigure_options" section below
+## and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+# cfg/DynReconf1.cfg
+# cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+# INCLUDE_DIRS include
+# LIBRARIES pubCount_pkg
+# CATKIN_DEPENDS roscpp rospy std_msgs
+# DEPENDS system_lib
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+ ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+# src/${PROJECT_NAME}/pubCount_pkg.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+add_executable(Publisher src/pub.cpp)
+
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+ target_link_libraries(Publisher
+ ${catkin_LIBRARIES}
+ )
+
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# catkin_install_python(PROGRAMS
+# scripts/my_python_script
+# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
+# install(TARGETS ${PROJECT_NAME}_node
+# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark libraries for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
+# install(TARGETS ${PROJECT_NAME}
+# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+# FILES_MATCHING PATTERN "*.h"
+# PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+# # myfile1
+# # myfile2
+# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_pubCount_pkg.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
diff --git a/Task_1/count_ws/src/pubCount_pkg/package.xml b/Task_1/count_ws/src/pubCount_pkg/package.xml
new file mode 100644
index 0000000..3b9dfd9
--- /dev/null
+++ b/Task_1/count_ws/src/pubCount_pkg/package.xml
@@ -0,0 +1,68 @@
+
+
+ pubCount_pkg
+ 0.0.0
+ The pubCount_pkg package
+
+
+
+
+ nomeer
+
+
+
+
+
+ TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ catkin
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+
+
+
+
+
+
+
+
diff --git a/Task_1/count_ws/src/pubCount_pkg/scripts/pub.py b/Task_1/count_ws/src/pubCount_pkg/scripts/pub.py
new file mode 100755
index 0000000..3f267a2
--- /dev/null
+++ b/Task_1/count_ws/src/pubCount_pkg/scripts/pub.py
@@ -0,0 +1,24 @@
+#!/usr/bin/python3
+
+import rospy
+from std_msgs.msg import Int32
+
+def talker():
+ # create node
+ rospy.init_node("Talker")
+ # create topic
+ pub = rospy.Publisher("count_topic", Int32, queue_size=1)
+ rate = rospy.Rate(1) # publish rate = 1 hz
+
+ count_msg = 100
+ while not rospy.is_shutdown(): # untill ROS shutdown
+ count_msg += 1
+ rospy.loginfo(count_msg) # print count_msg on screen
+ pub.publish(count_msg) # publish count_msg on /count_topic
+ rate.sleep()
+
+if __name__ == "__main__":
+ try:
+ talker()
+ except rospy.ROSInterruptException:
+ pass
\ No newline at end of file
diff --git a/Task_1/count_ws/src/pubCount_pkg/src/pub.cpp b/Task_1/count_ws/src/pubCount_pkg/src/pub.cpp
new file mode 100755
index 0000000..0af1237
--- /dev/null
+++ b/Task_1/count_ws/src/pubCount_pkg/src/pub.cpp
@@ -0,0 +1,27 @@
+#include
+#include
+
+int main(int argc, char** argv) // argc & argv to make node conect each other in ROS system
+{
+ // crate node
+ ros::init(argc, argv, "Publisher");
+ ros::NodeHandle nh;
+ ros::Rate rate(1); // publish rate = 1 hz
+ // create publisher object
+ ros::Publisher pub;
+ // publisher object publisher via counter topic
+ pub = nh.advertise("counter", 1);
+
+ std_msgs::Int32 count;
+ count.data = 100; // create count msg
+
+ while (ros::ok()) // loop until ROS shutdowm
+ {
+ pub.publish(count); // publish msg
+ ros::spinOnce(); //
+ rate.sleep(); // to make sure that we publish with 1 hz
+ ++count.data;
+ }
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_1/nomeer_ws/rosgraph.png b/Task_1/nomeer_ws/rosgraph.png
new file mode 100644
index 0000000..dfe1527
Binary files /dev/null and b/Task_1/nomeer_ws/rosgraph.png differ
diff --git a/Task_1/nomeer_ws/src/CMakeLists.txt b/Task_1/nomeer_ws/src/CMakeLists.txt
new file mode 120000
index 0000000..2016816
--- /dev/null
+++ b/Task_1/nomeer_ws/src/CMakeLists.txt
@@ -0,0 +1 @@
+/opt/ros/noetic/share/catkin/cmake/toplevel.cmake
\ No newline at end of file
diff --git a/Task_1/nomeer_ws/src/pub_pkg/CMakeLists.txt b/Task_1/nomeer_ws/src/pub_pkg/CMakeLists.txt
new file mode 100644
index 0000000..d133741
--- /dev/null
+++ b/Task_1/nomeer_ws/src/pub_pkg/CMakeLists.txt
@@ -0,0 +1,206 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(pub_pkg)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED COMPONENTS
+ roscpp
+ rospy
+ std_msgs
+)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+## * add a build_depend tag for "message_generation"
+## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+## but can be declared for certainty nonetheless:
+## * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+## * add "message_generation" and every package in MSG_DEP_SET to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * add "message_runtime" and every package in MSG_DEP_SET to
+## catkin_package(CATKIN_DEPENDS ...)
+## * uncomment the add_*_files sections below as needed
+## and list every .msg/.srv/.action file to be processed
+## * uncomment the generate_messages entry below
+## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+# add_message_files(
+# FILES
+# Message1.msg
+# Message2.msg
+# )
+
+## Generate services in the 'srv' folder
+# add_service_files(
+# FILES
+# Service1.srv
+# Service2.srv
+# )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+# FILES
+# Action1.action
+# Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+# generate_messages(
+# DEPENDENCIES
+# std_msgs
+# )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+## * add "dynamic_reconfigure" to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * uncomment the "generate_dynamic_reconfigure_options" section below
+## and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+# cfg/DynReconf1.cfg
+# cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+# INCLUDE_DIRS include
+# LIBRARIES pub_pkg
+# CATKIN_DEPENDS roscpp rospy std_msgs
+# DEPENDS system_lib
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+ ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+# src/${PROJECT_NAME}/pub_pkg.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+add_executable(publisher src/pub.cpp)
+
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+ target_link_libraries(publisher
+ ${catkin_LIBRARIES}
+ )
+
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# catkin_install_python(PROGRAMS
+# scripts/my_python_script
+# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
+# install(TARGETS ${PROJECT_NAME}_node
+# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark libraries for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
+# install(TARGETS ${PROJECT_NAME}
+# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+# FILES_MATCHING PATTERN "*.h"
+# PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+# # myfile1
+# # myfile2
+# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_pub_pkg.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
diff --git a/Task_1/nomeer_ws/src/pub_pkg/package.xml b/Task_1/nomeer_ws/src/pub_pkg/package.xml
new file mode 100644
index 0000000..a3e9bde
--- /dev/null
+++ b/Task_1/nomeer_ws/src/pub_pkg/package.xml
@@ -0,0 +1,68 @@
+
+
+ pub_pkg
+ 0.0.0
+ The pub_pkg package
+
+
+
+
+ nomeer
+
+
+
+
+
+ TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ catkin
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+
+
+
+
+
+
+
+
diff --git a/Task_1/nomeer_ws/src/pub_pkg/scripts/pub.py b/Task_1/nomeer_ws/src/pub_pkg/scripts/pub.py
new file mode 100755
index 0000000..8867262
--- /dev/null
+++ b/Task_1/nomeer_ws/src/pub_pkg/scripts/pub.py
@@ -0,0 +1,20 @@
+#!/usr/bin/python3
+
+import rospy
+from std_msgs.msg import String
+
+def Talker():
+ rospy.init_node("talker")
+ pub = rospy.Publisher("msg_topic", String, queue_size=1)
+ rate = rospy.Rate(1)
+
+ msg = "I am Learning Robotics and ROS"
+ while not rospy.is_shutdown():
+ pub.publish(msg)
+ rate.sleep()
+
+if __name__ == "__main__":
+ try:
+ Talker()
+ except rospy.ROSInterruptException:
+ pass
\ No newline at end of file
diff --git a/Task_1/nomeer_ws/src/pub_pkg/src/pub.cpp b/Task_1/nomeer_ws/src/pub_pkg/src/pub.cpp
new file mode 100755
index 0000000..c92f7db
--- /dev/null
+++ b/Task_1/nomeer_ws/src/pub_pkg/src/pub.cpp
@@ -0,0 +1,27 @@
+#include
+#include
+#include
+
+int main(int argc, char** argv)
+{
+ ros::init(argc, argv, "publisher");
+ ros::NodeHandle nh;
+ ros::Rate rate(1);
+
+ ros::Publisher pub;
+ pub = nh.advertise("string_topic",1);
+
+ std_msgs::String msg;
+ std::stringstream ss;
+ ss << "I am Learning Robotics and ROS";
+ msg.data = ss.str();
+
+ while(ros::ok())
+ {
+ pub.publish(msg);
+ ros::spinOnce();
+ rate.sleep();
+ }
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_1/nomeer_ws/src/sub_pkg/CMakeLists.txt b/Task_1/nomeer_ws/src/sub_pkg/CMakeLists.txt
new file mode 100644
index 0000000..d847b9b
--- /dev/null
+++ b/Task_1/nomeer_ws/src/sub_pkg/CMakeLists.txt
@@ -0,0 +1,206 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(sub_pkg)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED COMPONENTS
+ roscpp
+ rospy
+ std_msgs
+)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+## * add a build_depend tag for "message_generation"
+## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+## but can be declared for certainty nonetheless:
+## * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+## * add "message_generation" and every package in MSG_DEP_SET to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * add "message_runtime" and every package in MSG_DEP_SET to
+## catkin_package(CATKIN_DEPENDS ...)
+## * uncomment the add_*_files sections below as needed
+## and list every .msg/.srv/.action file to be processed
+## * uncomment the generate_messages entry below
+## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+# add_message_files(
+# FILES
+# Message1.msg
+# Message2.msg
+# )
+
+## Generate services in the 'srv' folder
+# add_service_files(
+# FILES
+# Service1.srv
+# Service2.srv
+# )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+# FILES
+# Action1.action
+# Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+# generate_messages(
+# DEPENDENCIES
+# std_msgs
+# )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+## * add "dynamic_reconfigure" to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * uncomment the "generate_dynamic_reconfigure_options" section below
+## and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+# cfg/DynReconf1.cfg
+# cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+# INCLUDE_DIRS include
+# LIBRARIES sub_pkg
+# CATKIN_DEPENDS roscpp rospy std_msgs
+# DEPENDS system_lib
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+ ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+# src/${PROJECT_NAME}/sub_pkg.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+add_executable(subscriber src/sub.cpp)
+
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+ target_link_libraries(subscriber
+ ${catkin_LIBRARIES}
+ )
+
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# catkin_install_python(PROGRAMS
+# scripts/my_python_script
+# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
+# install(TARGETS ${PROJECT_NAME}_node
+# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark libraries for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
+# install(TARGETS ${PROJECT_NAME}
+# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+# FILES_MATCHING PATTERN "*.h"
+# PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+# # myfile1
+# # myfile2
+# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_sub_pkg.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
diff --git a/Task_1/nomeer_ws/src/sub_pkg/package.xml b/Task_1/nomeer_ws/src/sub_pkg/package.xml
new file mode 100644
index 0000000..0b3a8e7
--- /dev/null
+++ b/Task_1/nomeer_ws/src/sub_pkg/package.xml
@@ -0,0 +1,68 @@
+
+
+ sub_pkg
+ 0.0.0
+ The sub_pkg package
+
+
+
+
+ nomeer
+
+
+
+
+
+ TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ catkin
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+
+
+
+
+
+
+
+
diff --git a/Task_1/nomeer_ws/src/sub_pkg/scripts/sub.py b/Task_1/nomeer_ws/src/sub_pkg/scripts/sub.py
new file mode 100755
index 0000000..dd7cff9
--- /dev/null
+++ b/Task_1/nomeer_ws/src/sub_pkg/scripts/sub.py
@@ -0,0 +1,17 @@
+#!/usr/bin/python3
+
+import rospy
+from std_msgs.msg import String
+
+def Lisener():
+ rospy.init_node("lisener")
+ sub = rospy.Subscriber("msg_topic", String, callback)
+ rospy.spin()
+
+
+def callback(msg):
+ rospy.loginfo("%s", msg.data)
+
+
+if __name__ == "__main__":
+ Lisener()
\ No newline at end of file
diff --git a/Task_1/nomeer_ws/src/sub_pkg/src/sub.cpp b/Task_1/nomeer_ws/src/sub_pkg/src/sub.cpp
new file mode 100755
index 0000000..9d7b915
--- /dev/null
+++ b/Task_1/nomeer_ws/src/sub_pkg/src/sub.cpp
@@ -0,0 +1,18 @@
+#include
+#include
+
+void callback(const std_msgs::String::ConstPtr& msg)
+{
+ ROS_INFO("%s", msg->data.c_str());
+}
+int main(int argc, char** argv)
+{
+ ros::init(argc, argv, "subscriber");
+ ros::NodeHandle nh;
+ ros::Subscriber sub;
+ sub = nh.subscribe("string_topic",1,callback);
+ ros::spin();
+
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_2/nomeer_robot_ws/rosgraph.png b/Task_2/nomeer_robot_ws/rosgraph.png
new file mode 100644
index 0000000..4da797d
Binary files /dev/null and b/Task_2/nomeer_robot_ws/rosgraph.png differ
diff --git a/Task_2/nomeer_robot_ws/src/CMakeLists.txt b/Task_2/nomeer_robot_ws/src/CMakeLists.txt
new file mode 120000
index 0000000..2016816
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/CMakeLists.txt
@@ -0,0 +1 @@
+/opt/ros/noetic/share/catkin/cmake/toplevel.cmake
\ No newline at end of file
diff --git a/Task_2/nomeer_robot_ws/src/move_pkg/CMakeLists.txt b/Task_2/nomeer_robot_ws/src/move_pkg/CMakeLists.txt
new file mode 100644
index 0000000..e52514f
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/move_pkg/CMakeLists.txt
@@ -0,0 +1,218 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(move_pkg)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED COMPONENTS
+ roscpp
+ rospy
+ std_msgs
+ message_generation
+)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+## * add a build_depend tag for "message_generation"
+## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+## but can be declared for certainty nonetheless:
+## * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+## * add "message_generation" and every package in MSG_DEP_SET to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * add "message_runtime" and every package in MSG_DEP_SET to
+## catkin_package(CATKIN_DEPENDS ...)
+## * uncomment the add_*_files sections below as needed
+## and list every .msg/.srv/.action file to be processed
+## * uncomment the generate_messages entry below
+## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+ add_message_files(
+ FILES
+ Age.msg
+# Message2.msg
+ )
+
+## Generate services in the 'srv' folder
+# add_service_files(
+# FILES
+# Service1.srv
+# Service2.srv
+# )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+# FILES
+# Action1.action
+# Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+ generate_messages(
+ DEPENDENCIES
+ std_msgs
+ )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+## * add "dynamic_reconfigure" to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * uncomment the "generate_dynamic_reconfigure_options" section below
+## and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+# cfg/DynReconf1.cfg
+# cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+# INCLUDE_DIRS include
+# LIBRARIES move_pkg
+ CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
+# DEPENDS system_lib
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+ ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+# src/${PROJECT_NAME}/move_pkg.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+add_executable(pub_twist_cpp src/pub_twistC.cpp)
+add_executable(sub_odom_cpp src/sub_odomC.cpp)
+add_executable(pub_age_node_cpp src/pub_ageC.cpp)
+add_executable(sub_age_node_cpp src/sub_ageC.cpp)
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+ target_link_libraries(pub_twist_cpp
+ ${catkin_LIBRARIES}
+ )
+ target_link_libraries(sub_odom_cpp
+ ${catkin_LIBRARIES}
+ )
+ target_link_libraries(pub_age_node_cpp
+ ${catkin_LIBRARIES}
+ )
+ target_link_libraries(sub_age_node_cpp
+ ${catkin_LIBRARIES}
+ )
+
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# catkin_install_python(PROGRAMS
+# scripts/my_python_script
+# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
+# install(TARGETS ${PROJECT_NAME}_node
+# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark libraries for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
+# install(TARGETS ${PROJECT_NAME}
+# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+# FILES_MATCHING PATTERN "*.h"
+# PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+# # myfile1
+# # myfile2
+# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_move_pkg.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
diff --git a/Task_2/nomeer_robot_ws/src/move_pkg/launch/robot_cpp.launch b/Task_2/nomeer_robot_ws/src/move_pkg/launch/robot_cpp.launch
new file mode 100755
index 0000000..ee14a44
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/move_pkg/launch/robot_cpp.launch
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Task_2/nomeer_robot_ws/src/move_pkg/launch/robot_py.launch b/Task_2/nomeer_robot_ws/src/move_pkg/launch/robot_py.launch
new file mode 100755
index 0000000..e499ba9
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/move_pkg/launch/robot_py.launch
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_2/nomeer_robot_ws/src/move_pkg/msg/Age.msg b/Task_2/nomeer_robot_ws/src/move_pkg/msg/Age.msg
new file mode 100644
index 0000000..589d725
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/move_pkg/msg/Age.msg
@@ -0,0 +1,3 @@
+int64 days
+int64 months
+int64 years
\ No newline at end of file
diff --git a/Task_2/nomeer_robot_ws/src/move_pkg/package.xml b/Task_2/nomeer_robot_ws/src/move_pkg/package.xml
new file mode 100644
index 0000000..ae3c00f
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/move_pkg/package.xml
@@ -0,0 +1,71 @@
+
+
+ move_pkg
+ 0.0.0
+ The move_pkg package
+
+
+
+
+ nomeer
+
+
+
+
+
+ TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ catkin
+ roscpp
+ rospy
+ std_msgs
+ message_generation
+ roscpp
+ rospy
+ std_msgs
+ message_runtime
+ roscpp
+ rospy
+ std_msgs
+ message_runtime
+
+
+
+
+
+
+
+
diff --git a/Task_2/nomeer_robot_ws/src/move_pkg/scripts/pub_age.py b/Task_2/nomeer_robot_ws/src/move_pkg/scripts/pub_age.py
new file mode 100755
index 0000000..a7f9961
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/move_pkg/scripts/pub_age.py
@@ -0,0 +1,35 @@
+#!/usr/bin/python3
+'''
+use custom message Age.msg to define robot age
+publish robot age via /age_topic
+'''
+
+import rospy
+from move_pkg.msg import Age
+
+def pub_age():
+ # create pub node
+ rospy.init_node("pub_age_node")
+ # create publisher object and publish via /age_topic
+ pub = rospy.Publisher("age_topic",Age,queue_size=1)
+ rate = rospy.Rate(1)
+
+ # define robot age
+ age = Age()
+ age.days = 17
+ age.months = 3
+ age.years = 22
+
+ # publish message
+ while not rospy.is_shutdown():
+ pub.publish(age)
+ rate.sleep()
+
+
+
+
+if __name__ == "__main__":
+ try:
+ pub_age()
+ except rospy.ROSInterruptException:
+ pass
diff --git a/Task_2/nomeer_robot_ws/src/move_pkg/scripts/pub_twist.py b/Task_2/nomeer_robot_ws/src/move_pkg/scripts/pub_twist.py
new file mode 100755
index 0000000..c3ed841
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/move_pkg/scripts/pub_twist.py
@@ -0,0 +1,38 @@
+#!/usr/bin/python3
+
+'''
+create node to move turtle1 robot
+publish Twist msg via /turtle1/cmd_vel
+'''
+
+import rospy
+from geometry_msgs.msg import Twist
+
+
+def pub_twist():
+ # create publisher node
+ rospy.init_node("pub_twist")
+
+ # create publisher object & topic
+ pub = rospy.Publisher("/turtle1/cmd_vel", Twist, queue_size=1)
+
+ rate = rospy.Rate(1) # publish twish with 1 hz rate
+
+ # define twist msg
+ twist = Twist()
+ twist.linear.x = 1
+ twist.angular.z = 1 # robot will rotate in circle
+
+ # publish msg
+ while not rospy.is_shutdown():
+ rospy.loginfo("\n")
+ rospy.loginfo(twist)
+ pub.publish(twist)
+ rate.sleep() # ensure that node publish with 1 hz
+
+
+if __name__ == "__main__":
+ try:
+ pub_twist()
+ except rospy.ROSInternalException:
+ pass
diff --git a/Task_2/nomeer_robot_ws/src/move_pkg/scripts/sub_age.py b/Task_2/nomeer_robot_ws/src/move_pkg/scripts/sub_age.py
new file mode 100755
index 0000000..e2ab2a8
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/move_pkg/scripts/sub_age.py
@@ -0,0 +1,19 @@
+#!/usr/bin/python3
+
+import rospy
+from move_pkg.msg import Age
+
+def callback(age):
+ rospy.loginfo("\n")
+ rospy.loginfo(age)
+
+def sub_age():
+ rospy.init_node("sub_age_node")
+ sub = rospy.Subscriber("age_topic", Age,callback)
+ rospy.spin()
+
+
+
+
+if __name__ == "__main__":
+ sub_age()
\ No newline at end of file
diff --git a/Task_2/nomeer_robot_ws/src/move_pkg/scripts/sub_odom.py b/Task_2/nomeer_robot_ws/src/move_pkg/scripts/sub_odom.py
new file mode 100755
index 0000000..5e3dd95
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/move_pkg/scripts/sub_odom.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python3
+
+'''
+we need to prinet the odometry of the robot
+we will subscribe /odom topic
+'''
+import rospy
+from nav_msgs.msg import Odometry
+
+def callback(odom):
+ rospy.loginfo(odom) # print whole odometry data on screen
+
+def sub_odom():
+ # creat subscribe node
+ rospy.init_node("sub_odom")
+
+ # subscribe /odom topic
+ rospy.Subscriber("/odom", Odometry,callback)
+ rospy.spin()
+
+
+
+
+if __name__ == "__main__":
+ sub_odom()
diff --git a/Task_2/nomeer_robot_ws/src/move_pkg/src/pub_ageC.cpp b/Task_2/nomeer_robot_ws/src/move_pkg/src/pub_ageC.cpp
new file mode 100755
index 0000000..177e7fa
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/move_pkg/src/pub_ageC.cpp
@@ -0,0 +1,24 @@
+#include
+#include
+
+int main(int argc, char** argv)
+{
+ ros::init(argc, argv,"pub_age_node_cpp");
+ ros::NodeHandle nh;
+ ros::Publisher pub = nh.advertise("age_topic_cpp",1);
+ ros::Rate rate(1);
+
+ move_pkg::Age age;
+ age.days = 17;
+ age.months = 3;
+ age.years = 22;
+
+ while (ros::ok())
+ {
+ pub.publish(age);
+ ros::spinOnce();
+ rate.sleep();
+ }
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_2/nomeer_robot_ws/src/move_pkg/src/pub_twistC.cpp b/Task_2/nomeer_robot_ws/src/move_pkg/src/pub_twistC.cpp
new file mode 100755
index 0000000..332042e
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/move_pkg/src/pub_twistC.cpp
@@ -0,0 +1,31 @@
+#include
+#include
+
+int main(int argc, char** argv)
+{
+ // create publisher node
+ ros::init(argc, argv, "pub_twist_cpp");
+ ros::NodeHandle nh; // to create a communication interface between your ROS node and the rest of the ROS network
+
+ // create publisher object
+ ros::Publisher pub;
+ // pub object publish via /turtle1/cmd_vel object
+ pub = nh.advertise("/turtle1/cmd_vel",1);
+ ros::Rate rate(1); // publish twish with 1 hz rate
+
+ // define twist msg
+ geometry_msgs::Twist twist;
+ twist.linear.x = 1;
+ twist.angular.z = 1; // robot will rotate in circle
+
+ // publish msg
+ while(ros::ok())
+ {
+ pub.publish(twist);
+ ros::spinOnce(); // used to handle incoming ROS messages
+ rate.sleep(); // ensure that node publish with 1 hz
+
+ }
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_2/nomeer_robot_ws/src/move_pkg/src/sub_ageC.cpp b/Task_2/nomeer_robot_ws/src/move_pkg/src/sub_ageC.cpp
new file mode 100755
index 0000000..98cefb6
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/move_pkg/src/sub_ageC.cpp
@@ -0,0 +1,20 @@
+#include
+#include
+
+void callback(const move_pkg::Age::ConstPtr& age)
+{
+ float days = age->days;
+ float months = age->months;
+ float years = age->years;
+ ROS_INFO("\ndays = %f\nmonths = %f\ndays = %f\n", days, months, years);
+}
+
+int main(int argc, char** argv)
+{
+ ros::init(argc, argv, "sub_age_node_cpp");
+ ros::NodeHandle nh;
+ ros::Subscriber sub = nh.subscribe("age_topic_cpp", 1, callback);
+ ros::spin();
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_2/nomeer_robot_ws/src/move_pkg/src/sub_odomC.cpp b/Task_2/nomeer_robot_ws/src/move_pkg/src/sub_odomC.cpp
new file mode 100755
index 0000000..9fa65bd
--- /dev/null
+++ b/Task_2/nomeer_robot_ws/src/move_pkg/src/sub_odomC.cpp
@@ -0,0 +1,47 @@
+#include
+#include
+
+void printOdomData(const nav_msgs::Odometry::ConstPtr& odom)
+{
+ // print pose and twist from Odometry
+ double x = odom->pose.pose.position.x;
+ double y = odom->pose.pose.position.y;
+ double z = odom->pose.pose.position.z;
+ ROS_INFO("Position: [%f, %f, %f]", x, y, z);
+
+ double qx = odom->pose.pose.orientation.x;
+ double qy = odom->pose.pose.orientation.y;
+ double qz = odom->pose.pose.orientation.z;
+ double qw = odom->pose.pose.orientation.w;
+ ROS_INFO("Orientation: [%f, %f, %f, %f]", qx, qy, qz, qw);
+
+ double vx = odom->twist.twist.linear.x;
+ double vy = odom->twist.twist.linear.y;
+ double vz = odom->twist.twist.linear.z;
+ ROS_INFO("Linear Velocity: [%f, %f, %f]", vx, vy, vz);
+
+ double wx = odom->twist.twist.angular.x;
+ double wy = odom->twist.twist.angular.y;
+ double wz = odom->twist.twist.angular.z;
+ ROS_INFO("Angular Velocity: [%f, %f, %f]", wx, wy, wz);
+}
+
+void callback(const nav_msgs::Odometry::ConstPtr& odom)
+{
+ printOdomData(odom);
+}
+
+int main(int argc, char** argv)
+{
+ // creat subscribe node
+ ros::init(argc, argv, "sub_odom_cpp");
+ ros::NodeHandle nh;
+
+ // create subscribe object
+ ros::Subscriber sub;
+ // subscribe /odom topic
+ sub = nh.subscribe("/odom",1000, callback);
+ ros::spin();
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_3/control_nomeer_roboot_ws/rosgraph.png b/Task_3/control_nomeer_roboot_ws/rosgraph.png
new file mode 100644
index 0000000..34d3c2b
Binary files /dev/null and b/Task_3/control_nomeer_roboot_ws/rosgraph.png differ
diff --git a/Task_3/control_nomeer_roboot_ws/src/CMakeLists.txt b/Task_3/control_nomeer_roboot_ws/src/CMakeLists.txt
new file mode 120000
index 0000000..2016816
--- /dev/null
+++ b/Task_3/control_nomeer_roboot_ws/src/CMakeLists.txt
@@ -0,0 +1 @@
+/opt/ros/noetic/share/catkin/cmake/toplevel.cmake
\ No newline at end of file
diff --git a/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/CMakeLists.txt b/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/CMakeLists.txt
new file mode 100644
index 0000000..1d2681c
--- /dev/null
+++ b/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/CMakeLists.txt
@@ -0,0 +1,210 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(move_turtlesim)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED COMPONENTS
+ roscpp
+ rospy
+ std_msgs
+)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+## * add a build_depend tag for "message_generation"
+## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+## but can be declared for certainty nonetheless:
+## * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+## * add "message_generation" and every package in MSG_DEP_SET to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * add "message_runtime" and every package in MSG_DEP_SET to
+## catkin_package(CATKIN_DEPENDS ...)
+## * uncomment the add_*_files sections below as needed
+## and list every .msg/.srv/.action file to be processed
+## * uncomment the generate_messages entry below
+## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+# add_message_files(
+# FILES
+# Message1.msg
+# Message2.msg
+# )
+
+## Generate services in the 'srv' folder
+# add_service_files(
+# FILES
+# Service1.srv
+# Service2.srv
+# )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+# FILES
+# Action1.action
+# Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+# generate_messages(
+# DEPENDENCIES
+# std_msgs
+# )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+## * add "dynamic_reconfigure" to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * uncomment the "generate_dynamic_reconfigure_options" section below
+## and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+# cfg/DynReconf1.cfg
+# cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+# INCLUDE_DIRS include
+# LIBRARIES move_turtlesim
+# CATKIN_DEPENDS roscpp rospy std_msgs
+# DEPENDS system_lib
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+ ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+# src/${PROJECT_NAME}/move_turtlesim.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+add_executable(pub_twist_cpp src/move_turtlesim.cpp)
+add_executable(input_user_cpp src/input_user.cpp)
+
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+ target_link_libraries(pub_twist_cpp
+ ${catkin_LIBRARIES}
+ )
+ target_link_libraries(input_user_cpp
+ ${catkin_LIBRARIES}
+)
+
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# catkin_install_python(PROGRAMS
+# scripts/my_python_script
+# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
+# install(TARGETS ${PROJECT_NAME}_node
+# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark libraries for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
+# install(TARGETS ${PROJECT_NAME}
+# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+# FILES_MATCHING PATTERN "*.h"
+# PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+# # myfile1
+# # myfile2
+# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_move_turtlesim.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
diff --git a/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/package.xml b/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/package.xml
new file mode 100644
index 0000000..4e49be2
--- /dev/null
+++ b/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/package.xml
@@ -0,0 +1,68 @@
+
+
+ move_turtlesim
+ 0.0.0
+ The move_turtlesim package
+
+
+
+
+ nomeer
+
+
+
+
+
+ TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ catkin
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+
+
+
+
+
+
+
+
diff --git a/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/scripts/input_user.py b/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/scripts/input_user.py
new file mode 100755
index 0000000..f64559e
--- /dev/null
+++ b/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/scripts/input_user.py
@@ -0,0 +1,49 @@
+#!/usr/bin/python3
+
+'''
+create node to move turtle1 robot
+publish Twist msg via /turtle1/cmd_vel
+Users can input a linear (x) velocity in the range [2,6]
+Users can input an angular (z) velocity [1,3]ew
+'''
+
+import rospy
+from geometry_msgs.msg import Twist
+
+
+def pub_twist():
+ # create publisher node
+ rospy.init_node("input_user")
+
+ # create publisher object & topic
+ pub = rospy.Publisher("/turtle1/cmd_vel", Twist, queue_size=1)
+
+ rate = rospy.Rate(1) # publish twish with 1 hz rate
+
+ # ask user to input linear.x & angular.z
+ while not rospy.is_shutdown():
+ # define twist msg
+ try:
+ twist = Twist()
+ twist.linear.x = float(input("Enter linear.x value [2-6]: "))
+ twist.angular.z = float(input("Enter angular.z value [2-6]: "))
+
+ # ensure that linear.x & angular.z = [2-6]
+ if 2 <= twist.linear.x <= 6 and 2 <= twist.angular.z <= 6:
+ break
+ else:
+ print("\nPLEASE ENTER VALUE FROM 2 TO 6\n")
+ except ValueError: # error handling
+ print("\ninvalid input, try again")
+ print("PLEASE ENTER VALUE FROM 2 TO 6\n")
+
+
+ # publish msg
+ pub.publish(twist)
+
+
+if __name__ == "__main__":
+ try:
+ pub_twist()
+ except rospy.ROSInternalException:
+ pass
diff --git a/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/scripts/move_turtlesim.py b/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/scripts/move_turtlesim.py
new file mode 100755
index 0000000..c3ed841
--- /dev/null
+++ b/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/scripts/move_turtlesim.py
@@ -0,0 +1,38 @@
+#!/usr/bin/python3
+
+'''
+create node to move turtle1 robot
+publish Twist msg via /turtle1/cmd_vel
+'''
+
+import rospy
+from geometry_msgs.msg import Twist
+
+
+def pub_twist():
+ # create publisher node
+ rospy.init_node("pub_twist")
+
+ # create publisher object & topic
+ pub = rospy.Publisher("/turtle1/cmd_vel", Twist, queue_size=1)
+
+ rate = rospy.Rate(1) # publish twish with 1 hz rate
+
+ # define twist msg
+ twist = Twist()
+ twist.linear.x = 1
+ twist.angular.z = 1 # robot will rotate in circle
+
+ # publish msg
+ while not rospy.is_shutdown():
+ rospy.loginfo("\n")
+ rospy.loginfo(twist)
+ pub.publish(twist)
+ rate.sleep() # ensure that node publish with 1 hz
+
+
+if __name__ == "__main__":
+ try:
+ pub_twist()
+ except rospy.ROSInternalException:
+ pass
diff --git a/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/src/input_user.cpp b/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/src/input_user.cpp
new file mode 100755
index 0000000..aef05f0
--- /dev/null
+++ b/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/src/input_user.cpp
@@ -0,0 +1,53 @@
+#include
+#include
+#include
+
+int main(int argc, char** argv)
+{
+ // create publisher node
+ ros::init(argc, argv, "input_user_cpp");
+ ros::NodeHandle nh; // to create a communication interface between your ROS node and the rest of the ROS network
+
+ // create publisher object
+ ros::Publisher pub;
+ // pub object publish via /turtle1/cmd_vel object
+ pub = nh.advertise("/turtle1/cmd_vel",1);
+ ros::Rate rate(5); // publish twish with 1 hz rate
+
+ // define twist object
+ geometry_msgs::Twist twist;
+
+ // ask user to input linear.x & angular.z
+ while (ros::ok())
+ {
+ std::cout << "Enter linear.x value [2-6]: " ;
+ std::cin >> twist.linear.x ;
+ std::cout << "Enter angular.z value [2-6]: " ;
+ std::cin >> twist.angular.z ;
+
+ // error handling to check if user enter int value or no
+ {
+ // add code in this section
+ }
+
+ // ensure that linear.x & angular.z = [2-6]
+ if (twist.linear.x >= 2 && twist.linear.x <= 6 &&
+ twist.angular.z >= 2 && twist.angular.z <= 6)
+ break;
+ else
+ std::cout << "\nPLEASE ENTER VALUE FROM 2 TO 6\n";
+
+ }
+
+ // to ensure that node will publish msg just one time and prevent node to shutdown before publishing
+ // rate.sleep return true after node jumped forward in time
+ while(!rate.sleep())
+ {
+ pub.publish(twist);
+ ros::spinOnce(); // used to handle incoming ROS messages
+ }
+
+
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/src/move_turtlesim.cpp b/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/src/move_turtlesim.cpp
new file mode 100755
index 0000000..332042e
--- /dev/null
+++ b/Task_3/control_nomeer_roboot_ws/src/move_turtlesim/src/move_turtlesim.cpp
@@ -0,0 +1,31 @@
+#include
+#include
+
+int main(int argc, char** argv)
+{
+ // create publisher node
+ ros::init(argc, argv, "pub_twist_cpp");
+ ros::NodeHandle nh; // to create a communication interface between your ROS node and the rest of the ROS network
+
+ // create publisher object
+ ros::Publisher pub;
+ // pub object publish via /turtle1/cmd_vel object
+ pub = nh.advertise("/turtle1/cmd_vel",1);
+ ros::Rate rate(1); // publish twish with 1 hz rate
+
+ // define twist msg
+ geometry_msgs::Twist twist;
+ twist.linear.x = 1;
+ twist.angular.z = 1; // robot will rotate in circle
+
+ // publish msg
+ while(ros::ok())
+ {
+ pub.publish(twist);
+ ros::spinOnce(); // used to handle incoming ROS messages
+ rate.sleep(); // ensure that node publish with 1 hz
+
+ }
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_4/nomeer_ws/rosgraph.png b/Task_4/nomeer_ws/rosgraph.png
new file mode 100644
index 0000000..0cbc27d
Binary files /dev/null and b/Task_4/nomeer_ws/rosgraph.png differ
diff --git a/Task_4/nomeer_ws/src/CMakeLists.txt b/Task_4/nomeer_ws/src/CMakeLists.txt
new file mode 120000
index 0000000..2016816
--- /dev/null
+++ b/Task_4/nomeer_ws/src/CMakeLists.txt
@@ -0,0 +1 @@
+/opt/ros/noetic/share/catkin/cmake/toplevel.cmake
\ No newline at end of file
diff --git a/Task_4/nomeer_ws/src/cmplx_num_pkg/CMakeLists.txt b/Task_4/nomeer_ws/src/cmplx_num_pkg/CMakeLists.txt
new file mode 100644
index 0000000..d1ad538
--- /dev/null
+++ b/Task_4/nomeer_ws/src/cmplx_num_pkg/CMakeLists.txt
@@ -0,0 +1,210 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(cmplx_num_pkg)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED COMPONENTS
+ roscpp
+ rospy
+ std_msgs
+ message_generation
+)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+## * add a build_depend tag for "message_generation"
+## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+## but can be declared for certainty nonetheless:
+## * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+## * add "message_generation" and every package in MSG_DEP_SET to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * add "message_runtime" and every package in MSG_DEP_SET to
+## catkin_package(CATKIN_DEPENDS ...)
+## * uncomment the add_*_files sections below as needed
+## and list every .msg/.srv/.action file to be processed
+## * uncomment the generate_messages entry below
+## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+ add_message_files(
+ FILES
+ cmplx.msg
+# Message2.msg
+ )
+
+## Generate services in the 'srv' folder
+# add_service_files(
+# FILES
+# Service1.srv
+# Service2.srv
+# )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+# FILES
+# Action1.action
+# Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+ generate_messages(
+ DEPENDENCIES
+ std_msgs
+ )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+## * add "dynamic_reconfigure" to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * uncomment the "generate_dynamic_reconfigure_options" section below
+## and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+# cfg/DynReconf1.cfg
+# cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+# INCLUDE_DIRS include
+# LIBRARIES cmplx_num_pkg
+ CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
+# DEPENDS system_lib
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+ ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+# src/${PROJECT_NAME}/cmplx_num_pkg.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+add_executable(pub_cmplx_cpp src/pub_cmplx.cpp)
+add_executable(sub_cmplx_cpp src/sub_cmplx.cpp)
+
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+ target_link_libraries(pub_cmplx_cpp
+ ${catkin_LIBRARIES}
+ )
+ target_link_libraries(sub_cmplx_cpp
+ ${catkin_LIBRARIES}
+ )
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# catkin_install_python(PROGRAMS
+# scripts/my_python_script
+# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
+# install(TARGETS ${PROJECT_NAME}_node
+# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark libraries for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
+# install(TARGETS ${PROJECT_NAME}
+# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+# FILES_MATCHING PATTERN "*.h"
+# PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+# # myfile1
+# # myfile2
+# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_cmplx_num_pkg.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
diff --git a/Task_4/nomeer_ws/src/cmplx_num_pkg/msg/cmplx.msg b/Task_4/nomeer_ws/src/cmplx_num_pkg/msg/cmplx.msg
new file mode 100755
index 0000000..8316ea0
--- /dev/null
+++ b/Task_4/nomeer_ws/src/cmplx_num_pkg/msg/cmplx.msg
@@ -0,0 +1,2 @@
+float64 real
+float64 imaginary
diff --git a/Task_4/nomeer_ws/src/cmplx_num_pkg/package.xml b/Task_4/nomeer_ws/src/cmplx_num_pkg/package.xml
new file mode 100644
index 0000000..a2853cb
--- /dev/null
+++ b/Task_4/nomeer_ws/src/cmplx_num_pkg/package.xml
@@ -0,0 +1,71 @@
+
+
+ cmplx_num_pkg
+ 0.0.0
+ The cmplx_num_pkg package
+
+
+
+
+ nomeer
+
+
+
+
+
+ TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ catkin
+ roscpp
+ rospy
+ std_msgs
+ message_generation
+ roscpp
+ rospy
+ std_msgs
+ message_runtime
+ roscpp
+ rospy
+ std_msgs
+ message_runtime
+
+
+
+
+
+
+
+
diff --git a/Task_4/nomeer_ws/src/cmplx_num_pkg/scripts/pub_cmplx.py b/Task_4/nomeer_ws/src/cmplx_num_pkg/scripts/pub_cmplx.py
new file mode 100755
index 0000000..3166849
--- /dev/null
+++ b/Task_4/nomeer_ws/src/cmplx_num_pkg/scripts/pub_cmplx.py
@@ -0,0 +1,30 @@
+#!/usr/bin/python3
+
+import rospy
+from cmplx_num_pkg.msg import cmplx
+import random
+
+def pub_cmplx():
+ # node & topic
+ rospy.init_node("pub_cmplx")
+ pub = rospy.Publisher("cmplx_topic", cmplx, queue_size=1)
+ rate = rospy.Rate(1)
+
+ # message
+ cmplxNum = cmplx()
+
+ # publishing
+ while not rospy.is_shutdown():
+ cmplxNum.real = round(random.random() * 100,3)
+ cmplxNum.imaginary = round(random.random() * 100,3)
+
+ pub.publish(cmplxNum)
+ rate.sleep()
+
+
+
+if __name__ == "__main__":
+ try:
+ pub_cmplx()
+ except rospy.ROSInterruptException:
+ pass
diff --git a/Task_4/nomeer_ws/src/cmplx_num_pkg/scripts/sub_cmplx.py b/Task_4/nomeer_ws/src/cmplx_num_pkg/scripts/sub_cmplx.py
new file mode 100755
index 0000000..569ce13
--- /dev/null
+++ b/Task_4/nomeer_ws/src/cmplx_num_pkg/scripts/sub_cmplx.py
@@ -0,0 +1,16 @@
+#!/usr/bin/python3
+
+import rospy
+from cmplx_num_pkg.msg import cmplx
+
+
+def callback(cmplx):
+ rospy.loginfo("(%.3fi + %.3fj)", cmplx.real, cmplx.imaginary)
+def sub_cmplx():
+ rospy.init_node("sub_cmplx")
+ sub = rospy.Subscriber("cmplx_topic", cmplx, callback)
+ rospy.spin()
+
+
+if __name__ == "__main__":
+ sub_cmplx()
\ No newline at end of file
diff --git a/Task_4/nomeer_ws/src/cmplx_num_pkg/src/pub_cmplx.cpp b/Task_4/nomeer_ws/src/cmplx_num_pkg/src/pub_cmplx.cpp
new file mode 100755
index 0000000..01d1985
--- /dev/null
+++ b/Task_4/nomeer_ws/src/cmplx_num_pkg/src/pub_cmplx.cpp
@@ -0,0 +1,27 @@
+#include
+#include
+#include
+int main(int argc, char** argv)
+{
+ // node & topic
+ ros::init(argc, argv, "pub_cmplx_cpp");
+ ros::NodeHandle nh;
+ ros::Publisher pub = nh.advertise("cmplx_topic_cpp",1);
+ ros::Rate rate(1);
+
+ // message
+ cmplx_num_pkg::cmplx cmplxNum;
+
+ while (ros::ok())
+ {
+ srand(time(0));
+ cmplxNum.real = ( (float)rand() / RAND_MAX) * 100;
+ cmplxNum.imaginary = ( (float)rand() / RAND_MAX) * 100;
+ pub.publish(cmplxNum);
+ ros::spinOnce();
+ rate.sleep();
+ }
+
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_4/nomeer_ws/src/cmplx_num_pkg/src/sub_cmplx.cpp b/Task_4/nomeer_ws/src/cmplx_num_pkg/src/sub_cmplx.cpp
new file mode 100755
index 0000000..dff2fdd
--- /dev/null
+++ b/Task_4/nomeer_ws/src/cmplx_num_pkg/src/sub_cmplx.cpp
@@ -0,0 +1,18 @@
+#include
+#include
+
+
+void callback(const cmplx_num_pkg::cmplx::ConstPtr& cmplxNum)
+{
+ ROS_INFO("(%.3fi + %.3fj)", cmplxNum->real, cmplxNum->imaginary);
+
+}
+int main(int argc, char** argv)
+{
+ ros::init(argc, argv, "sub_cmplx_cpp");
+ ros::NodeHandle nh;
+ ros::Subscriber sub = nh.subscribe("cmplx_topic_cpp",1,callback);
+ ros::spin();
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_4/nomeer_ws/src/count_pkg/CMakeLists.txt b/Task_4/nomeer_ws/src/count_pkg/CMakeLists.txt
new file mode 100644
index 0000000..2fdd0d3
--- /dev/null
+++ b/Task_4/nomeer_ws/src/count_pkg/CMakeLists.txt
@@ -0,0 +1,211 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(count_pkg)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED COMPONENTS
+ roscpp
+ rospy
+ std_msgs
+
+)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+## * add a build_depend tag for "message_generation"
+## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+## but can be declared for certainty nonetheless:
+## * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+## * add "message_generation" and every package in MSG_DEP_SET to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * add "message_runtime" and every package in MSG_DEP_SET to
+## catkin_package(CATKIN_DEPENDS ...)
+## * uncomment the add_*_files sections below as needed
+## and list every .msg/.srv/.action file to be processed
+## * uncomment the generate_messages entry below
+## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+# add_message_files(
+# FILES
+# Message1.msg
+# Message2.msg
+# )
+
+## Generate services in the 'srv' folder
+# add_service_files(
+# FILES
+# Service1.srv
+# Service2.srv
+# )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+# FILES
+# Action1.action
+# Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+# generate_messages(
+# DEPENDENCIES
+# std_msgs
+# )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+## * add "dynamic_reconfigure" to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * uncomment the "generate_dynamic_reconfigure_options" section below
+## and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+# cfg/DynReconf1.cfg
+# cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+# INCLUDE_DIRS include
+# LIBRARIES count_pkg
+# CATKIN_DEPENDS roscpp rospy std_msgs
+# DEPENDS system_lib
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+ ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+# src/${PROJECT_NAME}/count_pkg.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+add_executable(pub_count_cpp src/pub_count.cpp)
+add_executable(sub_count_cpp src/sub_count.cpp)
+
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+ target_link_libraries(pub_count_cpp
+ ${catkin_LIBRARIES}
+ )
+ target_link_libraries(sub_count_cpp
+ ${catkin_LIBRARIES}
+ )
+
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# catkin_install_python(PROGRAMS
+# scripts/my_python_script
+# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
+# install(TARGETS ${PROJECT_NAME}_node
+# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark libraries for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
+# install(TARGETS ${PROJECT_NAME}
+# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+# FILES_MATCHING PATTERN "*.h"
+# PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+# # myfile1
+# # myfile2
+# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_count_pkg.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
diff --git a/Task_4/nomeer_ws/src/count_pkg/package.xml b/Task_4/nomeer_ws/src/count_pkg/package.xml
new file mode 100644
index 0000000..7ab3bc9
--- /dev/null
+++ b/Task_4/nomeer_ws/src/count_pkg/package.xml
@@ -0,0 +1,68 @@
+
+
+ count_pkg
+ 0.0.0
+ The count_pkg package
+
+
+
+
+ nomeer
+
+
+
+
+
+ TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ catkin
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+
+
+
+
+
+
+
+
diff --git a/Task_4/nomeer_ws/src/count_pkg/scripts/pub_count.py b/Task_4/nomeer_ws/src/count_pkg/scripts/pub_count.py
new file mode 100755
index 0000000..ba1df62
--- /dev/null
+++ b/Task_4/nomeer_ws/src/count_pkg/scripts/pub_count.py
@@ -0,0 +1,35 @@
+#!/usr/bin/python3
+
+'''
+count from 0 until user input ctrl+c
+we need to publish count msg
+'''
+
+import rospy
+from std_msgs.msg import Int32
+
+
+def pub_count():
+ # create publisher node
+ rospy.init_node("pub_count")
+
+ # create publisher object & topic
+ pub = rospy.Publisher("count_topic", Int32, queue_size=1)
+
+ rate = rospy.Rate(1) # publish count with 1 hz rate
+
+ # define count msg
+ count = 0
+
+ # publish msg
+ while not rospy.is_shutdown():
+ rospy.loginfo(count)
+ pub.publish(count)
+ rate.sleep() # ensure that node publish with 1 hz
+ count +=1
+
+if __name__ == "__main__":
+ try:
+ pub_count()
+ except rospy.ROSInternalException:
+ pass
diff --git a/Task_4/nomeer_ws/src/count_pkg/scripts/sub_count.py b/Task_4/nomeer_ws/src/count_pkg/scripts/sub_count.py
new file mode 100755
index 0000000..36b422c
--- /dev/null
+++ b/Task_4/nomeer_ws/src/count_pkg/scripts/sub_count.py
@@ -0,0 +1,17 @@
+#!/usr/bin/python3
+
+import rospy
+from std_msgs.msg import Int32
+
+def callback(count):
+ rospy.loginfo("\n")
+ rospy.loginfo(count)
+
+def sub_age():
+ rospy.init_node("sub_count")
+ sub = rospy.Subscriber("count_topic", Int32,callback)
+ rospy.spin()
+
+
+if __name__ == "__main__":
+ sub_age()
\ No newline at end of file
diff --git a/Task_4/nomeer_ws/src/count_pkg/src/pub_count.cpp b/Task_4/nomeer_ws/src/count_pkg/src/pub_count.cpp
new file mode 100755
index 0000000..0d623ba
--- /dev/null
+++ b/Task_4/nomeer_ws/src/count_pkg/src/pub_count.cpp
@@ -0,0 +1,23 @@
+#include
+#include
+
+int main(int argc, char** argv)
+{
+ ros::init(argc, argv,"pub_count_cpp");
+ ros::NodeHandle nh;
+ ros::Publisher pub = nh.advertise("count_topic_cpp",1);
+ ros::Rate rate(1);
+
+ std_msgs::Int32 count;
+ count.data = 0;
+
+ while (ros::ok())
+ {
+ pub.publish(count);
+ ros::spinOnce();
+ rate.sleep();
+ ++count.data;
+ }
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_4/nomeer_ws/src/count_pkg/src/sub_count.cpp b/Task_4/nomeer_ws/src/count_pkg/src/sub_count.cpp
new file mode 100755
index 0000000..6c1d23d
--- /dev/null
+++ b/Task_4/nomeer_ws/src/count_pkg/src/sub_count.cpp
@@ -0,0 +1,17 @@
+#include
+#include
+
+void callback(const std_msgs::Int32::ConstPtr& count)
+{
+ ROS_INFO("count: %d", count->data);
+}
+
+int main(int argc, char** argv)
+{
+ ros::init(argc, argv, "sub_count_cpp");
+ ros::NodeHandle nh;
+ ros::Subscriber sub = nh.subscribe("count_topic_cpp", 1, callback);
+ ros::spin();
+
+ return 0;
+}
\ No newline at end of file
diff --git a/Task_4/nomeer_ws/src/n_words_pkg/CMakeLists.txt b/Task_4/nomeer_ws/src/n_words_pkg/CMakeLists.txt
new file mode 100644
index 0000000..8062f92
--- /dev/null
+++ b/Task_4/nomeer_ws/src/n_words_pkg/CMakeLists.txt
@@ -0,0 +1,206 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(n_words_pkg)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED COMPONENTS
+ roscpp
+ rospy
+ std_msgs
+ message_generation
+)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+## * add a build_depend tag for "message_generation"
+## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+## but can be declared for certainty nonetheless:
+## * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+## * add "message_generation" and every package in MSG_DEP_SET to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * add "message_runtime" and every package in MSG_DEP_SET to
+## catkin_package(CATKIN_DEPENDS ...)
+## * uncomment the add_*_files sections below as needed
+## and list every .msg/.srv/.action file to be processed
+## * uncomment the generate_messages entry below
+## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+# add_message_files(
+# FILES
+# Message1.msg
+# Message2.msg
+# )
+
+## Generate services in the 'srv' folder
+ add_service_files(
+ FILES
+ count_words.srv
+# Service2.srv
+ )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+# FILES
+# Action1.action
+# Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+ generate_messages(
+ DEPENDENCIES
+ std_msgs
+ )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+## * add "dynamic_reconfigure" to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * uncomment the "generate_dynamic_reconfigure_options" section below
+## and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+# cfg/DynReconf1.cfg
+# cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+# INCLUDE_DIRS include
+# LIBRARIES n_of_words_pkg
+ CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+ ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+# src/${PROJECT_NAME}/n_of_words_pkg.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+# add_executable(${PROJECT_NAME}_node src/n_of_words_pkg_node.cpp)
+
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+# target_link_libraries(${PROJECT_NAME}_node
+# ${catkin_LIBRARIES}
+# )
+
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# catkin_install_python(PROGRAMS
+# scripts/my_python_script
+# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
+# install(TARGETS ${PROJECT_NAME}_node
+# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark libraries for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
+# install(TARGETS ${PROJECT_NAME}
+# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+# FILES_MATCHING PATTERN "*.h"
+# PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+# # myfile1
+# # myfile2
+# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_n_of_words_pkg.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
diff --git a/Task_4/nomeer_ws/src/n_words_pkg/package.xml b/Task_4/nomeer_ws/src/n_words_pkg/package.xml
new file mode 100644
index 0000000..dd6ba8d
--- /dev/null
+++ b/Task_4/nomeer_ws/src/n_words_pkg/package.xml
@@ -0,0 +1,71 @@
+
+
+ n_words_pkg
+ 0.0.0
+ The n_words_pkg package
+
+
+
+
+ nomeer
+
+
+
+
+
+ TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ catkin
+ roscpp
+ rospy
+ std_msgs
+ message_generation
+ roscpp
+ rospy
+ std_msgs
+ message_runtime
+ roscpp
+ rospy
+ std_msgs
+ message_runtime
+
+
+
+
+
+
+
+
diff --git a/Task_4/nomeer_ws/src/n_words_pkg/scripts/client.py b/Task_4/nomeer_ws/src/n_words_pkg/scripts/client.py
new file mode 100755
index 0000000..a9f41fa
--- /dev/null
+++ b/Task_4/nomeer_ws/src/n_words_pkg/scripts/client.py
@@ -0,0 +1,33 @@
+#!/usr/bin/python3
+
+import sys
+import rospy
+from n_words_pkg.srv import count_words
+
+# Define a function that acts as the client
+def pub_words(words):
+ # Wait until the service is available
+ rospy.wait_for_service("countWords") # Name of the service
+
+ try:
+ # Create a proxy to the service
+ get_words = rospy.ServiceProxy("countWords", count_words)
+
+ # Call the service and get the response
+ resp = get_words(words)
+ # return string from te response
+ return resp.count
+ except rospy.ServiceException as e:
+ print("Service Call failed %s", e)
+
+
+def usage():
+ return sys.argv[0]
+
+
+if __name__ == "__main__":
+ words = sys.argv[0]
+ print("The sentence you entered: %s", words)
+ count = pub_words(words)
+ print("Number of Words: %d")
+
\ No newline at end of file
diff --git a/Task_4/nomeer_ws/src/n_words_pkg/scripts/server.py b/Task_4/nomeer_ws/src/n_words_pkg/scripts/server.py
new file mode 100755
index 0000000..be6a36e
--- /dev/null
+++ b/Task_4/nomeer_ws/src/n_words_pkg/scripts/server.py
@@ -0,0 +1,23 @@
+#!/usr/bin/python3
+
+import rospy
+from n_words_pkg.srv import count_words, count_wordsRequest, count_wordsResponse
+
+def num_of_words(req):
+ req.count = len(req.split(' '))
+ print("Number of Words is: %d", req.count)
+ return count_wordsResponse(req.count)
+
+def count_words_service():
+ # Initialize the service node
+ rospy.init_node("count_words_service")
+ # Create the service with the name "count_words_service" and the function to handle the request
+ s = rospy.Service("countWords", count_words, num_of_words)
+ # Print a message indicating that the server is ready
+ print("Ready to count number of words")
+ # Spin to keep the node running
+ rospy.spin()
+
+if __name__ == "__main__":
+ # Call the server function to start the server node
+ count_words_service()
\ No newline at end of file
diff --git a/Task_4/nomeer_ws/src/n_words_pkg/src/client.cpp b/Task_4/nomeer_ws/src/n_words_pkg/src/client.cpp
new file mode 100755
index 0000000..789ec54
--- /dev/null
+++ b/Task_4/nomeer_ws/src/n_words_pkg/src/client.cpp
@@ -0,0 +1 @@
+// The code is being prepared
\ No newline at end of file
diff --git a/Task_4/nomeer_ws/src/n_words_pkg/src/server.cpp b/Task_4/nomeer_ws/src/n_words_pkg/src/server.cpp
new file mode 100755
index 0000000..789ec54
--- /dev/null
+++ b/Task_4/nomeer_ws/src/n_words_pkg/src/server.cpp
@@ -0,0 +1 @@
+// The code is being prepared
\ No newline at end of file
diff --git a/Task_4/nomeer_ws/src/n_words_pkg/srv/count_words.srv b/Task_4/nomeer_ws/src/n_words_pkg/srv/count_words.srv
new file mode 100755
index 0000000..940b837
--- /dev/null
+++ b/Task_4/nomeer_ws/src/n_words_pkg/srv/count_words.srv
@@ -0,0 +1,5 @@
+string words
+
+---
+
+int32 count
\ No newline at end of file
diff --git a/Task_5/src/CMakeLists.txt b/Task_5/src/CMakeLists.txt
new file mode 120000
index 0000000..2016816
--- /dev/null
+++ b/Task_5/src/CMakeLists.txt
@@ -0,0 +1 @@
+/opt/ros/noetic/share/catkin/cmake/toplevel.cmake
\ No newline at end of file
diff --git a/Task_5/src/nomeer_gazebo_pkg/CMakeLists.txt b/Task_5/src/nomeer_gazebo_pkg/CMakeLists.txt
new file mode 100644
index 0000000..1c6450f
--- /dev/null
+++ b/Task_5/src/nomeer_gazebo_pkg/CMakeLists.txt
@@ -0,0 +1,206 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(nomeer_gazebo_pkg)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED COMPONENTS
+ roscpp
+ rospy
+ std_msgs
+)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+## * add a build_depend tag for "message_generation"
+## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+## but can be declared for certainty nonetheless:
+## * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+## * add "message_generation" and every package in MSG_DEP_SET to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * add "message_runtime" and every package in MSG_DEP_SET to
+## catkin_package(CATKIN_DEPENDS ...)
+## * uncomment the add_*_files sections below as needed
+## and list every .msg/.srv/.action file to be processed
+## * uncomment the generate_messages entry below
+## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+# add_message_files(
+# FILES
+# Message1.msg
+# Message2.msg
+# )
+
+## Generate services in the 'srv' folder
+# add_service_files(
+# FILES
+# Service1.srv
+# Service2.srv
+# )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+# FILES
+# Action1.action
+# Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+# generate_messages(
+# DEPENDENCIES
+# std_msgs
+# )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+## * add "dynamic_reconfigure" to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * uncomment the "generate_dynamic_reconfigure_options" section below
+## and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+# cfg/DynReconf1.cfg
+# cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+# INCLUDE_DIRS include
+# LIBRARIES nomeer_gazebo_pkg
+# CATKIN_DEPENDS roscpp rospy std_msgs
+# DEPENDS system_lib
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+ ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+# src/${PROJECT_NAME}/nomeer_gazebo_pkg.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+# add_executable(${PROJECT_NAME}_node src/nomeer_gazebo_pkg_node.cpp)
+
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+# target_link_libraries(${PROJECT_NAME}_node
+# ${catkin_LIBRARIES}
+# )
+
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# catkin_install_python(PROGRAMS
+# scripts/my_python_script
+# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
+# install(TARGETS ${PROJECT_NAME}_node
+# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark libraries for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
+# install(TARGETS ${PROJECT_NAME}
+# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+# FILES_MATCHING PATTERN "*.h"
+# PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+# # myfile1
+# # myfile2
+# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_nomeer_gazebo_pkg.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
diff --git a/Task_5/src/nomeer_gazebo_pkg/default_gzclient_camera(1)-2023-02-11T20_32_22.012985.jpg b/Task_5/src/nomeer_gazebo_pkg/default_gzclient_camera(1)-2023-02-11T20_32_22.012985.jpg
new file mode 100644
index 0000000..61beb48
Binary files /dev/null and b/Task_5/src/nomeer_gazebo_pkg/default_gzclient_camera(1)-2023-02-11T20_32_22.012985.jpg differ
diff --git a/Task_5/src/nomeer_gazebo_pkg/model/building_model/model.config b/Task_5/src/nomeer_gazebo_pkg/model/building_model/model.config
new file mode 100644
index 0000000..d615120
--- /dev/null
+++ b/Task_5/src/nomeer_gazebo_pkg/model/building_model/model.config
@@ -0,0 +1,11 @@
+
+
+ building_model
+ 1.0
+ model.sdf
+
+
+
+
+
+
diff --git a/Task_5/src/nomeer_gazebo_pkg/model/building_model/model.sdf b/Task_5/src/nomeer_gazebo_pkg/model/building_model/model.sdf
new file mode 100644
index 0000000..37ee2bf
--- /dev/null
+++ b/Task_5/src/nomeer_gazebo_pkg/model/building_model/model.sdf
@@ -0,0 +1,1138 @@
+
+
+
+ -2.415 -2.70167 0 0 -0 0
+
+
+
+
+ 2.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 8.75 2.65167 0 0 -0 3.14159
+
+
+
+
+
+ 2 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 7.575 1.72667 0 0 -0 -1.5708
+
+
+
+
+
+ 1.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 6.775 0.801673 0 0 -0 3.14159
+
+
+
+
+
+ 1.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 5.975 0.001673 0 0 -0 -1.5708
+
+
+
+
+
+ 2.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 7.025 -0.798327 0 0 -0 0
+
+
+
+
+
+ 0.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 8.075 -1.09833 0 0 -0 -1.5708
+
+
+
+
+
+ 3.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 3.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 6.275 -1.39833 0 0 -0 3.14159
+
+
+
+
+
+ 2.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 4.475 -0.348327 0 0 -0 1.5708
+
+
+
+
+
+ 1.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 4.475 1.37667 0 0 -0 1.5708
+
+
+
+
+
+ 1.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 5.15 2.05167 0 0 -0 0
+
+
+
+
+
+ 1 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 5.825 2.47667 0 0 -0 1.5708
+
+
+
+
+
+ 4.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 4.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 3.775 2.90167 0 0 -0 3.14159
+
+
+
+
+
+ 2.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 1.725 1.72667 0 0 -0 -1.5708
+
+
+
+
+
+ 2 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 0.8 0.551673 0 0 -0 3.14159
+
+
+
+
+
+ 2.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -1.425 0.551673 0 0 -0 3.14159
+
+
+
+
+
+ 2.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -3.775 0.551673 0 0 -0 3.14159
+
+
+
+
+
+ 3.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 3.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -4.825 2.22667 0 0 -0 1.5708
+
+
+
+
+
+ 5.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 5.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -7.375 3.90167 0 0 -0 3.14159
+
+
+
+
+
+ 4.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 4.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -9.925 1.60167 0 0 -0 -1.5708
+
+
+
+
+
+ 3.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 3.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -9.925 -2.24833 0 0 -0 -1.5708
+
+
+
+
+
+ 5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -7.5 -3.79833 0 0 -0 0
+
+
+
+
+
+ 2 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -5.075 -2.87333 0 0 -0 1.5708
+
+
+
+
+
+ 2.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -6.375 -1.94833 0 0 -0 3.14159
+
+
+
+
+
+ 2 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -7.675 -1.02333 0 0 -0 1.5708
+
+
+
+
+
+ 1 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -7.25 -0.098327 0 0 -0 0
+
+
+
+
+
+ 1.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -6.4875 -0.682894 0 0 -0 -1.0472
+
+
+
+
+
+ 1.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -5.35 -1.26746 0 0 -0 0
+
+
+
+
+
+ 1.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 0.829393 -3.35167 0 0 -0 1.5708
+
+
+
+
+
+ 9 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 9 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 2.15 -3.89833 0 0 -0 3.14159
+
+
+
+
+
+ 1.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -2.24458 -0.010492 0 0 -0 -1.309
+
+
+
+
+
+ 1.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -9.24489 1.98081 0 0 -0 0
+
+
+
+
+
+ 1.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -8.18098 1.5919 0 0 -0 -0.785398
+
+
+
+
+
+ 1.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -8.69261 -3.07855 0 0 -0 1.5708
+
+
+
+
+
+ 1.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -5.76845 2.44633 0 0 -0 3.14159
+
+
+
+
+
+ 2.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 3.49611 -0.723673 0 0 -0 -2.61799
+
+
+
+
+
+ 1.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 6.575 -3.22333 0 0 -0 1.5708
+
+
+
+
+
+ 3.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 3.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 8.25 -2.54833 0 0 -0 0
+
+
+
+
+
+ 3 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 3 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 9.925 -1.12333 0 0 -0 1.5708
+
+
+
+
+
+ 2.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 9.925 1.47667 0 0 -0 1.5708
+
+ 1
+
+
diff --git a/Task_5/src/nomeer_gazebo_pkg/model/nomeer_model/model.config b/Task_5/src/nomeer_gazebo_pkg/model/nomeer_model/model.config
new file mode 100644
index 0000000..9908add
--- /dev/null
+++ b/Task_5/src/nomeer_gazebo_pkg/model/nomeer_model/model.config
@@ -0,0 +1,11 @@
+
+
+ nomeer_model
+ 1.0
+ model.sdf
+
+
+
+
+
+
diff --git a/Task_5/src/nomeer_gazebo_pkg/model/nomeer_model/model.sdf b/Task_5/src/nomeer_gazebo_pkg/model/nomeer_model/model.sdf
new file mode 100644
index 0000000..ad1377c
--- /dev/null
+++ b/Task_5/src/nomeer_gazebo_pkg/model/nomeer_model/model.sdf
@@ -0,0 +1,745 @@
+
+
+
+
+
+ 1
+
+ 0.166667
+ 0
+ 0
+ 0.166667
+ 0
+ 0.166667
+
+ 0 0 0 0 -0 0
+
+ -0.473319 0.050453 -0.208 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 0 -0 0
+
+
+ 1 0.6 0.2
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 1 0.6 0.2
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.145833
+ 0
+ 0
+ 0.145833
+ 0
+ 0.125
+
+ 0 0 0 0 -0 0
+
+ -0.773319 0.375454 -0.208 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 1.5708 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.145833
+ 0
+ 0
+ 0.145833
+ 0
+ 0.125
+
+ 0 0 0 0 -0 0
+
+ -0.173319 -0.274548 -0.208 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 1.5708 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.145833
+ 0
+ 0
+ 0.145833
+ 0
+ 0.125
+
+ 0 0 0 0 -0 0
+
+ -0.173319 0.375454 -0.208 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 1.5708 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.145833
+ 0
+ 0
+ 0.145833
+ 0
+ 0.125
+
+ 0 0 0 0 -0 0
+
+ -0.773319 -0.274548 -0.208 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 1.5708 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.166667
+ 0
+ 0
+ 0.166667
+ 0
+ 0.166667
+
+ 0 0 0 0 -0 0
+
+ -0.923319 0.050453 -0.058 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 0 -0 0
+
+
+ 0.1 0.1 0.1
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 1 1 1
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+ link_2
+ link_4_clone_0
+ 0 0 0 0 -0 0
+
+ 0 1 0
+
+ -1.79769e+308
+ 1.79769e+308
+ -1
+ -1
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+
+ link_2
+ link_4_clone
+ 0 0 0 0 -0 0
+
+ -0 -1 -0
+
+ -1.79769e+308
+ 1.79769e+308
+ -1
+ -1
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+
+ link_2
+ link_4
+ 0 0 0 0 -0 0
+
+ 0 1 0
+
+ -1.79769e+308
+ 1.79769e+308
+ -1
+ -1
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+
+ link_2
+ link_4_clone_1
+ 0 0 0 0 -0 0
+
+ -0 -1 -0
+
+ -1.79769e+308
+ 1.79769e+308
+ -1
+ -1
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+
+ link_2
+ link_5
+ 0 0 0 0 -0 0
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+ 0
+ 1
+
+
diff --git a/Task_5/src/nomeer_gazebo_pkg/package.xml b/Task_5/src/nomeer_gazebo_pkg/package.xml
new file mode 100644
index 0000000..3118bae
--- /dev/null
+++ b/Task_5/src/nomeer_gazebo_pkg/package.xml
@@ -0,0 +1,68 @@
+
+
+ nomeer_gazebo_pkg
+ 0.0.0
+ The nomeer_gazebo_pkg package
+
+
+
+
+ nomeer
+
+
+
+
+
+ TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ catkin
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+ roscpp
+ rospy
+ std_msgs
+
+
+
+
+
+
+
+
diff --git a/Task_5/src/nomeer_gazebo_pkg/world/nomeerWorld b/Task_5/src/nomeer_gazebo_pkg/world/nomeerWorld
new file mode 100644
index 0000000..33d7019
--- /dev/null
+++ b/Task_5/src/nomeer_gazebo_pkg/world/nomeerWorld
@@ -0,0 +1,2897 @@
+
+
+
+ 1
+ 0 0 10 0 -0 0
+ 0.8 0.8 0.8 1
+ 0.2 0.2 0.2 1
+
+ 1000
+ 0.9
+ 0.01
+ 0.001
+
+ -0.5 0.1 -0.9
+
+ 0
+ 0
+ 0
+
+
+
+ 1
+
+
+
+
+ 0 0 1
+ 100 100
+
+
+
+
+ 65535
+
+
+
+
+ 100
+ 50
+
+
+
+
+
+
+
+ 10
+
+
+ 0
+
+
+ 0 0 1
+ 100 100
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+ 0 0 -9.8
+ 6e-06 2.3e-05 -4.2e-05
+
+
+ 0.001
+ 1
+ 1000
+
+
+ 0.4 0.4 0.4 1
+ 0.7 0.7 0.7 1
+ 1
+
+
+
+ EARTH_WGS84
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+ 1
+
+ 0.166667
+ 0
+ 0
+ 0.166667
+ 0
+ 0.166667
+
+ 0 0 0 0 -0 0
+
+ -0.473319 0.050453 -0.208 0 -0 0
+ 1
+ 0
+ 1
+ 0
+
+ 0 0 0 0 -0 0
+
+
+ 1 0.6 0.2
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 1 0.6 0.2
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.145833
+ 0
+ 0
+ 0.145833
+ 0
+ 0.125
+
+ 0 0 0 0 -0 0
+
+ -0.773319 0.375454 -0.208 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 1.5708 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.145833
+ 0
+ 0
+ 0.145833
+ 0
+ 0.125
+
+ 0 0 0 0 -0 0
+
+ -0.173319 -0.274548 -0.208 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 1.5708 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.145833
+ 0
+ 0
+ 0.145833
+ 0
+ 0.125
+
+ 0 0 0 0 -0 0
+
+ -0.173319 0.375454 -0.208 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 1.5708 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.145833
+ 0
+ 0
+ 0.145833
+ 0
+ 0.125
+
+ 0 0 0 0 -0 0
+
+ -0.773319 -0.274548 -0.208 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 1.5708 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.166667
+ 0
+ 0
+ 0.166667
+ 0
+ 0.166667
+
+ 0 0 0 0 -0 0
+
+ -0.923319 0.050453 -0.058 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 0 -0 0
+
+
+ 0.1 0.1 0.1
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 1 1 1
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+ link_2
+ link_4_clone_0
+ 0 0 0 0 -0 0
+
+ 0 1 0
+
+ -1.79769e+308
+ 1.79769e+308
+ -1
+ -1
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+
+ link_2
+ link_4_clone
+ 0 0 0 0 -0 0
+
+ -0 -1 -0
+
+ -1.79769e+308
+ 1.79769e+308
+ -1
+ -1
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+
+ link_2
+ link_4
+ 0 0 0 0 -0 0
+
+ 0 1 0
+
+ -1.79769e+308
+ 1.79769e+308
+ -1
+ -1
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+
+ link_2
+ link_4_clone_1
+ 0 0 0 0 -0 0
+
+ -0 -1 -0
+
+ -1.79769e+308
+ 1.79769e+308
+ -1
+ -1
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+
+ link_2
+ link_5
+ 0 0 0 0 -0 0
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+ 0
+ 1
+ 0.473319 -0.050453 0.408 0 -0 0
+
+
+ 41 530000000
+ 29 369399219
+ 1676087165 743978611
+ 29317
+
+ -2.415 -2.70167 0 0 -0 0
+ 1 1 1
+
+ 6.335 -0.05 0 0 -0 3.14159
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 5.16 -0.975 0 0 0 -1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 4.36 -1.9 0 0 -0 3.14159
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 3.56 -2.7 0 0 0 -1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 4.61 -3.5 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 5.66 -3.8 0 0 0 -1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 3.86 -4.1 0 0 -0 3.14159
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 2.06 -3.05 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 2.06 -1.325 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 2.735 -0.65 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 3.41 -0.225 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 1.36 0.2 0 0 -0 3.14159
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -0.69 -0.975 0 0 0 -1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -1.615 -2.15 0 0 -0 3.14159
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -3.84 -2.15 0 0 -0 3.14159
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -6.19 -2.15 0 0 -0 3.14159
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -7.24 -0.475 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -9.79 1.2 0 0 -0 3.14159
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -12.34 -1.1 0 0 0 -1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -12.34 -4.95 0 0 0 -1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -9.915 -6.5 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -7.49 -5.575 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -8.79 -4.65 0 0 -0 3.14159
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -10.09 -3.725 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -9.665 -2.8 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -8.9025 -3.38456 0 0 0 -1.0472
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -7.765 -3.96913 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -1.58561 -6.05334 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -0.265 -6.6 0 0 -0 3.14159
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -4.65958 -2.71216 0 0 0 -1.309
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -11.6599 -0.72086 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -10.596 -1.10977 0 0 0 -0.785398
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -11.1076 -5.78022 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -8.18345 -0.25534 0 0 -0 3.14159
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 1.08111 -3.42534 0 0 0 -2.61799
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 4.16 -5.925 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 5.835 -5.25 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 7.51 -3.825 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 7.51 -1.225 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ 0 0 0 0 -0 0
+ 1 1 1
+
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ -2.21922 -4.47609 0.408 0 -0 0
+ 1 1 1
+
+ -2.69254 -4.42563 0.2 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 -9.8 0 -0 0
+ 0 0 -9.8 0 -0 0
+
+
+ -2.99254 -4.10063 0.2 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -2.39254 -4.75063 0.2 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -2.39254 -4.10063 0.2 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -2.99254 -4.75063 0.2 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -3.13906 -4.42107 0.505275 -0.009035 0.003387 -0.000706
+ 1.1316 2.44612 2.61034 -1.75015 0.877609 3.13357
+ 1346.09 2712.41 34317.3 0.449193 0.850988 1.53841
+ 1346.09 2712.41 34317.3 0 -0 0
+
+
+
+ 0 0 10 0 -0 0
+
+
+
+
+ -2.32791 -1.24033 31.344 3.14159 1.57079 3.14159
+ orbit
+ perspective
+
+
+
+ -2.415 -2.70167 0 0 -0 0
+
+
+
+
+ 2.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 8.75 2.65167 0 0 -0 3.14159
+ 0
+ 0
+ 0
+
+
+
+
+
+ 2 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 7.575 1.72667 0 0 -0 -1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 6.775 0.801673 0 0 -0 3.14159
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 5.975 0.001673 0 0 -0 -1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 2.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 7.025 -0.798327 0 0 -0 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 0.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 8.075 -1.09833 0 0 -0 -1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 3.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 3.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 6.275 -1.39833 0 0 -0 3.14159
+ 0
+ 0
+ 0
+
+
+
+
+
+ 2.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 4.475 -0.348327 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 4.475 1.37667 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 5.15 2.05167 0 0 -0 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 5.825 2.47667 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 4.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 4.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 3.775 2.90167 0 0 -0 3.14159
+ 0
+ 0
+ 0
+
+
+
+
+
+ 2.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 1.725 1.72667 0 0 -0 -1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 2 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 0.8 0.551673 0 0 -0 3.14159
+ 0
+ 0
+ 0
+
+
+
+
+
+ 2.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -1.425 0.551673 0 0 -0 3.14159
+ 0
+ 0
+ 0
+
+
+
+
+
+ 2.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -3.775 0.551673 0 0 -0 3.14159
+ 0
+ 0
+ 0
+
+
+
+
+
+ 3.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 3.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -4.825 2.22667 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 5.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 5.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -7.375 3.90167 0 0 -0 3.14159
+ 0
+ 0
+ 0
+
+
+
+
+
+ 4.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 4.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -9.925 1.60167 0 0 -0 -1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 3.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 3.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -9.925 -2.24833 0 0 -0 -1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -7.5 -3.79833 0 0 -0 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 2 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -5.075 -2.87333 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 2.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -6.375 -1.94833 0 0 -0 3.14159
+ 0
+ 0
+ 0
+
+
+
+
+
+ 2 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -7.675 -1.02333 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -7.25 -0.098327 0 0 -0 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -6.4875 -0.682894 0 0 -0 -1.0472
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -5.35 -1.26746 0 0 -0 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 0.829393 -3.35167 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 9 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 9 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 2.15 -3.89833 0 0 -0 3.14159
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -2.24458 -0.010492 0 0 -0 -1.309
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -9.24489 1.98081 0 0 -0 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -8.18098 1.5919 0 0 -0 -0.785398
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -8.69261 -3.07855 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -5.76845 2.44633 0 0 -0 3.14159
+ 0
+ 0
+ 0
+
+
+
+
+
+ 2.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 3.49611 -0.723673 0 0 -0 -2.61799
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 1.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 6.575 -3.22333 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 3.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 3.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 8.25 -2.54833 0 0 -0 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 3 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 3 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 9.925 -1.12333 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 2.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 2.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 9.925 1.47667 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+ 1
+
+
+
diff --git a/Task_5/src/nomeer_gazebo_pkg/world/nomeer_world b/Task_5/src/nomeer_gazebo_pkg/world/nomeer_world
new file mode 100644
index 0000000..97f9e94
--- /dev/null
+++ b/Task_5/src/nomeer_gazebo_pkg/world/nomeer_world
@@ -0,0 +1,900 @@
+
+
+
+ 1
+ 0 0 10 0 -0 0
+ 0.8 0.8 0.8 1
+ 0.2 0.2 0.2 1
+
+ 1000
+ 0.9
+ 0.01
+ 0.001
+
+ -0.5 0.1 -0.9
+
+ 0
+ 0
+ 0
+
+
+
+ 1
+
+
+
+
+ 0 0 1
+ 100 100
+
+
+
+
+ 65535
+
+
+
+
+ 100
+ 50
+
+
+
+
+
+
+
+ 10
+
+
+ 0
+
+
+ 0 0 1
+ 100 100
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+ 0 0 -9.8
+ 6e-06 2.3e-05 -4.2e-05
+
+
+ 0.001
+ 1
+ 1000
+
+
+ 0.4 0.4 0.4 1
+ 0.7 0.7 0.7 1
+ 1
+
+
+
+ EARTH_WGS84
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+ 1
+
+ 0.166667
+ 0
+ 0
+ 0.166667
+ 0
+ 0.166667
+
+ 0 0 0 0 -0 0
+
+ -0.473319 0.050453 -0.208 0 -0 0
+ 1
+ 0
+ 1
+ 0
+
+ 0 0 0 0 -0 0
+
+
+ 1 0.6 0.2
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 1 0.6 0.2
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.145833
+ 0
+ 0
+ 0.145833
+ 0
+ 0.125
+
+ 0 0 0 0 -0 0
+
+ -0.773319 0.375454 -0.208 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 1.5708 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.145833
+ 0
+ 0
+ 0.145833
+ 0
+ 0.125
+
+ 0 0 0 0 -0 0
+
+ -0.173319 -0.274548 -0.208 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 1.5708 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.145833
+ 0
+ 0
+ 0.145833
+ 0
+ 0.125
+
+ 0 0 0 0 -0 0
+
+ -0.173319 0.375454 -0.208 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 1.5708 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.145833
+ 0
+ 0
+ 0.145833
+ 0
+ 0.125
+
+ 0 0 0 0 -0 0
+
+ -0.773319 -0.274548 -0.208 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 1.5708 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 0.2
+ 0.05
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+
+ 1
+
+ 0.166667
+ 0
+ 0
+ 0.166667
+ 0
+ 0.166667
+
+ 0 0 0 0 -0 0
+
+ -0.923319 0.050453 -0.058 0 -0 0
+ 1
+ 0
+ 0
+ 0
+
+ 0 0 0 0 -0 0
+
+
+ 0.1 0.1 0.1
+
+
+
+ 1
+
+
+ __default__
+
+ 0.3 0.3 0.3 1
+ 0.7 0.7 0.7 1
+ 0.01 0.01 0.01 1
+ 0 0 0 1
+
+ 0
+ 1
+
+
+ 0
+ 10
+ 0 0 0 0 -0 0
+
+
+ 1 1 1
+
+
+
+
+
+ 1
+ 1
+ 0 0 0
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 0
+
+
+
+
+ 0
+ 1e+06
+
+
+ 0
+ 1
+ 1
+
+ 0
+ 0.2
+ 1e+13
+ 1
+ 0.01
+ 0
+
+
+ 1
+ -0.01
+ 0
+ 0.2
+ 1e+13
+ 1
+
+
+
+
+
+
+ link_2
+ link_4_clone_0
+ 0 0 0 0 -0 0
+
+ 0 1 0
+
+ -1.79769e+308
+ 1.79769e+308
+ -1
+ -1
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+
+ link_2
+ link_4_clone
+ 0 0 0 0 -0 0
+
+ -0 -1 -0
+
+ -1.79769e+308
+ 1.79769e+308
+ -1
+ -1
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+
+ link_2
+ link_4
+ 0 0 0 0 -0 0
+
+ 0 1 0
+
+ -1.79769e+308
+ 1.79769e+308
+ -1
+ -1
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+
+ link_2
+ link_4_clone_1
+ 0 0 0 0 -0 0
+
+ -0 -1 -0
+
+ -1.79769e+308
+ 1.79769e+308
+ -1
+ -1
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+
+ link_2
+ link_5
+ 0 0 0 0 -0 0
+
+
+
+ 0
+ 0.2
+
+
+ 0
+ 0.2
+
+
+
+
+ 0
+ 1
+ 0.473319 -0.050453 0.408 0 -0 0
+
+
+ 12 213000000
+ 12 258678406
+ 1676084949 796616587
+ 12213
+
+ 0 0 0 0 -0 0
+ 1 1 1
+
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ 0.473319 -0.050453 0.408 0 -0 0
+ 1 1 1
+
+ 0 0 0.2 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -0.3 0.325001 0.2 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 0.3 -0.325001 0.2 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 0.3 0.325001 0.2 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -0.3 -0.325001 0.2 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -0.45 0 0.35 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ 0 0 10 0 -0 0
+
+
+
+
+ 4.78194 -5.77722 3.96637 -0 0.412709 2.26897
+ orbit
+ perspective
+
+
+
+
diff --git a/Task_6/src/CMakeLists.txt b/Task_6/src/CMakeLists.txt
new file mode 120000
index 0000000..2016816
--- /dev/null
+++ b/Task_6/src/CMakeLists.txt
@@ -0,0 +1 @@
+/opt/ros/noetic/share/catkin/cmake/toplevel.cmake
\ No newline at end of file
diff --git a/Task_6/src/nomeer_xacro_pkg/CMakeLists.txt b/Task_6/src/nomeer_xacro_pkg/CMakeLists.txt
new file mode 100644
index 0000000..2686cf7
--- /dev/null
+++ b/Task_6/src/nomeer_xacro_pkg/CMakeLists.txt
@@ -0,0 +1,204 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(nomeer_xacro_pkg)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED COMPONENTS
+ xacro
+)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+## * add a build_depend tag for "message_generation"
+## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+## but can be declared for certainty nonetheless:
+## * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+## * add "message_generation" and every package in MSG_DEP_SET to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * add "message_runtime" and every package in MSG_DEP_SET to
+## catkin_package(CATKIN_DEPENDS ...)
+## * uncomment the add_*_files sections below as needed
+## and list every .msg/.srv/.action file to be processed
+## * uncomment the generate_messages entry below
+## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+# add_message_files(
+# FILES
+# Message1.msg
+# Message2.msg
+# )
+
+## Generate services in the 'srv' folder
+# add_service_files(
+# FILES
+# Service1.srv
+# Service2.srv
+# )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+# FILES
+# Action1.action
+# Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+# generate_messages(
+# DEPENDENCIES
+# std_msgs # Or other packages containing msgs
+# )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+## * add "dynamic_reconfigure" to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * uncomment the "generate_dynamic_reconfigure_options" section below
+## and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+# cfg/DynReconf1.cfg
+# cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+# INCLUDE_DIRS include
+# LIBRARIES nomeer_xacro_pkg
+# CATKIN_DEPENDS xacro
+# DEPENDS system_lib
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+ ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+# src/${PROJECT_NAME}/nomeer_xacro_pkg.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+# add_executable(${PROJECT_NAME}_node src/nomeer_xacro_pkg_node.cpp)
+
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+# target_link_libraries(${PROJECT_NAME}_node
+# ${catkin_LIBRARIES}
+# )
+
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# catkin_install_python(PROGRAMS
+# scripts/my_python_script
+# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
+# install(TARGETS ${PROJECT_NAME}_node
+# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark libraries for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
+# install(TARGETS ${PROJECT_NAME}
+# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+# FILES_MATCHING PATTERN "*.h"
+# PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+# # myfile1
+# # myfile2
+# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_nomeer_xacro_pkg.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
diff --git a/Task_6/src/nomeer_xacro_pkg/package.xml b/Task_6/src/nomeer_xacro_pkg/package.xml
new file mode 100644
index 0000000..c5dcca5
--- /dev/null
+++ b/Task_6/src/nomeer_xacro_pkg/package.xml
@@ -0,0 +1,62 @@
+
+
+ nomeer_xacro_pkg
+ 0.0.0
+ The nomeer_xacro_pkg package
+
+
+
+
+ nomeer
+
+
+
+
+
+ TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ catkin
+ xacro
+ xacro
+ xacro
+
+
+
+
+
+
+
+
diff --git a/Task_6/src/nomeer_xacro_pkg/urdf/Robot Accessories/camera.xacro b/Task_6/src/nomeer_xacro_pkg/urdf/Robot Accessories/camera.xacro
new file mode 100644
index 0000000..bc57128
--- /dev/null
+++ b/Task_6/src/nomeer_xacro_pkg/urdf/Robot Accessories/camera.xacro
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_6/src/nomeer_xacro_pkg/urdf/Robot Accessories/lidar.xacro b/Task_6/src/nomeer_xacro_pkg/urdf/Robot Accessories/lidar.xacro
new file mode 100644
index 0000000..c5c6ce0
--- /dev/null
+++ b/Task_6/src/nomeer_xacro_pkg/urdf/Robot Accessories/lidar.xacro
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_6/src/nomeer_xacro_pkg/urdf/Robot Accessories/material.xacro b/Task_6/src/nomeer_xacro_pkg/urdf/Robot Accessories/material.xacro
new file mode 100644
index 0000000..08b1415
--- /dev/null
+++ b/Task_6/src/nomeer_xacro_pkg/urdf/Robot Accessories/material.xacro
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Task_6/src/nomeer_xacro_pkg/urdf/Robot Accessories/wheel.xacro b/Task_6/src/nomeer_xacro_pkg/urdf/Robot Accessories/wheel.xacro
new file mode 100644
index 0000000..a856d92
--- /dev/null
+++ b/Task_6/src/nomeer_xacro_pkg/urdf/Robot Accessories/wheel.xacro
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_6/src/nomeer_xacro_pkg/urdf/Robot_1/base.xacro b/Task_6/src/nomeer_xacro_pkg/urdf/Robot_1/base.xacro
new file mode 100644
index 0000000..b97fd69
--- /dev/null
+++ b/Task_6/src/nomeer_xacro_pkg/urdf/Robot_1/base.xacro
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_6/src/nomeer_xacro_pkg/urdf/Robot_1/nomeer.urdf b/Task_6/src/nomeer_xacro_pkg/urdf/Robot_1/nomeer.urdf
new file mode 100644
index 0000000..7c770fe
--- /dev/null
+++ b/Task_6/src/nomeer_xacro_pkg/urdf/Robot_1/nomeer.urdf
@@ -0,0 +1,208 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Task_6/src/nomeer_xacro_pkg/urdf/Robot_1/nomeer1_robot.xacro b/Task_6/src/nomeer_xacro_pkg/urdf/Robot_1/nomeer1_robot.xacro
new file mode 100644
index 0000000..01ea966
--- /dev/null
+++ b/Task_6/src/nomeer_xacro_pkg/urdf/Robot_1/nomeer1_robot.xacro
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_6/src/nomeer_xacro_pkg/urdf/Robot_1/urdf_task1.jpeg b/Task_6/src/nomeer_xacro_pkg/urdf/Robot_1/urdf_task1.jpeg
new file mode 100644
index 0000000..b77f58d
Binary files /dev/null and b/Task_6/src/nomeer_xacro_pkg/urdf/Robot_1/urdf_task1.jpeg differ
diff --git a/Task_6/src/nomeer_xacro_pkg/urdf/Robot_2/base.xacro b/Task_6/src/nomeer_xacro_pkg/urdf/Robot_2/base.xacro
new file mode 100644
index 0000000..e69de29
diff --git a/Task_7/src/CMakeLists.txt b/Task_7/src/CMakeLists.txt
new file mode 120000
index 0000000..2016816
--- /dev/null
+++ b/Task_7/src/CMakeLists.txt
@@ -0,0 +1 @@
+/opt/ros/noetic/share/catkin/cmake/toplevel.cmake
\ No newline at end of file
diff --git a/Task_7/src/robot_description/CMakeLists.txt b/Task_7/src/robot_description/CMakeLists.txt
new file mode 100644
index 0000000..928dbce
--- /dev/null
+++ b/Task_7/src/robot_description/CMakeLists.txt
@@ -0,0 +1,204 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(robot_description)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED COMPONENTS
+ xacro
+)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+## * add a build_depend tag for "message_generation"
+## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+## but can be declared for certainty nonetheless:
+## * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+## * add "message_generation" and every package in MSG_DEP_SET to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * add "message_runtime" and every package in MSG_DEP_SET to
+## catkin_package(CATKIN_DEPENDS ...)
+## * uncomment the add_*_files sections below as needed
+## and list every .msg/.srv/.action file to be processed
+## * uncomment the generate_messages entry below
+## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+# add_message_files(
+# FILES
+# Message1.msg
+# Message2.msg
+# )
+
+## Generate services in the 'srv' folder
+# add_service_files(
+# FILES
+# Service1.srv
+# Service2.srv
+# )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+# FILES
+# Action1.action
+# Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+# generate_messages(
+# DEPENDENCIES
+# std_msgs # Or other packages containing msgs
+# )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+## * add "dynamic_reconfigure" to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * uncomment the "generate_dynamic_reconfigure_options" section below
+## and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+# cfg/DynReconf1.cfg
+# cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+# INCLUDE_DIRS include
+# LIBRARIES robot_description
+# CATKIN_DEPENDS xacro
+# DEPENDS system_lib
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+ ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+# src/${PROJECT_NAME}/robot_description.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+# add_executable(${PROJECT_NAME}_node src/robot_description_node.cpp)
+
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+# target_link_libraries(${PROJECT_NAME}_node
+# ${catkin_LIBRARIES}
+# )
+
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# catkin_install_python(PROGRAMS
+# scripts/my_python_script
+# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
+# install(TARGETS ${PROJECT_NAME}_node
+# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark libraries for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
+# install(TARGETS ${PROJECT_NAME}
+# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+# FILES_MATCHING PATTERN "*.h"
+# PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+# # myfile1
+# # myfile2
+# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_robot_description.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
diff --git a/Task_7/src/robot_description/package.xml b/Task_7/src/robot_description/package.xml
new file mode 100644
index 0000000..616172d
--- /dev/null
+++ b/Task_7/src/robot_description/package.xml
@@ -0,0 +1,62 @@
+
+
+ robot_description
+ 0.0.0
+ The robot_description package
+
+
+
+
+ nomeer
+
+
+
+
+
+ TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ catkin
+ xacro
+ xacro
+ xacro
+
+
+
+
+
+
+
+
diff --git a/Task_7/src/robot_description/urdf/.vscode/settings.json b/Task_7/src/robot_description/urdf/.vscode/settings.json
new file mode 100644
index 0000000..1fb641e
--- /dev/null
+++ b/Task_7/src/robot_description/urdf/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "python.autoComplete.extraPaths": [
+ "/opt/ros/noetic/lib/python3/dist-packages"
+ ]
+}
\ No newline at end of file
diff --git a/Task_7/src/robot_description/urdf/base.xacro b/Task_7/src/robot_description/urdf/base.xacro
new file mode 100644
index 0000000..1ebd2c1
--- /dev/null
+++ b/Task_7/src/robot_description/urdf/base.xacro
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_7/src/robot_description/urdf/body.xacro b/Task_7/src/robot_description/urdf/body.xacro
new file mode 100644
index 0000000..6e899fe
--- /dev/null
+++ b/Task_7/src/robot_description/urdf/body.xacro
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_7/src/robot_description/urdf/camera.xacro b/Task_7/src/robot_description/urdf/camera.xacro
new file mode 100644
index 0000000..d2b740a
--- /dev/null
+++ b/Task_7/src/robot_description/urdf/camera.xacro
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_7/src/robot_description/urdf/caster.xacro b/Task_7/src/robot_description/urdf/caster.xacro
new file mode 100644
index 0000000..c6f1ecd
--- /dev/null
+++ b/Task_7/src/robot_description/urdf/caster.xacro
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 1.0
+ 1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Task_7/src/robot_description/urdf/gazebo.xacro b/Task_7/src/robot_description/urdf/gazebo.xacro
new file mode 100644
index 0000000..35f4944
--- /dev/null
+++ b/Task_7/src/robot_description/urdf/gazebo.xacro
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+ 20
+
+
+ wheel1_base_joint
+
+
+ wheel2_base_joint
+
+
+ 2.2
+
+
+ 0.5
+
+
+ 1.0
+
+
+ 20
+
+
+ cmd_vel
+
+
+ odom
+
+
+ odom
+
+
+ base_footprint
+
+
+ 1
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+
+
+
+
+
+
+ 30.0
+
+
+
+ 1.3962634
+
+ 800
+ 800
+ R8G8B8
+
+
+ 0.02
+ 300
+
+
+ gaussian
+
+ 0.0
+ 0.007
+
+
+
+
+
+ true
+ 0.0
+ autonomous_robot_1/camera1
+ image_raw
+ camera_info
+ camera_link
+ 0.07
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+
+
+
+
+
+
+
+ 0 0 0 0 0 0
+ false
+ 40
+
+
+
+ 720
+ 1
+ -1.570796
+ 1.570796
+
+
+
+ 0.10
+ 30.0
+ 0.01
+
+
+ gaussian
+
+ 0.0
+ 0.01
+
+
+
+ /autonomous_robot_1/laser/scan
+ lidar_link
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_7/src/robot_description/urdf/inertial_macros.xacro b/Task_7/src/robot_description/urdf/inertial_macros.xacro
new file mode 100644
index 0000000..6d3b5a4
--- /dev/null
+++ b/Task_7/src/robot_description/urdf/inertial_macros.xacro
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Task_7/src/robot_description/urdf/lidar.xacro b/Task_7/src/robot_description/urdf/lidar.xacro
new file mode 100644
index 0000000..71a5937
--- /dev/null
+++ b/Task_7/src/robot_description/urdf/lidar.xacro
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_7/src/robot_description/urdf/material.xacro b/Task_7/src/robot_description/urdf/material.xacro
new file mode 100644
index 0000000..08b1415
--- /dev/null
+++ b/Task_7/src/robot_description/urdf/material.xacro
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Task_7/src/robot_description/urdf/robot.jpeg b/Task_7/src/robot_description/urdf/robot.jpeg
new file mode 100644
index 0000000..921158c
Binary files /dev/null and b/Task_7/src/robot_description/urdf/robot.jpeg differ
diff --git a/Task_7/src/robot_description/urdf/robot.urdf b/Task_7/src/robot_description/urdf/robot.urdf
new file mode 100644
index 0000000..1420c55
--- /dev/null
+++ b/Task_7/src/robot_description/urdf/robot.urdf
@@ -0,0 +1,215 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 1.0
+ 1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Task_7/src/robot_description/urdf/robot.xacro b/Task_7/src/robot_description/urdf/robot.xacro
new file mode 100644
index 0000000..f51cc38
--- /dev/null
+++ b/Task_7/src/robot_description/urdf/robot.xacro
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_7/src/robot_description/urdf/wheel.xacro b/Task_7/src/robot_description/urdf/wheel.xacro
new file mode 100644
index 0000000..05ddc9d
--- /dev/null
+++ b/Task_7/src/robot_description/urdf/wheel.xacro
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_7/src/robot_gazebo/CMakeLists.txt b/Task_7/src/robot_gazebo/CMakeLists.txt
new file mode 100644
index 0000000..f7c89a3
--- /dev/null
+++ b/Task_7/src/robot_gazebo/CMakeLists.txt
@@ -0,0 +1,202 @@
+cmake_minimum_required(VERSION 3.0.2)
+project(robot_gazebo)
+
+## Compile as C++11, supported in ROS Kinetic and newer
+# add_compile_options(-std=c++11)
+
+## Find catkin macros and libraries
+## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
+## is used, also find other catkin packages
+find_package(catkin REQUIRED)
+
+## System dependencies are found with CMake's conventions
+# find_package(Boost REQUIRED COMPONENTS system)
+
+
+## Uncomment this if the package has a setup.py. This macro ensures
+## modules and global scripts declared therein get installed
+## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
+# catkin_python_setup()
+
+################################################
+## Declare ROS messages, services and actions ##
+################################################
+
+## To declare and build messages, services or actions from within this
+## package, follow these steps:
+## * Let MSG_DEP_SET be the set of packages whose message types you use in
+## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
+## * In the file package.xml:
+## * add a build_depend tag for "message_generation"
+## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
+## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
+## but can be declared for certainty nonetheless:
+## * add a exec_depend tag for "message_runtime"
+## * In this file (CMakeLists.txt):
+## * add "message_generation" and every package in MSG_DEP_SET to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * add "message_runtime" and every package in MSG_DEP_SET to
+## catkin_package(CATKIN_DEPENDS ...)
+## * uncomment the add_*_files sections below as needed
+## and list every .msg/.srv/.action file to be processed
+## * uncomment the generate_messages entry below
+## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
+
+## Generate messages in the 'msg' folder
+# add_message_files(
+# FILES
+# Message1.msg
+# Message2.msg
+# )
+
+## Generate services in the 'srv' folder
+# add_service_files(
+# FILES
+# Service1.srv
+# Service2.srv
+# )
+
+## Generate actions in the 'action' folder
+# add_action_files(
+# FILES
+# Action1.action
+# Action2.action
+# )
+
+## Generate added messages and services with any dependencies listed here
+# generate_messages(
+# DEPENDENCIES
+# std_msgs # Or other packages containing msgs
+# )
+
+################################################
+## Declare ROS dynamic reconfigure parameters ##
+################################################
+
+## To declare and build dynamic reconfigure parameters within this
+## package, follow these steps:
+## * In the file package.xml:
+## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
+## * In this file (CMakeLists.txt):
+## * add "dynamic_reconfigure" to
+## find_package(catkin REQUIRED COMPONENTS ...)
+## * uncomment the "generate_dynamic_reconfigure_options" section below
+## and list every .cfg file to be processed
+
+## Generate dynamic reconfigure parameters in the 'cfg' folder
+# generate_dynamic_reconfigure_options(
+# cfg/DynReconf1.cfg
+# cfg/DynReconf2.cfg
+# )
+
+###################################
+## catkin specific configuration ##
+###################################
+## The catkin_package macro generates cmake config files for your package
+## Declare things to be passed to dependent projects
+## INCLUDE_DIRS: uncomment this if your package contains header files
+## LIBRARIES: libraries you create in this project that dependent projects also need
+## CATKIN_DEPENDS: catkin_packages dependent projects also need
+## DEPENDS: system dependencies of this project that dependent projects also need
+catkin_package(
+# INCLUDE_DIRS include
+# LIBRARIES gazebo_robot
+# CATKIN_DEPENDS other_catkin_pkg
+# DEPENDS system_lib
+)
+
+###########
+## Build ##
+###########
+
+## Specify additional locations of header files
+## Your package locations should be listed before other locations
+include_directories(
+# include
+# ${catkin_INCLUDE_DIRS}
+)
+
+## Declare a C++ library
+# add_library(${PROJECT_NAME}
+# src/${PROJECT_NAME}/gazebo_robot.cpp
+# )
+
+## Add cmake target dependencies of the library
+## as an example, code may need to be generated before libraries
+## either from message generation or dynamic reconfigure
+# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Declare a C++ executable
+## With catkin_make all packages are built within a single CMake context
+## The recommended prefix ensures that target names across packages don't collide
+# add_executable(${PROJECT_NAME}_node src/gazebo_robot_node.cpp)
+
+## Rename C++ executable without prefix
+## The above recommended prefix causes long target names, the following renames the
+## target back to the shorter version for ease of user use
+## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
+# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
+
+## Add cmake target dependencies of the executable
+## same as for the library above
+# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
+
+## Specify libraries to link a library or executable target against
+# target_link_libraries(${PROJECT_NAME}_node
+# ${catkin_LIBRARIES}
+# )
+
+#############
+## Install ##
+#############
+
+# all install targets should use catkin DESTINATION variables
+# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
+
+## Mark executable scripts (Python etc.) for installation
+## in contrast to setup.py, you can choose the destination
+# catkin_install_python(PROGRAMS
+# scripts/my_python_script
+# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark executables for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
+# install(TARGETS ${PROJECT_NAME}_node
+# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
+# )
+
+## Mark libraries for installation
+## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
+# install(TARGETS ${PROJECT_NAME}
+# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
+# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
+# )
+
+## Mark cpp header files for installation
+# install(DIRECTORY include/${PROJECT_NAME}/
+# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
+# FILES_MATCHING PATTERN "*.h"
+# PATTERN ".svn" EXCLUDE
+# )
+
+## Mark other files for installation (e.g. launch and bag files, etc.)
+# install(FILES
+# # myfile1
+# # myfile2
+# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+# )
+
+#############
+## Testing ##
+#############
+
+## Add gtest based cpp test target and link libraries
+# catkin_add_gtest(${PROJECT_NAME}-test test/test_gazebo_robot.cpp)
+# if(TARGET ${PROJECT_NAME}-test)
+# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
+# endif()
+
+## Add folders to be run by python nosetests
+# catkin_add_nosetests(test)
diff --git a/Task_7/src/robot_gazebo/launch/robot.launch b/Task_7/src/robot_gazebo/launch/robot.launch
new file mode 100644
index 0000000..df2e7ee
--- /dev/null
+++ b/Task_7/src/robot_gazebo/launch/robot.launch
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Task_7/src/robot_gazebo/models/wall/model.config b/Task_7/src/robot_gazebo/models/wall/model.config
new file mode 100644
index 0000000..c684922
--- /dev/null
+++ b/Task_7/src/robot_gazebo/models/wall/model.config
@@ -0,0 +1,11 @@
+
+
+ wall
+ 1.0
+ model.sdf
+
+
+
+
+
+
diff --git a/Task_7/src/robot_gazebo/models/wall/model.sdf b/Task_7/src/robot_gazebo/models/wall/model.sdf
new file mode 100644
index 0000000..e03015c
--- /dev/null
+++ b/Task_7/src/robot_gazebo/models/wall/model.sdf
@@ -0,0 +1,268 @@
+
+
+
+ -0.16666 -1.28658 0 0 -0 0
+
+
+
+
+ 67 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 67 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 0.250001 16.55 0 0 -0 0
+
+
+
+
+
+ 33.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 33.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 33.675 -0 0 0 -0 -1.5708
+
+
+
+
+
+ 17 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 17 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 10.2825 5.37792 0 0 -0 0
+
+
+
+
+
+ 12.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 12.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 13.668 -10.2778 0 0 -0 1.5708
+
+
+
+
+
+ 67.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 67.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 1e-06 -16.55 0 0 -0 3.14159
+
+
+
+
+
+ 24.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 24.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -33.675 -4.5 0 0 -0 1.5708
+
+
+
+
+
+ 18 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 18 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -24.75 7.55 0 0 -0 0
+
+
+
+
+
+ 15.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 15.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -15.3795 -8.69805 0 0 -0 1.5708
+
+
+
+
+
+ 17.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 17.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 1.53826 7.5106 0 0 -0 -1.5708
+
+ 1
+
+
diff --git a/Task_7/src/robot_gazebo/package.xml b/Task_7/src/robot_gazebo/package.xml
new file mode 100644
index 0000000..f0e64c9
--- /dev/null
+++ b/Task_7/src/robot_gazebo/package.xml
@@ -0,0 +1,59 @@
+
+
+ robot_gazebo
+ 0.0.0
+ The gazebo_robot package
+
+
+
+
+ nomeer
+
+
+
+
+
+ TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ catkin
+
+
+
+
+
+
+
+
diff --git a/Task_7/src/robot_gazebo/worlds/world/model.config b/Task_7/src/robot_gazebo/worlds/world/model.config
new file mode 100644
index 0000000..b8b07d9
--- /dev/null
+++ b/Task_7/src/robot_gazebo/worlds/world/model.config
@@ -0,0 +1,11 @@
+
+
+ world
+ 1.0
+ model.sdf
+
+
+
+
+
+
diff --git a/Task_7/src/robot_gazebo/worlds/world/model.sdf b/Task_7/src/robot_gazebo/worlds/world/model.sdf
new file mode 100644
index 0000000..767088f
--- /dev/null
+++ b/Task_7/src/robot_gazebo/worlds/world/model.sdf
@@ -0,0 +1,239 @@
+
+
+
+ -9.70447 -0.465234 0 0 -0 0
+
+
+
+
+ 47.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 47.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 0 15.175 0 0 -0 0
+
+
+
+
+
+ 30.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 30.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 23.8 -0 0 0 -0 -1.5708
+
+
+
+
+
+ 47.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 47.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 0 -15.175 0 0 -0 3.14159
+
+
+
+
+
+ 19.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 19.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -23.8 -5.375 0 0 -0 1.5708
+
+
+
+
+
+ 19 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 19 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 14.3058 -1.51788 0 0 -0 3.14159
+
+
+
+
+
+ 10 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 10 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 5.13235 -10.1394 0 0 -0 1.5708
+
+
+
+
+
+ 15.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 15.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -16.25 4.425 0 0 -0 0
+
+
+
+
+
+ 8.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 8.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -1.76399 10.4974 0 0 -0 -1.5708
+
+ 1
+
+
diff --git a/Task_7/src/robot_gazebo/worlds/world/robot_world b/Task_7/src/robot_gazebo/worlds/world/robot_world
new file mode 100644
index 0000000..c71c8cf
--- /dev/null
+++ b/Task_7/src/robot_gazebo/worlds/world/robot_world
@@ -0,0 +1,1976 @@
+
+
+
+ 1
+ 0 0 10 0 -0 0
+ 0.8 0.8 0.8 1
+ 0.2 0.2 0.2 1
+
+ 1000
+ 0.9
+ 0.01
+ 0.001
+
+ -0.5 0.1 -0.9
+
+ 0
+ 0
+ 0
+
+
+
+ 1
+
+
+
+
+ 0 0 1
+ 100 100
+
+
+
+
+ 65535
+
+
+
+
+ 100
+ 50
+
+
+
+
+
+
+
+ 10
+
+
+ 0
+
+
+ 0 0 1
+ 100 100
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+ 0 0 -9.8
+ 6e-06 2.3e-05 -4.2e-05
+
+
+ 0.001
+ 1
+ 1000
+
+
+ 0.4 0.4 0.4 1
+ 0.7 0.7 0.7 1
+ 1
+
+
+
+ EARTH_WGS84
+ 0
+ 0
+ 0
+ 0
+
+
+ -0.16666 -1.28658 0 0 -0 0
+
+
+
+
+ 67 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 67 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 0.250001 16.55 0 0 -0 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 33.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 33.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 33.675 -0 0 0 -0 -1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 17 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 17 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 10.2825 5.37792 0 0 -0 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 12.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 12.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 13.668 -10.2778 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 67.5 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 67.5 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 1e-06 -16.55 0 0 -0 3.14159
+ 0
+ 0
+ 0
+
+
+
+
+
+ 24.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 24.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -33.675 -4.5 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 18 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 18 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -24.75 7.55 0 0 -0 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 15.25 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 15.25 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ -15.3795 -8.69805 0 0 -0 1.5708
+ 0
+ 0
+ 0
+
+
+
+
+
+ 17.75 0.15 2.5
+
+
+ 0 0 1.25 0 -0 0
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 1.25 0 -0 0
+
+
+ 17.75 0.15 2.5
+
+
+
+
+ 1 1 1 1
+
+
+ 0
+
+
+ 1.53826 7.5106 0 0 -0 -1.5708
+ 0
+ 0
+ 0
+
+ 1
+
+
+ 48 461000000
+ 51 370077585
+ 1676932396 715451909
+ 48461
+
+ -6.26637 3.38451 0.011376 2e-06 -0 0
+ 1 1 1
+
+ -6.26637 3.38451 0.011376 2e-06 -0 0
+ 0 0 0 0 -0 0
+ 0 0 -9.8 0 -0 0
+ 0 0 -9.8 0 -0 0
+
+
+
+ 2.58583 2.05128 0 0 -0 0
+ 1 1 1
+
+ 2.58583 2.05128 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ 10.0222 9.77976 0 0 -0 0
+ 1 1 1
+
+ 10.0222 9.77976 0.01 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ 8.39901 -7.23188 0 0 -0 0
+ 1 1 1
+
+ 8.39901 -7.23188 1.5 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ 4.07914 -14.3933 0 0 -0 0
+ 1 1 1
+
+ 4.07914 -14.3933 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ 1.8941 -14.2886 0 0 -0 0
+ 1 1 1
+
+ 1.8941 -14.2886 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ -0.087354 -14.138 0 0 -0 0
+ 1 1 1
+
+ -0.087354 -14.138 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ -4.90067 -10.6641 0.01 -0 1e-06 -1.7e-05
+ 1 1 1
+
+ -4.90067 -10.6641 0.51 -0 1e-06 -1.7e-05
+ 0 0 0 0 -0 0
+ 1.07556 0.034255 -0.19878 3.07098 0.991637 3.13739
+ 1.07556 0.034255 -0.19878 0 -0 0
+
+
+
+ -22.2918 1.61794 0.01 -0 -0 -2e-05
+ 1 1 1
+
+ -22.2918 1.61794 0.51 -0 -0 -2e-05
+ 0 0 0 0 -0 0
+ -1.07557 -0.034262 0.198792 -3.07096 -0.991623 -3.1374
+ -1.07557 -0.034262 0.198792 0 -0 0
+
+
+
+ 29.1283 5.9137 0.01 -0 -0 -1.7e-05
+ 1 1 1
+
+ 29.1283 5.9137 0.51 -0 -0 -1.7e-05
+ 0 0 0 0 -0 0
+ -1.07556 -0.034256 0.19878 -3.07098 -0.991637 -3.13739
+ -1.07556 -0.034256 0.19878 0 -0 0
+
+
+
+ 20.8597 8.79033 0.01 0 1e-06 -1.6e-05
+ 1 1 1
+
+ 20.8597 8.79033 0.51 0 1e-06 -1.6e-05
+ 0 0 0 0 -0 0
+ 1.07556 0.034256 -0.19878 3.07097 0.991637 3.13739
+ 1.07556 0.034256 -0.19878 0 -0 0
+
+
+
+ 23.9919 -6.3606 0 0 -0 0
+ 1 1 1
+
+ 23.9919 -6.3606 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ 0 0 0 0 -0 0
+ 1 1 1
+
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ -8.47098 -11.1519 0.012972 1.57143 0.786097 0.786849
+ 1 1 1
+
+ -8.44904 -11.1738 0.012959 1.57143 0.786097 0.786849
+ 0 0 0 0 -0 0
+ 0 -0 0 0 -0 0
+ 0 -0 0 0 -0 0
+
+
+
+ 29.9324 -14.7822 0 0 -0 0
+ 1 1 1
+
+ 29.9324 -14.7822 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ -24.7769 -10.7631 0 0 -0 0
+ 1 1 1
+
+ -24.7769 -10.7631 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ 10.3262 -14.195 1 0 -0 0
+ 1 1 1
+
+ 10.3262 -14.195 1 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ -0.16666 -1.28658 0 0 -0 0
+ 1 1 1
+
+ 0.083341 15.2634 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 33.5083 -1.28658 0 0 0 -1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 10.1158 4.09134 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 13.5013 -11.5644 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -0.166659 -17.8366 0 0 -0 3.14159
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -33.8417 -5.78658 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -24.9167 6.26342 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ -15.5462 -9.98463 0 0 -0 1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+ 1.3716 6.22402 0 0 0 -1.5708
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+ 0 0 0 0 -0 0
+
+
+
+ 6.68735 -6.70891 0.011937 3.13966 0.00065 -2.63361
+ 1 1 1
+
+ 6.68735 -6.7089 0.010937 3.13966 0.00065 -2.63361
+ 0 0 0 0 -0 0
+ -0.002644 -0.000349 -0.00345 -2.80343 -0.48799 3.13547
+ -3.2e-05 -4e-06 -4.2e-05 0 -0 0
+
+
+
+ 0 0 10 0 -0 0
+
+
+
+
+ 0 0 0.5 0 -0 0
+
+
+
+ model://cube_20k/meshes/cube_20k.stl
+ 0.5 0.5 0.5
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ model://cube_20k/meshes/cube_20k.stl
+ 0.5 0.5 0.5
+
+
+
+ 0
+
+ 0 0 0 0 -0 0
+
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+
+ 1
+
+ 0
+ 0
+
+ -4.90068 -10.6641 0 0 -0 0
+
+
+
+
+
+
+ 1.5 1.5 1.5
+ model://dumpster/meshes/dumpster.dae
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.5 1.5 1.5
+ model://dumpster/meshes/dumpster.dae
+
+
+
+
+
+
+ 0
+
+ 0 0 0 0 -0 0
+
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+
+ 1
+
+ 0
+ 0
+
+ -6.26637 3.38451 0 0 -0 0
+
+
+ 1
+
+
+
+
+ 3 3 2.5
+ model://gazebo/meshes/gazebo.dae
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3 3 2.5
+ model://gazebo/meshes/gazebo.dae
+
+
+
+ 0
+ 0
+ 0
+
+ 23.9919 -6.3606 0 0 -0 0
+
+
+
+ 0 0 0.031 0 -0 0
+
+ 0.0121
+
+ 3.90898e-06
+ 0
+ 0
+ 3.90898e-06
+ 0
+ 6.58845e-08
+
+ 0 0 0 0 -0 0
+
+
+
+
+ 0.0033
+ 0.062
+
+
+
+
+ 0.305
+ 2e+11
+
+ 100000
+ 100
+ 100
+ 0.001
+
+
+
+
+ 1
+ 0
+ 0.01
+
+
+
+
+
+
+ 10
+
+
+
+
+ 0.0033
+ 0.062
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+ -8.48915 -11.1338 0 0 -0 0
+
+
+
+ 0 0 0.001 0 -0 0
+
+ 0.0122
+
+ 1.08758e-06
+ 0
+ 0
+ 1.08758e-06
+ 0
+ 2.16703e-06
+
+ 0 0 0 0 -0 0
+
+
+
+
+ model://washer/meshes/washer.dae
+
+
+
+
+ 0.305
+ 2e+11
+
+ 100000
+ 100
+ 100
+ 0.001
+
+
+
+
+ 1
+ 0
+ 0.01
+
+
+
+
+
+
+ 10
+
+
+
+
+ model://washer/meshes/washer.dae
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+ 6.78042 -6.71942 0 0 -0 0
+
+
+ 1
+ 10.3262 -14.195 1 0 -0 0
+
+
+
+
+ model://stop_light/meshes/stop_light.obj
+ 0.01 0.01 0.01
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ model://stop_light/meshes/stop_light.obj
+ 0.01 0.01 0.01
+
+
+
+
+ -0.001123 -0.082251 -0.147514 0 -0 0
+
+
+ 0.1012
+
+
+
+
+ 1 0 0 1
+ 1 0 0 1
+
+
+
+ -0.001123 -0.082251 -0.402 0 -0 0
+
+
+ 0.1012
+
+
+
+
+ 1 1 0 1
+ 1 1 0 1
+
+
+
+ -0.001123 -0.082251 -0.655 0 -0 0
+
+
+ 0.1012
+
+
+
+
+ 0 1 0 1
+ 0 1 0 1
+
+
+ 0
+ 0
+ 0
+
+
+
+ 1
+
+
+
+
+ model://post_office/meshes/post_office.dae
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ model://post_office/meshes/post_office.dae
+
+
+
+ 0
+ 0
+ 0
+
+ -24.7769 -10.7631 0 0 -0 0
+
+
+ 1
+
+ 0 0 0.01 0 -0 0
+
+
+
+ 0 0 1
+ 10.4 7.4
+
+
+
+
+
+ 100
+ 50
+
+
+
+
+
+
+
+
+
+
+ 10
+
+
+ 0
+
+
+ 0 0 1
+ 10.4 7.4
+
+
+
+
+
+
+
+ 0 3 0.011 0 -0 0
+ 0
+
+
+ 0 0 1
+ 9.05 0.05
+
+
+
+
+
+
+
+ 0 -3 0.011 0 -0 0
+ 0
+
+
+ 0 0 1
+ 9.05 0.05
+
+
+
+
+
+
+
+ -4.5 0 0.011 0 -0 0
+ 0
+
+
+ 0 0 1
+ 0.05 6.05
+
+
+
+
+
+
+
+ 4.5 0 0.011 0 -0 0
+ 0
+
+
+ 0 0 1
+ 0.05 6.05
+
+
+
+
+
+
+
+ 0 0 0.011 0 -0 0
+ 0
+
+
+ 0 0 1
+ 0.05 6.05
+
+
+
+
+
+
+
+ -3.9 0 0.011 0 -0 0
+ 0
+
+
+ 0 0 1
+ 0.05 2.25
+
+
+
+
+
+
+
+ -4.2 1.1 0.011 0 -0 0
+ 0
+
+
+ 0 0 1
+ 0.65 0.05
+
+
+
+
+
+
+
+ -4.2 -1.1 0.011 0 -0 0
+ 0
+
+
+ 0 0 1
+ 0.65 0.05
+
+
+
+
+
+
+
+ 3.9 0 0.011 0 -0 0
+ 0
+
+
+ 0 0 1
+ 0.05 2.25
+
+
+
+
+
+
+
+ 4.2 1.1 0.011 0 -0 0
+ 0
+
+
+ 0 0 1
+ 0.65 0.05
+
+
+
+
+
+
+
+ 4.2 -1.1 0.011 0 -0 0
+ 0
+
+
+ 0 0 1
+ 0.65 0.05
+
+
+
+
+
+
+
+ -3.2 0 0.01 0 -0 0
+ 0
+
+
+ 0.05
+ 0.0005
+
+
+
+
+
+
+
+ 3.2 0 0.01 0 -0 0
+ 0
+
+
+ 0.05
+ 0.0005
+
+
+
+
+
+
+
+ 0 0 0.01 0 -0 0
+ 0
+
+
+ 0.05
+ 0.0005
+
+
+
+
+
+
+
+ 0 0 0.005 0 -0 0
+ 0
+
+
+ 1 1 0.75
+ model://robocup14_spl_field/meshes/circle.dae
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+ 10.0222 9.77976 0 0 -0 0
+
+
+ 1
+
+
+
+
+ model://oak_tree/meshes/oak_tree.dae
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ model://oak_tree/meshes/oak_tree.dae
+
+ Branch
+
+
+
+
+
+
+
+
+
+
+ model://oak_tree/meshes/oak_tree.dae
+
+ Bark
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+ 29.9324 -14.7822 0 0 -0 0
+
+
+ 1
+
+
+
+
+ model://lamp_post/meshes/lamp_post.dae
+ 3 3 3
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ model://lamp_post/meshes/lamp_post.dae
+ 3 3 3
+
+
+
+ 0
+ 0
+ 0
+
+ 2.58583 2.05128 0 0 -0 0
+
+
+
+ 0 0 0.5 0 -0 0
+
+
+
+ model://cube_20k/meshes/cube_20k.stl
+ 0.5 0.5 0.5
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ model://cube_20k/meshes/cube_20k.stl
+ 0.5 0.5 0.5
+
+
+
+ 0
+
+ 0 0 0 0 -0 0
+
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+
+ 1
+
+ 0
+ 0
+
+ -22.2918 1.61794 0 0 -0 0
+
+
+
+ 0 0 0.5 0 -0 0
+
+
+
+ model://cube_20k/meshes/cube_20k.stl
+ 0.5 0.5 0.5
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ model://cube_20k/meshes/cube_20k.stl
+ 0.5 0.5 0.5
+
+
+
+ 0
+
+ 0 0 0 0 -0 0
+
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+
+ 1
+
+ 0
+ 0
+
+ 29.1283 5.9137 0 0 -0 0
+
+
+
+ 0 0 0.5 0 -0 0
+
+
+
+ model://cube_20k/meshes/cube_20k.stl
+ 0.5 0.5 0.5
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ model://cube_20k/meshes/cube_20k.stl
+ 0.5 0.5 0.5
+
+
+
+ 0
+
+ 0 0 0 0 -0 0
+
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+
+ 1
+
+ 0
+ 0
+
+ 20.8597 8.79033 0 0 -0 0
+
+
+ 1
+
+
+ 0 0 0.755 0 -0 0
+
+
+ 0.913 0.913 0.04
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 0.37 0 -0 0
+
+
+ 0.042 0.042 0.74
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 0.02 0 -0 0
+
+
+ 0.56 0.56 0.04
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ model://cafe_table/meshes/cafe_table.dae
+
+
+
+ 0
+ 0
+ 0
+
+ 4.07914 -14.3933 0 0 -0 0
+
+
+ 1
+
+
+ 0 0 0.755 0 -0 0
+
+
+ 0.913 0.913 0.04
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 0.37 0 -0 0
+
+
+ 0.042 0.042 0.74
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 0.02 0 -0 0
+
+
+ 0.56 0.56 0.04
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ model://cafe_table/meshes/cafe_table.dae
+
+
+
+ 0
+ 0
+ 0
+
+ 1.8941 -14.2886 0 0 -0 0
+
+
+ 1
+
+
+ 0 0 0.755 0 -0 0
+
+
+ 0.913 0.913 0.04
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 0.37 0 -0 0
+
+
+ 0.042 0.042 0.74
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 0 0.02 0 -0 0
+
+
+ 0.56 0.56 0.04
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ model://cafe_table/meshes/cafe_table.dae
+
+
+
+ 0
+ 0
+ 0
+
+ -0.087354 -14.138 0 0 -0 0
+
+
+ 1
+
+ 0 0 1.5 0 -0 0
+
+
+
+ 3 1 3
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ model://brick_box_3x1x3/meshes/simple_box.dae
+ 3 1 3
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+ 8.39901 -7.23188 0 0 -0 0
+
+
+
+ 20.517 48.7141 63.3914 0 0.795643 -1.82699
+ orbit
+ perspective
+
+
+
+