RNL - Robot Navigation Learning
Project description
Robot Navigation Learning
End-to-end Deep Reinforcement Learning for Real-World Robotics Navigation in Pytorch
This project uses Deep Reinforcement Learning (DRL) to train a robot to move in unfamiliar environments. The robot learns to make decisions on its own, interacting with the environment, and gradually becomes better and more efficient at navigation.
How to Use
Installation and usage mode.
- Install with pip:
pip install rnl
- Use
train
:
import numpy as np
import rnl as vault
# 1.step -> config robot
param_robot = vault.robot(
base_radius=0.033, # (m)
vel_linear=[0.0, 2.0], # [min, max]
vel_angular=[1.0, 2.0], # [min, max]
wheel_distance=0.16, # (cm)
weight=1.0, # robot (kg)
threshold=0.01, # distance for obstacle avoidance (cm)
)
# 2.step -> config sensors [for now only lidar sensor!!]
param_sensor = vault.sensor(
fov=2 * np.pi,
num_rays=20,
min_range=0.0,
max_range=6.0,
)
# 3.step -> config env
param_env = vault.make(
map_file="None", # map file yaml (Coming soon)
random_mode="normal", # hard or normal (Coming soon)
timestep=1000, # max timestep
grid_dimension=5, # size grid
friction=0.4, # grid friction
porcentage_obstacles=0.1
)
# 4.step -> config train robot
model = vault.Trainer(
param_robot, param_sensor, param_env, pretrained_model=False
)
# 5.step -> train robot
model.learn(
batch_size=64,
lr=0.0001,
seed=1,
num_envs=2,
device="cpu",
target_score=200,
checkpoint=100,
checkpoint_path="checkpoints",
hidden_size=[800, 600],
)
- Use
inference
:
import numpy as np
import rnl as vault
# 1.step -> config robot
param_robot = vault.robot(
base_radius=0.033, # (m)
vel_linear=[0.0, 2.0], # [min, max]
vel_angular=[1.0, 2.0], # [min, max]
wheel_distance=0.16, # (cm)
weight=1.0, # robot (kg)
threshold=0.01, # distance for obstacle avoidance (cm)
)
# 2.step -> config sensors [for now only lidar sensor!!]
param_sensor = vault.sensor(
fov=2 * np.pi,
num_rays=20,
min_range=0.0,
max_range=6.0,
)
# 3.step -> config env
param_env = vault.make(
map_file="None", # map file yaml (Coming soon)
random_mode="normal", # hard or normal (Coming soon)
timestep=1000, # max timestep
grid_dimension=5, # size grid
friction=0.4, # grid friction
porcentage_obstacles=0.1
)
# 4.step -> config render
param_render = vault.render(fps=100, controller=True, rgb_array=True)
# 5.step -> config train robot
model = vault.Trainer(
param_robot, param_sensor, param_env, param_render, pretrained_model=False
)
# 6.step -> run robot
model.run()
- Use
demo
:
python train.py
License
This project is licensed under the MIT license - see archive LICENSE for details.
Contact and Contribution
The project is still under development and may have some bugs. If you encounter any problems or have suggestions, feel free to open an issue
or send an email
to:
Nicolas Alan - grottimeireles@gmail.com.
TODO:
- Add map file yaml
- Add random mode (hard or normal)
- Create Integration ROS and (Gazebo)
- Create Integration with OpenAI
Acknowledgments
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file rnl-0.3.4.tar.gz
.
File metadata
- Download URL: rnl-0.3.4.tar.gz
- Upload date:
- Size: 56.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.6 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c35713878713c99f24e9ecb43d35111ab40a44684a47403462598059da46680c |
|
MD5 | 01fde2397e65d1d516248626949904dc |
|
BLAKE2b-256 | 3c3ae223463f95abcebe37e9a86a8d9c99a0fcfa7c59ce1449085bd17c95ce73 |
File details
Details for the file rnl-0.3.4-py3-none-any.whl
.
File metadata
- Download URL: rnl-0.3.4-py3-none-any.whl
- Upload date:
- Size: 64.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.6 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d31d0589ef620345ae10c4889060ba3ee7f96a3f0372598aa777a6ac28247f02 |
|
MD5 | a8cc0be598a5556a9faa0837d96fda7d |
|
BLAKE2b-256 | 374a71aa66561a6b8f504727452eb96cc7edfffdbb0fcb82257cc0b38363fa38 |