Role of Gyroscope for Complementary Filter
The rotation angle could be derived from the rotation velocity as per formula as, Angular rotation = Angular Velocity * Time This angular...
Compensated Yaw angle
Heading calculation requires magnetometer parallel to the surface (0-degree pitch and 0-degree roll). These pitch and roll values are...
Pitch And Roll
Pitch angle is an angular rotation around the front to back axis (x-axis). Roll angle is an angular rotation around the side to side axis...
Brushed DC motor Control
value of esc: 75 to 56 for backwards 93 to 126 for forward ESC.write(esc);
Basic Sensor data filtering
created low pass filter for minimizing the vibrations felt by the body. data= (0.9)*past data+ (0.1)*current data
3D motion
refer to https://eater.net/quaternions for more explanation of quaternions. Will be useful for deriving pitch, roll yaw.
Arduino Code
Code below is uploaded in the Arduino. Which subscribes to topics that controls the DC motor and steering servo motors. #include...
rosserial_arduino
rosserial_arduino is used to control the RC car DC motor and steering servo motors. Had to post the issue in answers.ros.org...
Creating ROS package for GPS sensor data broadcasting
sensor_msgs dependency is used to broadcast the sensor data in ROS. Where sensor_msgs/NavSatFix.msg (http://docs.ros.org/api/sensor_msgs/...
Creating ROS package for Magnetometer sensor data broadcasting
To broadcast the sensor data in ROS package is created using sensor_msgs dependency. Where sensor_msgs/MagneticField.msg...
Creating ROS package for IMU sensor data broadcasting
sensor_msgs dependency is used to broadcast the sensor data in ROS. Where sensor_msgs/Imu.msg (http://docs.ros.org/api/sensor_msgs/html/m...
GPS sensor
install the package for the GPS sensor by: sudo pip3 install adafruit-circuitpython-gps Follow the instruction from...
Lidar Sensor
Follow the steps from https://github.com/YDLIDAR/ydlidar_ros. 1) Clone this project to your catkin's workspace src folder (1). git clone...