reference book: https://drive.google.com/file/d/1nckp9GA5Iex9uFXzxjMVUoxUfa3sxZWE/view?usp=sharing
Contains Basic hello world publisher and subcriber, the publisher publishes on talker node while the subcriber subcribes the pubisher ie;talker node. First run the roscore and then rosrun 100daysOfros helloworldpub.py (PUBLISHER) Then rosrun 100daysOfros helloworldlist.py (SUBCRIBER)
here I used geomerty_msgs msg file which contains POINT,QUARTERNION,POSITION,TWIST which are used for robot motion which we will see using turtlebot3 later on. I publish the difference between initial position and final position using POINT and then a subcriber subcribes on that topic and publishes the difference between the coordinates.
here i have used a custom message LDR, which can be used with sensors either with a rasberry pi or arduino(rosserial). The ldrpub gets the sensor value (which i will be doing on day 20 with sensors) and publishes, while the ldrlist subcribes to LDR_SENSOR topic and displays the value.
today I created a custom srv file to use for my calculator, the calserver gets the request from calclient, calculates according to the operation the user needs and sends back the response for the client.
Following the same procedure for srv file, today I created a DHT11 srv file for dht11 server and client operations.
Teleoppub.py can be used to control the turtle to move in any direction as possible.To start turtlesim we can use, rosrun turtlesim turtlesim_node.
we can use the code to tell the turtle to swim in a straight line, the straight.py publishes on cmd_vel topic and subcribes to pose topic for X and Y corrdinates the distance is measured using euclidean distance formula.
using the geometry_msgs and turtlesim's Pose msg we use the publisher and subcriber to communicate and help the turtle rotate around its fixed axis
we tell the turtle to move to specific goal using geometry_msg topic
Using Day 6 and 7 algorithms, I have a created a basic algorithm to make the turtle swim and draw a square pattern, here I have also used how to use LAUNCH files
Today we wil start with arduino and rosserial, we use rosserial command to connect with the avr to control led pins attached.
We connect the DHT11 and create a publisher node, then we subcribe to the publisher of dht11 to display the temperature data recieved.
Ultrasound sensors, Today we take the input from the ultrasound sensor and publish the range, the sensor_msgs/Range collects the information.The subscriber node is created to lock on the ultrasound sensor to retrieve the sensor data.
Servo motors, the servo is subcribed to "servo" topic while the publisher node publishes the angle of rotation, the servo motor starts rotating.
LDR, Using the msg file created on DAY 3, I used this to get the intensity form LDR sensor.
speed control of DC Motors with pwm passed though geometry_msgs msg file.The subscriber gets the speed of the motor at that period of time and displays it
basic conversion of roll,pitch and yaw into quarternion coordinate format using tf package.
Built map using SLAM(gmapping) techniques for turtlebot3 maze.
when a robot is moving or a manipulator is grasping, many frames are acting at different origins, to get the transformation data of a target frame from a source frame. We use static transforms to get the translation and rotation of the target frame to the source frame.Here the broadcaster node finds the above-mentioned transform and sends the data to the base station.
Used turtlebot3 nav stack to navigate the waffle around the world using rviz
used turtlebot3 SLAM stack to map the house using gmapping methods.
Today I used go to goal,algorithm used for turtlesim.The waffle bot will move to a specific location but here it will not avoid any obstacles.
Using laser scan data sent by the Lidar on the bot, we get the data while the bot is moving with teleoperation.
Simple ways to get the position data, using nav_msgs/Odometry. we will see more of this use cases when we start Lidar based navigation.
action server and client, are used for asynchronous way of communication, here the dishwasher example is used for simple action server and aaction client mechanishm
I used the same concept of action server and action client, with an example of pizza delivery
Used open cv to perfom simple operations on images
Performed basic images processing techniques such as scaling,color to black and white, thresholding, edge detecting, and rotating
Simple face recognition algorithm using viola-jones algorithm
visualization of camera view as seen through the eyes of the turtlebot using RQT image_view
using color filtering and contour detection, detected a tennis ball.
Using cv_bridge, I tried getting the image from the camera of the turtlebot and then use in my code with help of cv_bridge
using the laser scanner, I move the robot in the gazebo evironment, by avoiding obstacles. The same code can be used for automous mapping of small areas.
Numpy or numerical python,consists of multidimensional array object and a collection of routines for processing of array. Here I learnt basics function of numpy which can be used to implement concepts of localization, path planning and SLAM algorithms