- 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..
- Make the env vectorized to support large scale reinforcement learning in parallel (e.g. gymnasium)
- 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
- 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)
- 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
- 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
- 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.
- 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
- 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
- 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
- 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.
- 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.