Skip to content

Latest commit

 

History

History
139 lines (122 loc) · 5.16 KB

File metadata and controls

139 lines (122 loc) · 5.16 KB

IR-SIM Todo List

🎯 Core Framework

  • Basic framework
  • Mobile robot movement
  • Collision check
  • Multi robots mode (collision)
  • Reformulate obstacles and robots by Object class
  • Construct the object base class for the robot and obstacles
  • Rearrange the framework of obstacles
  • Add function to construct obstacle and robot
  • Attribute of the obstacles and robots
  • Formulate the geometry tree for the collision check
  • 3D space
  • Add transformation (like ROS tf)
  • Plugin system
  • template for custom robots, sensor..

Reinforcement Learning Project Support

  • Make the env vectorized to support large scale reinforcement learning in parallel (e.g. gymnasium)

🤖 Robot & Movement

  • Omni directional robots
  • Add custom robot model
  • Robot description
  • Check the dimension of various values and fix the input error, such as state dim, velocity dim
  • Provide polygon shape robot
  • Reformulate the behavior library
  • 3D rigid body
  • Robotics arm, UAV support
  • Real robot description

📡 Sensors & Data

  • Sensor lidar
  • Add sensor: gps, odometry
  • Add noise (diff)
  • Develop Tools for tackling Data. Add the data monitor for performance analysis (jerks, acceleration, etc.).
  • Record and replay path
  • GPS sensor support (state with noise)

🗺️ Environment & Obstacles

  • Line obstacle
  • Map obstacle
  • Add functions to access obstacles with different types
  • Support the feature of adding or eliminating obstacles by functions
  • Add binary occupancy grid map for indoor navigation
  • Check whether the object is convex
  • Develop a lib for configuration of the shape, refer to rviz marker
  • Add functions to access obstacles with different types (refinement needed)
  • Use scipy convex hull to generate G and h

🎨 Visualization & Plotting

  • GIF generation
  • Add subplot
  • 3D visualization
  • Show the text of the object
  • Draw points
  • Reformulate plot function - Transform-based plotting architecture
  • FOV transform fixes for proper field of view visualization
  • Lidar2D plotting with matplotlib transforms
  • 3D plotting fixes for patches, lines, and other elements
  • Consistent plotting API with state/vertices parameters
  • Add GUI for the windows
  • Academic Color Map
  • Add subwindows for the visulization
  • Add appearance file for the plot
  • Refine plot function with collection of elements
  • Draw error band (uncertainty) https://matplotlib.org/stable/gallery/lines_bars_and_markers/curve_error_band.html

🔧 System & Performance

  • Add collision mode
  • Add regular event for other obstacles or robots
  • Private and public methods and parameters in class
  • Add the env logger
  • Make the dependency of the package optional
  • Env reset function
  • Collision check with discrete samples
  • Add more key functions for keyboard control (esc, space, r, l, x)
  • Assign robot goals by mouse click
  • Add reload function for the environment
  • moving view of robots.
  • Using decorator for function input checking
  • Add synchronization and asynchronization mode
  • Multi-process for large scale simulation
  • Make multiple env instances
  • accelerate the simulation (collision check, kinematics, etc.) by numba/c++
  • Complete the reactive collision mode
  • YAML schema validation with clear error messages and defaults.

🧪 Testing & Quality

  • Pytest
  • Organize the test cases
  • Improve coverage of the code over 90%
  • reduce the dependency of the package
  • using uv to manage and format the dependency and project
  • Improve coverage of the code over 99%

📚 Documentation & Examples

  • Documentation
  • Code annotation for main class
  • Add comments for the functions
  • Add example yaml files
  • Default yaml name (same as python file)
  • Reorganize the structure of the readme demonstration
  • Argument type hint
  • Doc Noise world
  • Refine documentation and the comment of the code function.
  • Doc of status; title; keyboard space
  • New style of documentation
  • Add tutorial with more examples.
  • Doc path manager and change the path
  • Generate Logo
  • Chinese version

🔗 External Interfaces

  • Add the interface with gym
  • Add the interface with ROS
  • Add the interface with Pybullet, Gazebo, Carla
  • Add the interface with opendrive
  • Add the interface with URDF file

🧠 Advanced Features

  • Add wrapper for ORCA algorithm
  • Add various navigation algorithms implemented on the ir-sim
  • Modular yaml import so that ir-sim can read the yaml file separately
  • Add more behaviors for the objects (orca, pure pursuit, etc.)
  • Benchmark suites with standardized metrics and scoring scripts.

🚗 Scenarios & Applications

  • Make_scenarios to generate some common scenarios to test, such as car_racing, maze, traffic (Maze generator)
  • Traffic scenarios (Traffic generator)
  • Maze scenarios (Maze generator)
  • Test Scenario for the different robot models and planners: pursue and evade, follow, etc.