Skip to content
Serkan Mazlum edited this page Aug 14, 2024 · 18 revisions

This repository contains software written for ground vehicle control. The software is designed to be used both in the Gazebo Garden simulation environment and on a real vehicle. The vehicle attempts to avoid obstacles using mounted distance sensors (Lidar). To make the system more realistic, noise has been added to the sensors in the simulation environment. Future versions will include additions for artificial intelligence (AI) and image processing For the most recent and detailed information, please refer to the wiki page.

gz_sim.mp4

System Requirements

The code is based on the specifications of the computer on which it was written. With minor adjustments, it should work without issues on different versions as well. As an example, for those using ROS2 Foxy, the subscription functions need to be adjusted. In Foxy, subscription functions should be written as function_type function_name(const data_type::SharedPtr msg). This requirement does not exist in Humble.

  • OS: Ubuntu 22.04 (Jammy Jellyfish)
  • ROS2: ROS2 Humble
    • It is used for communication between packages.
    • Tools like RViz are used to analyze the data.
    • It is used to add models to the Gazebo environment.
  • Simulation Program: Gazebo Garden (Old Version)
  • Simulation Program: Gazebo Harmonic
    • It has been used for software testing
    • Different models and worlds have been added.

Features:

  • Obstacle avoidance using a Lidar sensor.
  • Adding models to the Gazebo environment using C++.
  • Accessing and using packages located in different places.
  • Recording camera data and camera calibration
  • URDF files for RViz
  • For vehicle control, RemoteXY (esp8266 NODEMCU), joystick, and keyboard can be used.

Features to be Added:

  • Position Keeping: The IMU sensor mounted on it will ensure that the vehicle remains continuously aware of its position during movement. Additionally, in the event of external disturbances, such as impacts, it will attempt to return to its previous position if its direction changes.
  • Sensor filtering and fusion: Reducing noise in the sensors and using sensor fusion (EKF) to obtain more accurate results.
  • Control Methods: One of the control methods such as PID, LQR, or MPC will be added.
  • Configure: A menuconfig file will be added to facilitate the selection of packages.
  • Parallel Processing: Threads will be used for parallel operations
  • Path Planning
  • Motion Planning
  • Mapping
  • OpenCV: Object detection, filtering noise in camera data, and applying masking to camera images
  • AI
Clone this wiki locally